mcp-registry/al.ephemer/ephemeral · v2026.10.27.1-5ab06dd
As of 2026-10-27 06:59 UTC, the Ephemer Ephemeral MCP server is up with a Glimind reliability score of 89/100 (grade B). Over the last 30 days it answered 100% of Glimind's liveness checks.
Run AI agent tasks in isolated sandboxes with a cost cap, saved workflows and scoped connections.
Point your MCP client at this streamable-http endpoint: https://app.ephemer.al/mcp
3 tool(s) have parameters with no type (no type/enum/anyOf/$ref).
Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →
1 parameter(s) across 1 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 1 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fal.ephemer%2Fephemeral/fixes
{
"name": "create_run",
"description": "Start an AI agent run in an isolated sandbox and return the run (status queued) at once. Give a prompt, or the name of a saved workflow. Poll with get_run or block with wait_for_run for the result. Every run has a cost cap (max_cost_micros) and a timeout, and is billed to the organization of the API key. Connections must already be saved in the organization; reference them by name. Use idempotency_key to make a retry safe. A run's cost_micros is provisional (usually above the final cost) until c",
"inputSchema": {
"type": "object",
"properties": {
"web": {
"oneOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"allow": {
"type": "array",
"items": {
"type": "string"
},
"description": "Domains the agent may fetch, such as \"api.github.com\" or \"*.example.com\". Empty allows every public domain."
},
"search": {
"type": "boolean",
"description": "Whether web search is available (default true)."
}
},
"additionalProperties": false
}
],
"description": "Web access: true, false, or an object limiting it."
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path"
],
"properties": {
"file": {
"type": "string",
"description": "Id of a saved file (instead of content)."
},
"path": {
"type": "string",
"description": "Where the file appears in the sandbox."
},
"content": {
"type": "string",
"description": "Inline text content."
}
},
"additionalProperties": false
},
"description": "Files placed in the sandbox: inline content, or a file saved in the organization."
},
"input": {
"description": "Any JSON the agent receives as its input. If the workflow has an input_schema, it must match.",
"type": "string"
},
"model": {
"type": "string",
"description": "A model id from list_models. Omit for the default."
},
"shell": {
"type": "boolean",
"description": "Whether the agent may run shell commands in its sandbox."
},
"prompt": {
"type": "string",
"description": "What the agent should do. Required unless workflow is set."
},
"workflow": {
"type": "string",
"description": "Name of a saved workflow to run instead of a prompt (see list_workflows)."
},
"connections": {
"type": "object",
"description": "Saved connections the agent may use, keyed by the name the agent sees. Each refers to a connection saved in the organization and can only narrow it.",
"additionalProperties": {
"type": "object",
"required": [
"ref"
],
"properties": {
"ref": {
"type": "string",
"description": "Name of the saved connection (see list_connections)."
},
"allowed_tools": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tool names allowed on an MCP connection."
},
"allowed_methods": {
"type": "array",
"items": {
"type": "string"
},
"description": "HTTP methods allowed, for example [\"GET\"] for read-only access."
}
},
"additionalProperties": false
}
},
"description": {
"type": "string",
"maxLength": 500,
"description": "What the workflow does and what input it expects, in a sentence or two, for people and agents. At most 500 characters."
},
"input_schema": {
"type": "object",
"description": "A JSON Schema (draft 2020-12 or 7, at most 32 KiB, no references to other documents) that this run's input must match. A run whose input does not match is refused with the path and the reason, such as \"input.city: required\"."
},
"output_schema": {
"type": "object",
"description": "A JSON Schema (draft 2020-12 or 7, at most 32 KiB, no references to other documents) that this run's output must match. The agent is told the schema and asked to reply with JSON only; the output is then checked, and a run whose output does not match fails with the reason."
},
"idempotency_key": {
"type": "string",
"description": "A retry with the same key returns the original run instead of starting another."
},
"max_cost_micros": {
"type": "integer",
"minimum": 1,
"description": "Cost cap in millionths of a dollar. The run stops at the cap."
},
"timeout_seconds": {
"type": "integer",
"minimum": 1,
"description": "Wall-clock limit for the run."
},
"zero_data_retention": {
"type": "boolean",
"description": "Record nothing of the run's content; the output is kept only briefly and released on first retrieval."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
},
"title": "Create a run"
}{
"name": "create_schedule",
"description": "Start a saved workflow on a timetable. Needs an administrator key. Each start is a run billed to the organization, with the cost cap given here (or the default). Use preview_schedule first to check the timetable. A schedule pauses itself after repeated failed starts. An organization can have 50 schedules.",
"inputSchema": {
"type": "object",
"required": [
"workflow",
"cron"
],
"properties": {
"cron": {
"type": "string",
"description": "Five fields (minute hour day-of-month month day-of-week), such as \"0 9 * * 1-5\", or a descriptor such as @daily or @every 15m. At most once a minute."
},
"name": {
"type": "string",
"maxLength": 128,
"description": "A label for the schedule."
},
"input": {
"description": "Any JSON the agent receives as its input on every start (maximum 1 MiB).",
"type": "string"
},
"enabled": {
"type": "boolean",
"description": "Whether the schedule starts runs (default true)."
},
"timezone": {
"type": "string",
"description": "IANA time zone name, such as Europe/Madrid (default UTC)."
},
"workflow": {
"type": "string",
"description": "Name of the saved workflow to run (see list_workflows)."
},
"max_cost_micros": {
"type": "integer",
"maximum": 100000000,
"minimum": 1,
"description": "Cost cap of each run, in millionths of a dollar."
},
"skip_if_running": {
"type": "boolean",
"description": "Skip a start while the previous run is still going (default true)."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
},
"title": "Create a schedule"
}{
"name": "update_schedule",
"description": "Change a schedule; only the fields you give change. Needs an administrator key. Set enabled to false to pause it and to true to resume it (resuming clears the failures that paused it). A new timetable counts from now.",
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The schedule's id (sch_…), as returned by create_schedule or list_schedules."
},
"cron": {
"type": "string",
"description": "Five fields (minute hour day-of-month month day-of-week) or a descriptor such as @daily or @every 15m."
},
"name": {
"type": "string",
"maxLength": 128,
"description": "A label for the schedule."
},
"input": {
"description": "Any JSON the agent receives as its input on every start (maximum 1 MiB).",
"type": "string"
},
"enabled": {
"type": "boolean",
"description": "false pauses the schedule, true resumes it."
},
"timezone": {
"type": "string",
"description": "IANA time zone name, such as Europe/Madrid."
},
"workflow": {
"type": "string",
"description": "Name of the saved workflow to run."
},
"max_cost_micros": {
"type": "integer",
"maximum": 100000000,
"minimum": 1,
"description": "Cost cap of each run, in millionths of a dollar."
},
"skip_if_running": {
"type": "boolean",
"description": "Skip a start while the previous run is still going."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
},
"title": "Update or pause a schedule"
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/al.ephemer/ephemeral"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/al.ephemer/ephemeral"}) over MCP.
create_run ~1,104 tokenssave_workflow ~1,035 tokenscreate_schedule ~385 tokensupdate_schedule ~360 tokenslist_models ~295 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fal.ephemer%2Fephemeral?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fal.ephemer%2Fephemeral?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fal.ephemer%2Fephemeral.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fal.ephemer%2Fephemeral.svg :target: https://glimind.com/server/mcp-registry%2Fal.ephemer%2Fephemeral?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:46374977157240d1…, first seen 2026-10-26, included at leaf 70647 of 77,973. Version history · verify what your client received.
Compare: most reliable devops servers · most reliable productivity servers · most reliable data servers · most reliable files servers · most reliable ml servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-27 06:59 UTC, the Ephemer Ephemeral MCP server is up with a Glimind reliability score of 89/100 (grade B). Over the last 30 days it answered 100% of Glimind's liveness checks.
Ephemer Ephemeral MCP server advertises 19 tools, including cancel_run, create_run, create_schedule, delete_schedule, delete_workflow.
Point your MCP client at this streamable-http endpoint: https://app.ephemer.al/mcp
Glimind scanned all 19 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.