Parakh
Server Details
Receipts for what your AI coding agent says it verified. Short-lived API checks, keys kept out of the model
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Most tools have distinct resource+action targets (get_spec, run_test, list_endpoints, manage_credentials). The main ambiguity is save_spec vs update_spec, since save_spec also upserts existing specs by URL, which can overlap with update_spec's in-place update. Descriptions clarify the difference reasonably well.
Every tool follows a consistent snake_case verb_noun pattern (get_spec, save_spec, update_spec, run_test, list_endpoints). No camelCase mixing or inconsistent verb styles, making the surface very predictable.
Nine tools is well-scoped for a spec-management and test-execution server. Each tool earns its place: spec lifecycle, test execution, results, endpoints, and credentials. No redundant or filler tools.
Core lifecycle is covered: create/save, read, update, deactivate/reactivate specs; run tests and retrieve results; list endpoints; manage credentials. Minor gaps exist such as no hard-delete of specs and only list_endpoints with no endpoint inspection by ID, but agents can work around these.
Available Tools
9 toolsdeactivate_specDeactivate specADestructiveInspect
Retire a spec: flips status to 'inactive' and atomically purges all credentials. Inactive specs reject updates, new test runs, endpoint inspection, and credential management. Historical evidence stays readable. Purged credentials CANNOT be restored by reactivate_spec.
| Name | Required | Description | Default |
|---|---|---|---|
| specId | Yes | ID of the spec to deactivate |
Output Schema
| Name | Required | Description |
|---|---|---|
| specId | Yes | |
| status | Yes | |
| deactivatedAt | Yes | |
| purgedCredentialCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (destructiveHint=true): it discloses that credential purge is atomic, that purged credentials CANNOT be restored even by reactivate_spec, what operations become blocked, and that historical evidence remains readable. This is exactly the irreversibility and side-effect detail an agent needs before a destructive 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?
Three tightly packed sentences, front-loaded with the action and its two effects, then consequences and the irreversibility warning. No filler or repetition of the title.
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 one-parameter destructive tool with an output schema present, the description covers everything material: side effects, blocked follow-on operations, preserved data, and the fact that the purge is permanent. Return-format explanation is unnecessary given the output schema.
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 description coverage is 100% and the single specId parameter is already documented in the schema, so the description adds no new parameter meaning. Baseline 3 applies when the schema does the heavy lifting.
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?
States a specific verb ('Retire') and resource (spec) plus the concrete effects: status flips to 'inactive' and credentials are purged atomically. This is clearly distinguishable from sibling reactivate_spec, which reverses the status (but not the purge).
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?
Explains the operational consequences that define when to use it – the spec rejects updates, new test runs, endpoint inspection, and credential management – and references reactivate_spec for the reverse direction. It never states an explicit 'use this instead of X when...' rule, 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.
get_resultsGet test resultsARead-onlyInspect
Retrieve full evidence and Markdown summary from a past test run. Screenshots are listed as URIs under GET /api/results/:runId/screenshots/:id, not inline bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Test run ID to retrieve results for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only profile. The description adds genuine beyond-schema context by clarifying that screenshots are returned as URIs under a documented endpoint rather than inline bytes, which materially helps the agent handle the response.
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 tightly written sentences, the retrieval purpose front-loaded and the response-handling caveat second. No filler.
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?
With no output schema, the description must characterize the return, and it does: full evidence, Markdown summary, and screenshot URIs with a path to fetch them. Adequate for an agent to call and consume the result 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 there is only one parameter (runId) already documented in the schema. The description's reference to a past test run and the :runId path do not add meaning beyond the structured field, so the baseline 3 applies.
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?
States a specific verb (retrieve) and resource (full evidence and Markdown summary from a past test run), and the phrase 'past test run' distinguishes it from the write-oriented sibling run_test. It does not name a sibling explicitly, so it stops short of a 5.
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?
'from a past test run' implies this is the post-run retrieval step following run_test, so usage is implied rather than stated. There is no explicit when-to-use, when-not, or alternative tool named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_specGet or list specsARead-onlyInspect
Retrieve a stored spec by ID or by source URL, or list all saved specs (omit both to list). If both are supplied, specId wins. List mode accepts a status filter (default 'active').
| Name | Required | Description | Default |
|---|---|---|---|
| specId | No | Spec ID to retrieve. Omit to list or look up by sourceUrl. | |
| status | No | List-mode filter (default 'active') | |
| sourceUrl | No | Source URL to look up an existing spec by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds a genuine behavioral rule not present in the annotations: the specId-wins precedence when both identifiers are supplied. No return format or result-limit behavior is described.
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?
A single dense sentence that front-loads the retrieval modes, then the precedence rule, then the list filter. No filler, and the most important disambiguation comes first.
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 read-only, three-parameter tool with full schema coverage and annotations, the description covers modes, precedence, and filtering adequately. Since there is no output schema, a brief note on what a spec record or list contains would be the only remaining gap.
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 description coverage is 100%, so every parameter is already documented, and the description's status default and identifier behavior largely restate the schema. The only added semantics is the conflict resolution between specId and sourceUrl, which is marginal over the schema 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?
States a specific verb (retrieve) and resource (stored spec) and explicitly enumerates both operating modes: fetch by ID, fetch by source URL, or list. This distinguishes it cleanly from write-oriented siblings like save_spec and update_spec.
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?
Gives clear selection rules: omit both identifiers to list, and specId takes precedence when both are supplied. It also notes the list-mode status filter and its default. It does not point to sibling tools for adjacent operations, but the when-to-use guidance for this tool's own modes is complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_endpointsList spec endpointsARead-onlyInspect
List all endpoints from a stored API spec with method, path, and summary. Use this before writing test code to see valid endpoints.
| Name | Required | Description | Default |
|---|---|---|---|
| specId | Yes | ID of the saved spec to list endpoints from |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| specId | Yes | |
| baseUrl | Yes | |
| endpoints | Yes | |
| endpointCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, non-destructive and closed-world, so the safety profile is covered. The description usefully adds that it reads from a 'stored' spec and what fields come back, but says nothing about result size, pagination, or behavior for very large specs. Adequate but not rich against the already-covered 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 short sentences, zero filler, with the scope and returned fields front-loaded ahead of the usage cue. 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 single-parameter, read-only list tool with an output schema and safety annotations, the description covers enough to invoke it correctly without describing return values. The one residual gap is sibling disambiguation against get_spec, which the description never addresses.
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 sole specId parameter is fully documented in the schema, so the schema does the heavy lifting. The description restates the source ('a stored API spec') but adds no format, sourcing, or lookup hints beyond that. Baseline 3 applies.
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?
States a specific verb and resource ('List all endpoints from a stored API spec') and even names the returned fields (method, path, summary), so the operation is unambiguous. However, it does not distinguish itself from the sibling get_spec, which plausibly also surfaces endpoint information, leaving the agent to infer the split.
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?
'Use this before writing test code to see valid endpoints' gives a concrete trigger condition tied to the surrounding workflow. It stops short of naming alternatives or when-not-to-use cases (e.g., use get_spec for a single endpoint's detail), so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_credentialsManage credentialsBDestructiveInspect
List, save, update, or delete credentials for a spec. Each credential has a label (e.g. 'default', 'admin'). Supports custom login-based auth.
| Name | Required | Description | Default |
|---|---|---|---|
| auth | No | Auth configuration (required for save/update) | |
| label | No | Credential label (default: 'default') | |
| action | Yes | Action to perform | |
| specId | Yes | ID of the spec |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering the safety profile, so the description's job here is lighter. It adds useful context that credentials are label-keyed and that custom login-based auth is supported, but it does not clarify that list is non-mutating while delete is irreversible, nor what permissions or spec state are required.
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 compact sentences with the action set front-loaded and no filler. It is well-sized, though the trailing auth sentence is thinner than the nested schema it gestures at.
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 four-action tool over a complex nested auth object with no output schema, the description is adequate but shallow: it never explains what each action returns or requires beyond the schema. The rich 100%-covered schema carries most of the load, keeping this at minimum viable rather than incomplete.
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 description coverage is 100%, so the schema already documents every parameter, setting the baseline at 3. The description adds modest value by giving label examples ('default', 'admin') and flagging custom auth support, but it says nothing about the many nested auth fields (tokenUrl, selectors, tokenPrefix, etc.) that dominate the schema.
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 names specific verbs (list, save, update, delete) and a specific resource (credentials for a spec), which is clear enough to distinguish it from all siblings, none of which touch credentials. It loses the top score only because it bundles four operations without indicating priorities or defaults.
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?
Usage is implied by the four enumerated actions and the requirement of a specId, but there is no explicit when-to-use/when-not guidance, no statement of prerequisites (e.g. that a spec must exist first), and no routing to or away from any sibling. This is minimum viable, not instructive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reactivate_specReactivate specAInspect
Bring an inactive spec back to 'active'. Content is preserved; credentials are NOT restored.
| Name | Required | Description | Default |
|---|---|---|---|
| specId | Yes | ID of the spec to reactivate |
Output Schema
| Name | Required | Description |
|---|---|---|
| specId | Yes | |
| status | Yes | |
| reactivatedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, closed-world mutation, so the bar is lower. The description adds genuinely useful side-effect context: content is preserved but credentials are NOT restored, which is exactly the kind of irreversible detail an agent must know before calling. It omits idempotency/error behavior if the spec is already active, keeping it short of a 5.
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 short sentences with zero filler; the state transition is front-loaded and the credential caveat follows immediately. Every clause carries information.
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?
With an output schema present, return values need not be described, and annotations cover the safety profile. The description supplies the key behavioral caveat, but leaves edge cases (already-active spec, permission requirements) unaddressed, so it is strong but not exhaustive.
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?
Only one parameter and schema description coverage is 100%, so the schema already documents specId fully. The description adds no syntax, format, or selection guidance beyond that, so 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?
States a specific verb ('bring back to active') applied to a specific resource with an explicit precondition (the spec is currently inactive). The state transition clearly contrasts with the sibling deactivate_spec, so an agent can distinguish it without opening any schema.
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 'inactive' precondition effectively tells the agent when this tool applies, and the credential caveat warns of a consequence. It never names an explicit alternative or exclusion (e.g., what to do instead if the spec is already active), so routing is implied rather than fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_testRun testAInspect
Execute agent-generated JavaScript against a saved spec. HTTP (default) uses fetch(); browser uses env.PAGE (goto, click, fill, screenshot, getText, waitForSelector, waitForURL, press, selectOption, check, uncheck, hover, reload, url, getAttribute, isVisible, count). Do not import Playwright. Website login is stored once and reused. Pass unauthenticated: true for public pages. browserEngine: kitesurf | chromium.
| Name | Required | Description | Default |
|---|---|---|---|
| specId | Yes | ID of the saved spec to test against | |
| runtime | No | http (default) or browser | |
| testCode | Yes | JavaScript to execute. HTTP: fetch(). Browser: env.PAGE (goto, click, fill, screenshot, getText, waitForSelector, waitForURL, press, selectOption, check, uncheck, hover, reload, url, getAttribute, isVisible, count). | |
| testType | Yes | Categorization label | |
| timeoutMs | No | HTTP default 30000ms, browser 90000ms (cap 120000) | |
| browserEngine | No | Default kitesurf if unauthenticated, chromium if logging in | |
| credentialLabel | No | Which stored credential to use | |
| unauthenticated | No | Browser only: skip login for a public page |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| runId | Yes | |
| status | Yes | |
| summary | No | |
| evidence | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true. The description adds real behavioral context beyond that: the execution sandbox (fetch() for HTTP, env.PAGE API for browser), the hard constraint 'Do not import Playwright', and credential handling ('Website login is stored once and reused'). It stops short of naming side effects on the target system or cancellation/timeout semantics beyond the 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?
Opens with the purpose in one clear sentence and front-loads the runtime/mode distinction. The main inefficiency is the long env.PAGE method enumeration, which is duplicated almost verbatim in the testCode schema description and does not earn its place twice.
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?
With an output schema present, return values need not be explained, and the description supplies the setup prerequisites an agent needs (no Playwright import, env.PAGE surface, stored-login reuse, unauthenticated escape hatch). The remaining gap is that it doesn't warn that executing arbitrary test code can mutate the target system, despite openWorldHint.
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 description coverage is 100%, so the schema already documents all 8 parameters, including defaults for runtime, browserEngine, and timeoutMs. The description largely restates the schema (the env.PAGE method list is duplicated verbatim from the testCode description), so it adds little parameter meaning of its own. Baseline 3 applies when the schema carries the load.
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?
States a concrete verb and resource: 'Execute agent-generated JavaScript against a saved spec.' An agent knows this is the execution/test tool, distinct from save_spec, get_spec, or get_results. It never explicitly names a sibling or boundary, but the purpose is otherwise unambiguous.
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?
Usage is implied by the name and by the runtime discussion (HTTP default, browser mode, 'Pass unauthenticated: true for public pages'), but there is no explicit 'use this when / not when' or routing against siblings. The closest thing to guidance is the default-vs-browser framing, which is parameter behavior rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_specSave API specAInspect
Store an OpenAPI/Swagger spec and its associated auth configuration. Accepts a URL or inline spec. Saving by URL upserts in place: the same URL reuses the existing specId and replaces its contents. Inline saves always create a new spec.
| Name | Required | Description | Default |
|---|---|---|---|
| auth | No | Auth configuration for the API (optional) | |
| name | No | Display name when saving a website without OpenAPI | |
| spec | No | OpenAPI/Swagger spec as a URL to fetch, or inline JSON string | |
| websiteOrigin | No | Website origin, e.g. https://app.example.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| action | Yes | |
| specId | Yes | |
| version | Yes | |
| sourceUrl | No | |
| endpointCount | Yes | |
| websiteOrigin | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the write profile is already covered. The description adds genuine behavioral value beyond that: the upsert-in-place semantics and the fact that URL saves replace existing contents while inline saves always create new. It omits any auth/permission requirements and return behavior, but the output schema covers returns.
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?
Three sentences, front-loaded with the core action, then the input forms, then the key upsert distinction. Every sentence carries a distinct fact with no repetition or filler.
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 write tool with a rich nested auth schema, a 100% schema coverage and an output schema, the description supplies the crucial create-vs-upsert behavior. It stops short of the one thing an agent still needs: how it relates to the sibling update_spec.
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 description coverage is 100%, so the schema already documents spec, name, websiteOrigin and the nested auth object. The description's note that a spec may be a URL or inline largely restates the schema's own spec description, so it adds little beyond the structured fields. 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?
States a specific verb+resource ('Store an OpenAPI/Swagger spec and its associated auth configuration') and scope (URL or inline). It is clear against read siblings like get_spec, but it never distinguishes itself from the sibling update_spec, leaving the save-vs-update boundary ambiguous.
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?
Usage is implied through the upsert explanation (same URL reuses specId, inline creates new), which helps an agent predict the effect of a call. However, there is no explicit when-to-use guidance and no reference to the update_spec sibling, so the agent gets no help choosing between the two write tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_specUpdate API specAInspect
Update an existing spec and/or its auth configuration in-place. Send spec alone to update the definition, auth alone to rotate credentials, or both.
| Name | Required | Description | Default |
|---|---|---|---|
| auth | No | New auth configuration | |
| spec | No | New OpenAPI/Swagger spec as a URL or inline JSON string | |
| specId | Yes | ID of the spec to update | |
| websiteOrigin | No | Website origin to set (empty string clears) |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| specId | Yes | |
| updated | Yes | |
| version | Yes | |
| endpointCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, destructiveHint=false, so the safety profile is largely covered. The description adds that the update happens 'in-place' and that auth can be rotated, which is helpful context. It does not explain partial-update behavior (whether omitted fields are preserved or cleared) for these nested, complex parameters.
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, purpose first, parameter-combination guidance second, with no wasted words. Appropriately sized for a four-parameter update tool.
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?
An output schema exists, so return values need no explanation, and the schema fully documents the nested params. The description covers purpose and parameter combinations, but omits sibling disambiguation and partial-update semantics, leaving minor gaps for a complex nested-object mutation.
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?
With 100% schema description coverage the baseline is 3, but the description goes beyond the schema by explaining how parameters combine: spec alone updates the definition, auth alone rotates credentials, or both together. That combination logic is not derivable from the per-parameter schema descriptions.
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 and resource ('Update an existing spec and/or its auth configuration in-place'), which is far more than a restatement of the title. It does not, however, differentiate itself from closely related siblings such as manage_credentials or save_spec, so it stops short of a 5.
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?
It gives clear operating guidance for the three call modes ('spec alone to update the definition, auth alone to rotate credentials, or both'), which is useful. But it says nothing about when to prefer this tool over alternatives like manage_credentials (for credentials) or save_spec, leaving the sibling-selection decision to inference.
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.
9 tool updates
- First observed
deactivate_spec - First observed
get_results - First observed
get_spec - First observed
list_endpoints - First observed
manage_credentials - First observed
reactivate_spec - First observed
run_test - First observed
save_spec - First observed
update_spec
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.