prism
Server Details
Stateless MCP gateway and OTel span-streaming bridge for hosted MCP servers.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- terradev-cloud/prism
- GitHub Stars
- 0
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: config returns effective settings, help gives connection instructions, info provides service identity, metrics dumps counters, ping checks connectivity, and sessions lists traced sessions. No two tools overlap in function.
All tools follow a consistent 'prism_<noun/verb>' pattern with lowercase snake_case. The names are short, descriptive, and predictable, making it easy for agents to infer behavior.
Six tools is a well-scoped set for a gateway introspection service. Each tool covers a distinct aspect (config, help, info, metrics, ping, sessions) without redundancy or bloat.
The tool surface covers all major introspection needs: configuration, health/identity, metrics, connectivity, and session tracing. No obvious gaps exist for the stated purpose of a read-only runtime introspection server.
Available Tools
6 toolsprism_configEffective configurationARead-onlyIdempotentInspect
Returns Prism's effective runtime configuration — upstream allowlist, rate limit, capture default, batching and queue tunables, public URL, and configured ingest endpoints. Secrets (admin token, destination credentials) are never exposed — only whether they are set.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that secrets are never exposed, only whether they are set — a critical behavior beyond the annotations' readOnly and idempotent hints. It also enumerates the fields returned, giving a clear picture of the operation's effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first lists the return contents, the second addresses secret handling. No filler words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only getter, the description covers the main return values and the security guarantee. It doesn't specify the response structure (e.g., JSON) or potential edge cases, but those are minor for this simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool accepts zero parameters, so there are no parameter semantics to clarify. The schema coverage is effectively 100%, and the description doesn't need to document anything.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and resource ('Prism's effective runtime configuration'), enumerating the categories of data included. Among sibling tools like prism_help, prism_info, prism_metrics, prism_ping, prism_sessions, this is the only one about configuration, so it distinguishes itself clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives or list any exclusions. It implies use for retrieving configuration, but that guidance is not made explicit, which would be more helpful for an agent deciding between this and prism_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prism_helpHow to use PrismARead-onlyIdempotentInspect
Returns connection instructions: how to set the upstream MCP server (X-Prism-Upstream header or ?upstream= query param), the query-param config keys for header-less clients, how destinations and the borrowed-token model work, and example client configs. Start here if you are an agent discovering Prism for the first time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses in detail what the tool returns: connection instructions, header and query-param configuration methods, conceptual model (destinations, borrowed-token), and example client configs. This goes well beyond the annotations, which only declare it read-only, idempotent, and non-destructive. The description adds rich behavioral context about the content and structure of the response, fully leveraging the absence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence front-loads the core purpose ('Returns connection instructions') and then enumerates the specific topics. The second sentence provides a clear usage directive. Every phrase earns its place, and the structure guides the reader from what it does to when to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a help/discovery tool with no parameters and no output schema, the description is fully complete. It covers the main topics an agent needs to understand Prism's connection model and points to example configurations. Nothing essential is missing for an agent deciding whether to call this tool and what to expect from it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, and the schema confirms an empty object. Since there are no parameters to document, the description does not need to add parameter-specific semantics. The baseline for zero-parameter tools is 4, and the description appropriately focuses on the tool's output rather than inputs, so no gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb and resource: 'Returns connection instructions' and then enumerates the specific content areas (upstream MCP server setup, query-param config keys, destinations, borrowed-token model, example client configs). It also differentiates itself from siblings by positioning itself as the entry point for first-time discovery, so an agent can clearly distinguish it from the other prism_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit usage trigger: 'Start here if you are an agent discovering Prism for the first time.' This provides clear context for when to select this tool. It does not explicitly name alternatives or state when not to use it, but the sibling tool names imply that other tools serve specific needs, and the 'start here' directive is a strong routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prism_infoPrism service infoARead-onlyIdempotentInspect
Returns Prism's service identity and runtime state: version, transport, public URL, capture default, and the number of MCP sessions currently being traced. Use this to confirm which Prism deployment you are talking to and whether it is healthy before configuring an upstream.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by detailing what the tool actually returns and clarifying that it confirms deployment identity and health, making the behavioral surface transparent for a zero-parameter read-only call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core purpose and return fields; the second provides actionable usage guidance. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter info tool with no output schema, the description is complete: it lists the returned fields and states why an agent would call it. There is no missing context needed to select or invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%, so there are no parameter semantics to clarify. The baseline for zero-parameter tools is 4, and the description appropriately focuses on return value instead of input meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns'), names the exact resource ('Prism's service identity and runtime state'), and enumerates concrete fields (version, transport, public URL, capture default, sessions traced). This clearly differentiates prism_info from sibling tools like prism_ping or prism_metrics, which address health and metrics rather than identity/state inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case: 'Use this to confirm which Prism deployment you are talking to and whether it is healthy before configuring an upstream.' It gives clear context for when to call the tool, though it does not explicitly name alternatives or state when not to use it, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prism_metricsInternal metricsARead-onlyIdempotentInspect
Dumps Prism's in-process counters and gauges — spans shipped, upstream errors, rate-limit hits, queue depth. Two formats: 'prometheus' (default, scrape-ready text) or 'json' (a {"series{labels}": value} object). Use 'prefix' to narrow to a metric family, e.g. 'prism_spans'.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | 'prometheus' returns scrape-ready text; 'json' returns a structured object. | prometheus |
| prefix | No | Only include series whose name starts with this string (e.g. 'prism_spans', 'prism_rate'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds behavioral detail: output formats (prometheus/json) and prefix filtering, which enriches understanding beyond the annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, tightly packed with purpose, formats, and prefix usage. Every sentence contributes value, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only metrics tool with two optional parameters, annotations cover safety, and the description covers all parameters, formats, and filtering. No output schema exists, so return shape is not required. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds further meaning: it explains the 'prometheus' format is scrape-ready text, gives a concrete example for 'prefix' (e.g., 'prism_spans'), and explains the default format. This lifts it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb and resource: 'Dumps Prism's in-process counters and gauges', and lists example metrics. This distinguishes it from sibling tools like prism_info or prism_config which clearly serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving metrics and explains how to narrow results with 'prefix'. It does not explicitly contrast with alternatives or state when not to use it, but the distinct purpose makes selection obvious given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prism_pingLiveness checkARead-onlyIdempotentInspect
Returns {"pong": true, "time": } plus an optional echo of the 'echo' argument. Use to verify connectivity through the gateway before pointing it at an upstream MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
| echo | No | Optional string echoed back in the response — useful for confirming round-trip integrity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the exact response shape, the echo behavior, and the intended networking context (verifying connectivity), which goes beyond the annotations. It does not cover failure/timeout behavior, but for a simple liveness check this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The response format is front-loaded, followed directly by the use case. Every word earns its place and no unnecessary elaboration is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter seven and no output schema, the description fully covers the return value, the optional argument behavior, and when to invoke it. Nothing an agent needs to call this correctly is missing, and the annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional echo parameter is already well-described in the schema as 'Optional string echoed back in the response — useful for confirming round-trip integrity.' The description essentially restates this same fact, adding no meaningful semantic value beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific behavior: returns a JSON payload with "pong", "time", and optional "echo" fields. This clearly distinguishes it from sibling tools like prism_config, prism_info, and prism_metrics, which are configuration/information tools, while prism_ping is a connectivity liveness check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it to verify connectivity through the gateway before pointing it at an upstream MCP server. This provides a clear when-to-use context, though it does not mention exclusions or name alternative tools explicitly, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prism_sessionsActive sessionsARead-onlyIdempotentInspect
Lists the MCP sessions Prism is currently tracing — session id prefix, upstream, client name, project, turn and error counts, and age in seconds. Use 'limit' to cap results (default 20, max 100) and 'upstream' to filter by upstream URL substring.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max sessions to return. | |
| upstream | No | Substring filter on the upstream URL — e.g. 'mcp.acme.dev' returns only sessions relaying to that host. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the specific output fields and filter behavior (limit default/max, upstream substring), which is useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The core purpose is front-loaded, followed by concise parameter guidance. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with full schema coverage and annotations covering safety, the description is complete. It explains the output fields, the filter parameters, and the default/max limits—everything an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters already have detailed descriptions in the schema. The description largely repeats the schema's parameter explanations ('Use limit to cap results...' and 'upstream to filter...'), adding minimal new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lists') and resource ('MCP sessions Prism is currently tracing'), and enumerates the returned fields (session id prefix, upstream, client name, project, turn/error counts, age). This clearly distinguishes it from sibling tools like prism_metrics or prism_config, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing active sessions and explains the filter parameters, but it does not explicitly contrast with alternatives or state when not to use it. However, the purpose is clear enough that an agent can infer when to invoke this tool versus its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
prism_config - First observed
prism_help - First observed
prism_info - First observed
prism_metrics - First observed
prism_ping - First observed
prism_sessions
Related MCP Connectors
MCP Gateway: wrap any MCP server with cold-start retries, uptime SLA, and per-execution MPP billing.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Cloud-hosted MCP server for URnetwork VPN and Proxy
Unified gateway hosting 5 Hive Civilization MCP servers (evaluator, trade, depin, compute-grid…
Related MCP Servers
- AlicenseAqualityAmaintenanceTransparent MCP proxy with OpenTelemetry tracing. Wrap any MCP server, persist traces to SQLite · Postgres · MySQL. No code changes needed.28 npm11Apache 2.0
- AlicenseNot gradedqualityAmaintenanceSelf-hosted MCP gateway that unifies stdio, Docker, and remote MCP servers behind one endpoint per client, with proactive OAuth refresh and no telemetry.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables a single MCP client to connect to many upstream MCP servers through one gateway, with prefix-based routing, health checks, circuit-breaker failover, and unified stdio/HTTP access.MIT
- AlicenseNot gradedqualityCmaintenanceA zero-dependency universal MCP gateway that multiplexes multiple MCP servers across stdio, HTTP, and SSE, providing unified tool access, circuit breaking, and an interactive inspector studio.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.