AILANG Parse
Server Details
Deterministic DOCX/PPTX/XLSX/PDF parser: track changes, comments, headers, footers, merged cells.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- sunholo-data/ailang-parse
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.4/5 across 31 of 31 tools scored. Lowest: 1.1/5.
Multiple tools serve overlapping purposes, particularly mcpParse and parseFileSecure both parse documents with similar parameters, and mcpAuth/deviceAuthRequest both initiate the same device authorization flow with near-identical outputs. This creates ambiguity for agents when selecting the appropriate tool. Additional overlap exists between mcpAccount, myEntitlements, getKeyUsage, and listApiKeys for account/usage information.
Tool names follow no consistent pattern: some are verb-first camelCase (getKeyUsage, rotateApiKey), some are prefix groups (deviceAuth*, mcp*), some are bare nouns (formats, health, pricing), and one uses snake_case (submit_feedback). The mix of conventions makes it hard to predict tool names from their function.
31 tools is excessive for a document parsing API, especially since several groups could be consolidated (e.g., the auth flow is split across 8 deviceAuth/mcpAuth tools, and account info spans 4+ tools). The large count with redundant functionality adds unnecessary cognitive load, making the server feel heavy and unfocused.
Core capabilities are present: parsing, format listing, cost estimation, upload, history, replay, and key management. However, document generation/conversion is explicitly unsupported (mcpConvert returns unsupported), leaving a lifecycle gap since parse output cannot be converted to a downloadable file. There is also no direct tool to fetch a parsed document by ID outside of requestReplay, and editDocument only returns modified blocks without generating a file.
Available Tools
32 toolsagentCardBInspect
A2A Agent Card for agent-to-agent discovery. Returns a hand-crafted Agent Card with AILANG Parse-specific skills, supported formats, and capability descriptions. @raw: return raw JSON (no {result:..., elapsed_ms:N} envelope) for A2A compliance. Switch to @nowrap once available (lighter than @raw). If using --a2a flag, the built-in route takes precedence (collision guard skips this).
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses return format (including the @raw envelope behavior) and a collision guard nuance. It does not mention authentication, rate limits, or side effects, but for a simple discovery card the disclosed information is somewhat useful, though not comprehensive.
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 front-loaded with purpose and returns, and most sentences add useful detail. The future-oriented 'Switch to @nowrap once available' and the collision guard note add a bit of noise but are still relevant to usage.
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?
The description covers the tool's purpose, output contents, and special output modes, which is adequate for a simple getter with no output schema. However, it lacks explanation of the '_' parameter and explicit use-case exclusions, so it is not fully complete.
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 input schema has one parameter '_' with 0% description coverage, and the description does not explain what '_' represents. The mention of @raw and @nowrap adds context about output modes but not about the actual parameter, leaving the parameter semantics unclear.
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 'Returns a hand-crafted Agent Card' with AILANG Parse-specific skills, which identifies the resource and action. It is distinct from siblings like 'capabilities' or 'formats' by focusing on the A2A Agent Card, though it doesn't explicitly differentiate.
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 'agent-to-agent discovery' and provides operational guidance about @raw and @nowrap modes, as well as a collision guard with the --a2a flag. However, it does not explicitly state when to prefer this over sibling tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apiSamplesCInspect
Sample files inventory — delegates to the upstream package. Package @route annotations don't auto-register with serve-api, so we provide a local wrapper here.
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It mentions delegation and wrapper implementation, which explains the tool's origin but not its runtime behavior, return values, or side 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 sentences are relatively brief, but the second sentence about @route annotations is implementation detail that doesn't aid tool selection or invocation. It could be trimmed.
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 one-parameter tool, the description leaves major gaps: no parameter semantics, no output expectations, and no behavioral details beyond implementation. It's minimal but not complete.
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 single required parameter '_' is completely undocumented in both schema and description. The description offers no meaning or format for this parameter.
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 a resource ('Sample files inventory') but provides no verb or action, making it unclear whether the tool lists, fetches, or manages sample files. It doesn't distinguish from sibling tools like apiTools.
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?
No explicit when-to-use or alternative guidance is provided. The phrase 'sample files inventory' implies a use case, but there is no context about when to choose this over related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apiToolsDInspect
Tool definitions for Claude, OpenAI, MCP, and A2A agent frameworks. Delegates to the upstream package.
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The only hint is 'Delegates to the upstream package,' which suggests forwarding behavior but omits side effects, permissions, rate limits, or return format. This is insufficient for safe invocation.
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 brief with two sentences, but it is under-specified rather than concisely informative. Each sentence is vague and fails to convey essential details, so the brevity is a drawback rather than a strength.
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 undocumented parameter, no output schema, and no annotations, the description leaves the agent without enough information to select or invoke the tool correctly. It does not explain what the tool does, when to use it, or what to expect, making it wholly 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?
The sole parameter '_' has no description in the schema, and the schema description coverage is 0%. The tool description does not explain what '_' represents, its expected format, or how to populate it, forcing the agent to guess.
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 'Tool definitions for Claude, OpenAI, MCP, and A2A agent frameworks' but lacks a specific verb or resource indicating what the tool actually accomplishes. It does not distinguish itself from sibling tools like 'apiSamples' or 'capabilities', and 'Delegates to the upstream package' remains 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?
No guidance is given on when to use this tool versus alternatives. There is no mention of contexts, prerequisites, or exclusions, making it impossible for an agent to decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capabilitiesDInspect
capabilities(() -> string ! {Env}) [pure]
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It only includes a cryptic '[pure]' marker and otherwise says nothing about side effects, return structure, errors, or operational behavior.
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 extremely short, but that brevity comes at the cost of meaningful content. It is under-specification, not effective conciseness.
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 annotations, no output schema, an opaque type signature, and an undocumented parameter, the description is completely inadequate for an agent to select and invoke this 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 input schema has one required parameter '_' with zero description coverage. The tool description does not mention parameters at all, leaving the agent without any indication of what value to pass.
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 is just a type signature 'capabilities(() -> string ! {Env}) [pure]' with no plain-language explanation of what the tool does. It essentially restates the tool name with a function type, providing no verb or resource.
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?
There is no guidance on when to use this tool or when to choose an alternative. The description does not imply any practical use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convertDocumentAInspect
Convert a document to another format — deterministic conversion only.
Parse to blocks, then generate. Every generator lives in
pkg/sunholo/ailang_parse and is the same code the CLI's --convert runs, so
fidelity here is whatever the CLI produces, not a second implementation.
Input modes match POST /api/v1/parse exactly: multipart upload or sample_id
via filepath, a public/signed https URL via sourceUrl, or gs:// via
gcsRef (Business tier).
target: one of html, md, qmd, docx, pptx, xlsx, odt, odp, ods. ".docx", "DOCX", "markdown" and "htm" are normalised; anything else is a typed UNSUPPORTED_TARGET_FORMAT error, never a 500.
Response is JSON, not a binary body — serve-api response bodies are strings.
content holds the document, encoding says how to read it ("base64" for
the ZIP container formats, "utf8" for html/md/qmd) and content_type is the
MIME type to save it as.
Metering: one request per conversion, on the same counters and the same key gate as /parse, plus the AI sub-quota when the SOURCE format needs AI (PDF, images). Output size does not affect the charge. This is the "per generated document" model — deliberately the simplest of the three candidates in v0_32_0_generation_surfaces.md, and the only one that is safe to change later, since per-byte or allowance-based pricing can be layered on top of a per-document counter but not extracted from one that was never recorded.
AI generation (--generate --prompt) is NOT in scope here: it burns model tokens and cannot share this price or this rate limit. @nowrap: raw JSON (no envelope), _headers extracted as HTTP response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | ||
| gcsRef | Yes | ||
| target | Yes | ||
| filepath | Yes | ||
| sourceUrl | Yes | ||
| pdfBackend | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses multiple behavioral traits: deterministic output identical to CLI, input mode options, target normalization with typed errors, response format (JSON string, not binary), and detailed metering/rate-limit behavior. This goes far beyond a basic operation description.
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 lengthy but each section contributes functional knowledge: conversion behavior, input modes, target formats, response structure, metering, and exclusions. It is front-loaded with purpose and uses paragraph breaks effectively. A slightly tighter version could remove some pricing rationale, but overall it is information-dense without redundancy.
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?
Given 6 required parameters, no annotations, and no output schema, the description is remarkably complete. It covers all input modes, error cases, response fields, encoding details, and metering implications. The only minor gap is pdfBackend, but the overall context is sufficient for correct invocation.
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 0%, so the description must compensate. It explains filepath (including sample_id), sourceUrl, gcsRef, and target enumerations with normalization rules. However, pdfBackend is not described, and apiKey is only implicitly standard. Still, the provided parameter semantics significantly exceed the minimal 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 opens with a clear verb+resource statement: "Convert a document to another format — deterministic conversion only." It immediately distinguishes this conversion tool from parse-only tools and AI generation by emphasizing deterministic conversion. The mention of specific target formats further clarifies scope.
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 states when NOT to use the tool ("AI generation ... is NOT in scope here") and compares input modes to POST /api/v1/parse. However, it does not name alternative sibling tools such as mcpConvert or editDocument, so the exclusion is clear but alternative selection guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deviceAuthApproveAInspect
Approve a device authorization request. Called by the browser approval page after user signs in and confirms. Verifies Firebase ID token from Authorization header to ensure the caller is a real authenticated user. Extracts uid from the verified token. Dev mode: ALLOW_SELF_APPROVE=true skips Firebase verification (for testing).
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals important behaviors: verifies Firebase ID token, extracts uid, and has a dev-mode bypass. This goes beyond a simple 'approve' by explaining security checks, though it stops short of describing the resulting state change or 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?
The description is succinct at four sentences, with the primary purpose front-loaded. Each sentence earns its place by adding security or usage context, though a slightly more structured breakdown would improve scannability.
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?
While it covers purpose, caller, and auth verification, it lacks crucial details for safe invocation: the structure of 'req', expected output/return value, failure scenarios, and side effects on the device request. With no annotations or output schema, these gaps are significant.
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 input schema has one 'req' object with 0% description coverage. The description mentions the Authorization header and uid extraction, giving a hint that req is likely an HTTP request object, but it never explicitly defines the required structure or fields, leaving the agent to guess how to construct valid input.
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 opens with 'Approve a device authorization request', a specific verb+resource that clearly states the tool's function. It distinguishes itself from sibling tools like deviceAuthRequest (initiate) and deviceAuthPoll (check status) by focusing on the approval step.
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 clear context: 'Called by the browser approval page after user signs in and confirms.' This implicitly tells the agent when to use the tool, though it does not explicitly compare with alternatives or mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deviceAuthInspectAInspect
Look up a pending device code by user_code and return its provenance. No authentication required — possession of the user_code is the proof. The dashboard /approve.html page calls this BEFORE showing the approve UI so the user can see where the request came from (IP, User-Agent, Referer, age) and decide whether to trust it.
Returns 404 if the user_code does not match any pending device_codes doc. Already-approved or expired codes return as INPUT_NOT_FOUND too — there is nothing to inspect after the fact.
| Name | Required | Description | Default |
|---|---|---|---|
| userCode | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description fully discloses key behavioral traits: no authentication required (possession of user_code is proof), 404 for unmatched codes, and INPUT_NOT_FOUND for approved/expired codes. It also mentions the provenance fields returned (IP, UA, Referer, age), making the tool's behavior predictable.
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 concise and well-structured: it front-loads the core action, then provides usage context, then error semantics. Each sentence earns its place with no fluff or repetition.
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?
This is a simple lookup tool with one parameter and no output schema. The description covers the purpose, usage, authentication, return fields, and error cases. It is sufficiently complete for an agent to invoke it correctly and interpret results.
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 description adds meaningful context to the userCode parameter by explaining that it is used to look up the device code and that its possession is proof. This goes beyond the bare schema (string, required). It doesn't specify format constraints, but the role is clear.
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 begins with a specific verb+resource: 'Look up a pending device code by user_code and return its provenance.' It clearly distinguishes this inspection tool from the sibling approve/poll/request tools. The dashboard use case further clarifies its role.
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 a concrete usage context: it is called by /approve.html before showing the approve UI. It implies that this is for pending codes only, and that approved/expired codes are meaningless. However, it does not explicitly contrast with sibling tools like deviceAuthApprove or deviceAuthPoll.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deviceAuthPollAInspect
Poll for device authorization approval. Returns AUTHORIZATION_PENDING if user hasn't approved yet. Returns DEVICE_CODE_EXPIRED if the code has timed out. Returns approved status with API key on success.
| Name | Required | Description | Default |
|---|---|---|---|
| deviceCode | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden. It effectively discloses the three possible outcomes (pending, expired, approved with API key), which is essential for a polling tool. However, it omits details like blocking behavior, polling interval, or error cases beyond expiration.
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 concise at three sentences, front-loaded with the core purpose, and efficiently conveys the important return states. There is no redundancy or unnecessary 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?
The description covers the main return values and success condition, which is good given the lack of an output schema. However, it does not explain how deviceCode is obtained, how it relates to deviceAuthRequest, or how to handle unexpected errors. Given the simple tool, it is minimally complete but leaves gaps.
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 sole parameter deviceCode is not explained in the description. Schema coverage is 0%, so the description must compensate, but it adds no meaning about where the device code comes from or its format. The name is somewhat self-explanatory, preventing a score of 1.
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 'Poll' and clearly identifies the resource 'device authorization approval'. It distinguishes itself from sibling tools like deviceAuthApprove and deviceAuthInspect by focusing on the polling action and its return states.
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 when waiting for a user to approve a device authorization request, but it does not explicitly state when to use this tool over alternatives such as deviceAuthInspect or mcpAuthPoll. No exclusionary or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deviceAuthRequestBInspect
Request a device authorization code. Returns device_code, user_code, and verification URL. The agent should display the verification_url to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It does state the return values and an action for the agent (display the verification_url). However, it does not disclose side effects (e.g., creating a pending authorization request), expiration times, or whether the call requires specific authentication, leaving notable gaps.
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 three short, front-loaded sentences: purpose, return values, and an explicit agent instruction. Every sentence provides essential information with no redundant wording.
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?
Despite the tool's moderate complexity, the description omits the required parameter semantics and does not explain how this step fits into the broader device authorization flow (e.g., that deviceAuthPoll or deviceAuthApprove may follow). With no annotations and no output schema, these omissions leave the description incomplete for correct invocation.
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 input schema has a single required parameter 'req' of type object with no defined properties, and schema description coverage is 0%. The description does not mention this parameter at all, so the agent has no guidance on how to construct the required 'req' object. This is a critical omission.
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 begins with a specific verb and resource: 'Request a device authorization code.' It also lists the return values (device_code, user_code, verification_url), which clarifies the tool's purpose. This clearly distinguishes it from sibling tools like deviceAuthApprove, deviceAuthInspect, and deviceAuthPoll.
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 this is an initial step in a device authorization flow by instructing the agent to display the verification_url to the user. However, it does not explicitly state when to use this tool versus the sibling tools (e.g., 'use when you need to start a device flow, not for polling or approving'), nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editDocumentAInspect
Parse a document, apply JSON edit deltas, and return the modified blocks as JSON (same format as POST /api/v1/parse with outputFormat=blocks).
filepath: uploaded file path (multipart upload). deltas: JSON array of edit operations — see edit_apply.ail for format. Empty array or "" → round-trip (parse + return unchanged blocks). apiKey: dp_ API key.
Response: modified blocks JSON. Use the AILANG SDK or CLI to generate a file from the returned blocks (e.g. ailang run ... --convert output.docx).
Only deterministic office formats are supported (docx, pptx, xlsx, odt, odp, ods). AI-required formats (pdf, image, audio, video) are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | ||
| deltas | Yes | ||
| filepath | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains core behavior (apply deltas, return blocks), the round-trip behavior for empty deltas, the response format, and supported/rejected file types. It could add details about error handling or invalid deltas, but is otherwise transparent.
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 structured with clear separation for main behavior, parameter details, response, and format constraints. Every sentence contributes useful information, with no filler or redundancy.
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?
Despite having no output schema and no annotations, the description covers the input parameters, output format, how to use the result (AILANG SDK/CLI), and format restrictions. It is sufficiently complete for an agent to select and 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?
Schema description coverage is 0%, so the description must compensate—and it does. It explains filepath (uploaded file path), deltas (JSON array, format reference, empty array behavior), and apiKey (dp_ API key). This is meaningful semantic detail beyond the plain schema strings.
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 starts with a specific verb+resource: 'Parse a document, apply JSON edit deltas, and return the modified blocks as JSON.' It clearly defines what the tool does and differentiates it from sibling parse-only tools like mcpParse by emphasizing the delta application and round-trip behavior.
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 clear context on when to use the tool: for deterministic office formats (docx, pptx, xlsx, etc.) and explicitly states that AI-required formats (pdf, image, audio, video) are rejected. It also advises using the AILANG SDK/CLI for conversion, but does not explicitly name alternative MCP tools for parsing-only tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimateDInspect
estimate((string, string) -> string ! {Clock, FS}) [pure]
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | ||
| outputFormat | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions 'pure' and effects, but these are cryptic and not explained. It does not describe side effects, permissions, return behavior, or any practical behavioral traits.
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 extremely short, but this is under-specification rather than conciseness. It is a single technical fragment that lacks any explanatory structure, offering no useful information in its brevity.
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?
Given the tool's complexity (2 params, no output schema, no annotations), the description is completely inadequate. It fails to explain what the tool does, which is essential for selection and invocation.
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 schema has two parameters (filepath, outputFormat) but the description does not map the type signature to these parameters or explain their meaning. With 0% schema description coverage, the description provides no semantic value for the parameters.
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 is a bare type signature, not a statement of what the tool does. It merely repeats the name 'estimate' and gives a type, offering no indication of the function's purpose or resource. It is essentially a tautology.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions. The description is entirely a type signature with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formatsAInspect
List all supported document formats for parsing and generation. Returns: parse formats (13), generate formats (9), output formats (blocks/markdown/html/a2ui), and which formats require AI (PDF, images).
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on full responsibility for behavioral disclosure. It discloses detailed return categories, counts (13 parse, 9 generate), and AI-required formats, which is strong transparency for a simple listing tool. It does not mention side effects or auth, but those are not relevant for a read-only list operation.
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 concise and well-structured: one sentence for purpose, one sentence for return details. It is front-loaded with the primary action and includes specific counts without any redundant wording.
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?
The description explains the output well, which is important given there is no output schema, but it completely ignores the required '_' parameter. This creates a major gap in completeness, as the agent cannot know how to invoke the tool correctly despite understanding what it returns.
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 input schema has one required parameter '_' with no description, and the description provides no explanation for it. With 0% schema description coverage, the parameter's meaning is entirely opaque, leaving the agent unable to correctly invoke the tool.
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 function: 'List all supported document formats for parsing and generation.' It specifies the resource (document formats) and action (list), and the return categories further distinguish it from siblings like mcpFormats or mcpConvert.
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 when an agent needs to know supported formats, but it does not explicitly mention alternatives or conditions for when not to use this tool. There is no comparison with sibling tools like mcpFormats, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getKeyUsageAInspect
Get usage stats for a user's API key. Accepts Firebase JWT or apiKey. Verifies that the requested keyId belongs to the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses useful behaviors: supports two auth methods (Firebase JWT or apiKey) and verifies keyId ownership. However, it omits return format, error behavior, and rate limits, which are important for operation.
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, front-loaded with the main purpose followed by authentication and verification details. Every sentence adds valuable information without repetition or fluff.
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?
Given the minimal schema, no output schema, and no annotations, the description provides a solid outline but leaves gaps: no exact request payload structure, no response details, and no error scenarios. An agent would likely need additional examples or schema enrichment to 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 input schema has a single opaque 'req' object with 0% coverage, so the description must compensate. It mentions 'Firebase JWT or apiKey' and 'requested keyId,' giving hints about required fields, but does not specify the exact structure or how these map to the request object.
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 action and target: 'Get usage stats for a user's API key.' This distinguishes it from sibling tools like listApiKeys, revokeApiKey, and rotateApiKey by its focus on usage statistics rather than listing or managing keys.
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 when to use the tool (to get usage stats for a specific key) but does not explicitly mention alternatives or exclusion criteria. It says 'Accepts Firebase JWT or apiKey' which hints at authentication prerequisites, but there is no direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUploadUrlAInspect
Request a pre-authenticated GCS upload URL for direct file upload. Business tier only. The returned URL allows the client to PUT file content directly to GCS, bypassing the 32MB Cloud Run request limit. After upload, pass the gcs_ref to POST /api/v1/parse.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | ||
| filename | Yes | ||
| mimeType | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the returned URL is pre-authenticated and allows the client to PUT content directly to GCS, bypassing the size limit. It also notes the Business tier restriction and the follow-up step. However, it omits important details such as URL expiration, whether the URL is single-use, error conditions, or authentication specifics, leaving some behavior undocumented.
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 three sentences, front-loaded with the primary purpose, followed by constraints and the follow-up workflow. Every sentence earns its place with no redundancy or fluff. The structure is clear and highly scannable.
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?
The tool has 3 required parameters, no annotations, and no output schema. The description explains the high-level workflow but omits crucial details such as parameter meanings, response format (only mentions 'returned URL' and 'gcs_ref' without structure), possible errors, and the role of apiKey. This makes the description incomplete for a tool with no other structured documentation.
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 schema defines three parameters (apiKey, filename, mimeType) with no descriptions, and schema description coverage is 0%. The description adds absolutely no information about these parameters, not even mentioning them. This is a critical gap: the agent is left to infer parameter meaning from names alone, which is insufficient for a tool with this level of ambiguity.
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 function: 'Request a pre-authenticated GCS upload URL for direct file upload.' It identifies the action (request), resource (GCS upload URL), and scope (direct file upload). This distinguishes it from sibling tools like parseFileSecure by focusing on the upload step, making the purpose 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?
The description gives clear usage context: use this for direct file uploads to GCS, specifically to bypass the 32MB Cloud Run request limit. It also outlines a workflow by mentioning the need to pass gcs_ref to POST /api/v1/parse after upload. However, it doesn't explicitly name alternatives or state when not to use the tool, so it misses a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
healthBInspect
Health check for the AILANG Parse API.
Returns service status, version, AILANG commit hash, supported format counts,
and billing catalog status. billing_catalog_loaded is FALSE when the
BILLING_PLAN_CATALOG env var is unset or parses to an empty list — in that
mode every authenticated request silently falls back to the safety-net
"fallback" plan (limit=1) and is rejected as over-quota. release.sh asserts
billing_catalog_loaded == true after every promotion to catch this regressing.
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a critical behavioral trait: when `billing_catalog_loaded` is FALSE, all authenticated requests silently fall back to a restriction plan and are rejected as over-quota. It also explains the root cause (env var unset or empty) and mentions a release.sh assertion. This is beyond what an annotation would provide and helps the agent anticipate unexpected failures.
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 front-loaded with the purpose, followed by return fields and a necessary behavioral warning. The second and third sentences are densely informative but not redundant. It could be slightly shorter by omitting the release.sh implementation detail, but that context is useful for understanding the tool's role.
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?
While the tool's output and behavioral nuance are well described, the missing explanation of the required `_` parameter and the lack of an output schema leave a gap. The agent cannot directly invoke the tool without guessing the parameter, and it does not know the exact response structure beyond a vague list.
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 schema defines a required parameter `_` but gives no description, and the tool description does not explain what this parameter represents or what value to pass. With 0% schema description coverage, the agent has no way to correctly populate the required input.
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 is a health check for the AILANG Parse API and enumerates the exact data it returns (service status, version, commit hash, format counts, billing catalog status). This distinguishes it from sibling tools like deviceAuth or parse, which have 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?
No guidance is provided on when to use this tool versus alternatives. It does not mention specific scenarios for calling it (e.g., checking service readiness, debugging billing issues) or exclude cases where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listApiKeysAInspect
List API keys for a user. Accepts either:
Authorization: Bearer (dashboard path)
{apiKey: "..."} or {args: ["dp_..."]} in body (CLI/SDK path) The resolved userId filters the Firestore query server-side.
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that the user ID filters the Firestore query server-side and explains the request format. However, it doesn't mention return format, pagination, or whether secrets are exposed, leaving some behavioral gaps for an unannotated tool.
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 concise, front-loaded with the purpose, and uses a clear bullet list for the two auth paths. Every sentence is informative with no filler, making it easy for an agent to parse quickly.
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 one parameter, the description provides sufficient context: auth mechanisms and server-side filtering. It omits return value details, but the tool name and purpose imply a list of API keys. Given no output schema or annotations, slightly more detail would be ideal, but it's still reasonably complete.
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 schema provides no descriptions and only a generic 'req' object (0% coverage). The description compensates by specifying that 'req' can contain 'apiKey' or 'args', giving concrete meaning to the parameter structure. It doesn't fully detail all possible fields, but it significantly clarifies the ambiguous 'req'.
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 'List API keys for a user' with a specific verb and resource. It distinguishes this from sibling tools like revokeApiKey or rotateApiKey by focusing on listing, and the purpose is immediately clear.
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 clear context on how to use the tool, detailing two authentication paths (dashboard Bearer token and CLI/SDK apiKey or args). It doesn't explicitly name alternative tools for when not to use it, but the purpose is unambiguous and the auth paths act as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcpAccountAInspect
View account info, pricing, entitlements, or list keys. Actions: "status" (default) → tier, quota, usage from /me/entitlements "pricing" → public pricing tiers (no auth required) "keys" → list user's API keys with per-key usage "usage" → alias for "keys" (per-key usage is shown there)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| apiKey | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that 'pricing' requires no auth, that 'keys' returns per-key usage, and that 'usage' is an alias. This is useful behavioral context beyond the schema, though it omits error handling or apiKey requirements.
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 front-loaded with a one-line summary and uses a clear bulleted list for actions. No redundant information or padding.
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?
The tool has 2 required params, no output schema, and no annotations. The description thoroughly explains each action's result and auth requirements, but misses context on apiKey acquisition and when to prefer this tool over specialized siblings.
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 0%, and the description adds meaning for the 'action' parameter by enumerating valid values and their meanings. However, the required 'apiKey' parameter is entirely unexplained, leaving a significant gap.
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 opens with 'View account info, pricing, entitlements, or list keys' followed by a detailed action list, making the tool's purpose explicit and distinguishing it from specialized siblings like listApiKeys and pricing.
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 lists actions but does not explain when to choose this aggregate tool over dedicated siblings (e.g., listApiKeys, getKeyUsage, myEntitlements). No exclusions or alternatives are mentioned, so usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcpAuthAInspect
Start device authorization to get an API key. Returns device_code, user_code, and verification URL. The agent should display the verification URL to the user, who signs in and approves the code. Then call mcpAuthPoll with the device_code. MCP wrappers don't have HTTP request headers, so provenance is empty here.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and delivers useful context: it discloses return values, the interactive user step, and the caveat that MCP wrappers lack HTTP headers so provenance is empty. It does not discuss permissions or errors, but it goes 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?
The description is concise, logically structured, and packed with actionable information across four sentences. No redundancy 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?
It explains the authorization flow, return values, and next step, which is sufficient for the tool's purpose. However, the unexplained 'label' parameter prevents full completeness.
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 sole required parameter 'label' is completely undocumented in the schema (0% coverage) and never mentioned in the description. The agent has no guidance on what value to provide for this mandatory field.
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 it starts device authorization to get an API key, and specifies the return values (device_code, user_code, verification URL). It distinguishes itself from mcpAuthPoll by framing this as the initial step of the flow.
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 provides explicit workflow instructions: display the verification URL to the user, wait for approval, then call mcpAuthPoll. It does not name alternatives or exclusions, but the sequential context makes when to use this tool clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcpAuthPollAInspect
Poll for device authorization completion. Returns "pending" (keep polling every 5s), "approved" (with api_key and tier), or "expired" (start over with mcpAuth).
| Name | Required | Description | Default |
|---|---|---|---|
| deviceCode | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It discloses the three possible return states ('pending', 'approved', 'expired') and associated outcomes (api_key and tier on approval). It also gives operational guidance (polling interval and recovery action). It does not mention error handling for invalid device codes, but the key behavioral traits are covered.
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 extremely concise: two sentences total. It front-loads the primary action ('Poll for device authorization completion') and then lists the return values and resulting actions. Every sentence earns its place with no fluff or repetition.
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?
Given the tool's simplicity (one parameter, no output schema), the description covers the main behavioral aspects: return statuses, polling interval, and next steps. It does not detail error cases (e.g., invalid deviceCode) or exact structure of api_key/tier, but for a poll tool this is reasonably complete. The lack of an output schema makes the return value explanation essential, and it is provided.
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 input schema has one parameter (deviceCode) with 0% schema description coverage, so the description must compensate. It does not explicitly describe what deviceCode is, where it comes from, or format requirements. The context implies it comes from mcpAuth, but this is not stated directly. The description adds minimal value beyond the schema parameter name.
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 purpose with a specific verb ('Poll') and resource ('device authorization completion'). It explains the three possible outcomes, which makes the tool's function unambiguous. However, it does not explicitly differentiate from the sibling tool 'deviceAuthPoll', which may have similar functionality.
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 clear usage context: poll every 5 seconds while pending, and start over with mcpAuth on expiry. It implies the tool is part of a device authorization flow. It does not explicitly state when not to use it or compare it to the similar sibling 'deviceAuthPoll', but the guidance given is actionable and useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcpConvertAInspect
Convert a document to another format. Targets: html, md, qmd, docx, pptx,
xlsx, odt, odp, ods. input is a file path, a sample_id, an https:// URL,
or a gs:// ref (Business tier).
The converted file comes back as base64 in the JSON response rather than
written to disk, so decode content to get the bytes. outputPath is
accepted but ignored; it stays in the signature because removing it would
change the auto-generated MCP tool schema for existing clients.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| apiKey | Yes | ||
| outputPath | Yes | ||
| outputFormat | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses key behavioral traits: the converted file is returned as base64 in the JSON response, not written to disk, and 'outputPath' is accepted but ignored. This is valuable transparency 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?
The description is concise and well-structured, with two paragraphs that front-load the purpose and targets, then detail the behavior. Every sentence adds value, covering the output format and the 'outputPath' gotcha without extraneous 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?
The description explains the return format (base64 in JSON) and the ignored output parameter, which is key for a conversion tool without an output schema. However, it does not specify supported input formats, error handling, or limits, leaving notable gaps for a tool with no annotations and no 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?
With 0% schema description coverage, the description compensates well by explaining 'input' (file path, sample_id, URL, gs://), 'outputPath' (ignored), and implicitly 'outputFormat' via the list of target formats. However, 'apiKey' is not explained, though it is self-explanatory.
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 converts a document to another format and lists the target formats. However, it does not differentiate from the sibling tool 'convertDocument', which likely serves a similar purpose, so it lacks explicit sibling differentiation.
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 context on when to use the tool by listing input types (file path, sample_id, URL, gs://) and notes the Business tier requirement for gs:// refs. It implies usage but does not explicitly state when to choose this over alternatives like 'convertDocument'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcpEstimateBInspect
Estimate cost and latency for parsing a document. Accepts a file path or sample_id. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | ||
| outputFormat | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals that no auth is required, which is a useful behavioral detail, and specifies input constraints. However, it does not disclose whether the operation is read-only, what happens on invalid input, error behavior, or response structure. These gaps are expected for a simple estimate tool, but it does not fully compensate for missing 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 concise sentences, with the purpose front-loaded and no extraneous content. Every word adds value, making it easy to parse and understand quickly.
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?
Given the tool has only two simple parameters and no output schema, the description provides a reasonable baseline. However, it fails to clarify the relationship between 'file path' and 'sample_id' (which is not in the schema) and does not describe the output format. The absence of annotations and output schema increases the need for more detail, which is only partially met.
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 0%, so the description must compensate. It mentions 'file path or sample_id', but the schema only lists 'filepath' and 'outputFormat' as required properties, creating a discrepancy about sample_id. The description does not explain the 'outputFormat' parameter or its possible values, leaving the agent with ambiguous parameter semantics.
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 function: 'Estimate cost and latency for parsing a document.' This gives a specific verb and resource, and mentions accepted inputs (file path or sample_id). However, it does not explicitly distinguish this tool from the sibling 'estimate', leaving some ambiguity about when to choose which.
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 when cost/latency estimation for parsing is needed, but it provides no explicit guidance on when to use this tool versus alternatives like 'estimate' or 'mcpParse'. It mentions acceptable input types (file path or sample_id) but lacks any exclusions, prerequisites, or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcpFormatsCInspect
List supported formats, samples, and service capabilities. Pure JSON, no auth required. Delegates to package implementation. Single source of truth lives in pkg/sunholo/ailang_parse/services/mcp/tools.
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses response format ('Pure JSON') and auth requirements ('no auth required'), plus the fact that it delegates to a package implementation. However, it does not describe error handling, rate limits, or explicitly confirm read-only behavior beyond the verb 'list'.
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 short, front-loaded sentences. The first states the purpose, the second adds response format and auth, and the third provides implementation context. The final sentence is less essential for invocation but does not bloat the description.
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 list tool, the description covers output format and auth, but omits the meaning of the required '_' parameter, which is critical for correct invocation. Also, 'service capabilities' is vague, and there is no output schema to clarify return values.
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 schema defines one required parameter '_' with no description, and the tool description provides no explanation of it. Schema coverage is 0%, so the description carries the full burden, but it entirely omits the parameter.
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 lists supported formats, samples, and service capabilities, using a specific verb and resource. It distinguishes from sibling 'formats' by including samples and capabilities, though it does not explicitly contrast with alternatives.
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?
No guidance on when to use this tool versus alternatives. It mentions 'no auth required' and 'pure JSON', but these are behavioral traits, not usage context. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcpParseAInspect
Parse a document. Accepts a file path or sample_id (e.g. "sample_docx_formatting"). The hosted server requires a valid dp_ API key — get one via mcpAuth. Output formats: blocks (default), markdown, html, a2ui. requestId is reserved for future replay support.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | ||
| filepath | Yes | ||
| requestId | Yes | ||
| outputFormat | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals auth requirements, output format options with a default, and the non-functional requestId. This is strong transparency for a parse operation, though it doesn't discuss side effects or error behavior.
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 purpose, and every sentence adds information. No redundancy 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?
Covers key aspects like inputs, auth, output formats, and requestId. However, requestId is required but its expected value is vague ('reserved for future replay'), no return structure is described, and there is no differentiation from sibling tools. These gaps prevent a higher score.
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 0%, so the description must compensate. It explains filepath (or sample_id), outputFormat options, apiKey requirement, and requestId purpose. This adds substantial meaning beyond the bare schema, though exact format or allowed values are not fully specified.
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?
Clearly states 'Parse a document' and identifies key inputs (file path or sample_id) and output formats. However, it does not explicitly distinguish this tool from sibling parse tools like parseFileSecure or partitionGeneral, so it misses the top score.
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 context: requires a dp_ API key, lists output formats, and notes requestId is reserved for future replay. Does not explicitly say when to use this instead of alternatives, but the prerequisite and parameter details provide good usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
myEntitlementsAInspect
Get the authenticated user's billing entitlements, usage, and plan details. Returns: plan name, monthly request limit, requests used, remaining requests, upgrade/manage URLs. Requires a valid AILANG Parse API key (dp_ prefix).
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It does mention the auth requirement (dp_ prefix API key), which is useful, but it does not explicitly state that the operation is read-only or has no side effects. The verb 'Get' implies safety, but this is not confirmed, and no information is given about potential errors or rate limits.
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, front-loaded with the primary purpose, and includes a structured 'Returns:' line. Every sentence provides necessary information without wasted words, making it highly concise and well-organized.
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?
Given the tool's simplicity (one parameter, no output schema), the description is reasonably complete: it lists the key return fields (plan name, limits, usage, URLs) and the auth requirement. However, it does not describe error conditions or behavior on invalid keys, and it assumes the agent understands 'authenticated user' in relation to the API key. Still, it fully covers the essential context for an agent to use 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?
The schema only defines apiKey as a string with no description, and schema coverage is 0%. The description compensates by explaining that the apiKey must be a valid AILANG Parse API key with a 'dp_' prefix, adding essential semantic meaning beyond the schema. This is sufficient for a single-parameter tool.
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 verb 'Get' and the resource 'authenticated user's billing entitlements, usage, and plan details', with a specific list of return values. This distinguishes it from siblings like getKeyUsage (which likely focuses on individual key usage) and listApiKeys (which lists keys), so the purpose is 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?
The description provides a prerequisite ('Requires a valid AILANG Parse API key (dp_ prefix)') and implies usage via the details it returns, but it does not explicitly state when to use this tool versus alternatives or mention when-not-to-use cases. There is no reference to sibling tools, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parseFileSecureAInspect
Parse a document. Requires a valid API key. Validates the key, checks entitlement quotas, logs for replay. filepath: file path OR sample_id (e.g. "sample_docx_formatting" → resolved via /api/v1/samples). outputFormat: "blocks", "markdown", "html", or "a2ui". editable: "true" to emit editable A2UI component variants with block_index props; only meaningful when outputFormat="a2ui". gcsRef: optional gs:// URI for Business tier large file uploads (>32MB). When provided, the file is downloaded from GCS via our service account. Business tier only — Free/Pro users get TIER_UPGRADE_REQUIRED error. sourceUrl: optional https:// URL (e.g., a signed GCS URL or any public file). When provided, the file is fetched over HTTPS by docparse and parsed. Available on all tiers; tier dictates the max fetched-file size. Cannot be combined with gcsRef or filepath — sourceUrl wins. pdfBackend: optional PDF extraction backend override. "" — use server default (DOCPARSE_PDF_BACKEND env var, default "pdftotext"). "pdftotext" — deterministic text extraction via poppler. Fast, no AI cost. "docling" — IBM Docling layout analysis. No AI cost. "liteparse" — run-llama LiteParse. No AI cost. "ai" — Gemini multimodal via Vertex AI. Required for scanned/image-only PDFs. Explicit non-"ai" selection returns an error on failure (no silent AI fallback). @nowrap: raw JSON (no envelope), _headers extracted as HTTP response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | ||
| gcsRef | Yes | ||
| editable | Yes | ||
| filepath | Yes | ||
| sourceUrl | Yes | ||
| pdfBackend | Yes | ||
| outputFormat | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It transparently describes key validation, quota checks, replay logging, tier restrictions (e.g., Business tier for gcsRef), and pdfBackend fallback behavior (no silent AI fallback). It also explains the @nowrap special parameter. This is substantial, though it doesn't describe the normal response envelope in detail.
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 long but well-organized, with each parameter getting a dedicated note. While dense, every sentence adds necessary information for correct invocation. The structure is a single paragraph with clear bullets, making it scannable.
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?
Given the tool's complexity (7 parameters, no output schema, no annotations), the description covers most critical aspects: parameter semantics, tier constraints, fallback behavior, and the @nowrap special case. However, it does not describe the default response envelope beyond the @nowrap exception, and the schema's 'required' list contradicts the optionality stated in the description, which could cause confusion.
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 input schema has 0% description coverage, so the description fully compensates. Each parameter is explained with specific options and examples: filepath supports sample_id, outputFormat lists valid values, editable is scoped to a2ui, gcsRef includes tier and size limits, sourceUrl has interaction rules, and pdfBackend enumerates choices and behavior. This goes well beyond the raw 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 begins with 'Parse a document' which is a clear verb+resource, and further clarifies it requires a valid API key. However, it does not explicitly distinguish itself from sibling tools like 'mcpParse' or 'partitionGeneral', so it falls short of a perfect score.
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?
There is no explicit guidance on when to use this tool versus alternative parsing tools. The description provides detailed parameter usage (e.g., when to use gcsRef for large files or sourceUrl for public URLs), but no tool selection criteria or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
partitionGeneralAInspect
Unstructured API-compatible endpoint (drop-in replacement for Unstructured.io). Returns elements in Unstructured JSON format (Title, NarrativeText, Table, ListItem, etc.). Accepts file upload (multipart/form-data) or JSON body with filepath/sample_id. API key: via unstructured-api-key header (Unstructured convention) or apiKey form field. strategy parameter: "auto" (default), "hi_res", "fast", "ocr_only". Uses _headers for header access while keeping @route multipart support.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | ||
| _headers | Yes | ||
| filepath | Yes | ||
| strategy | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a solid job: it discloses auth via unstructured-api-key or apiKey, strategy options with defaults, and handling of _headers for multipart support. A minor inconsistency exists (sample_id mentioned but not in schema), yet overall it provides actionable behavioral details.
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 front-loaded with the primary purpose, followed by compact lines on inputs, auth, and strategy. Each line adds distinct value with little redundancy, though the density could be improved by separating concerns more explicitly.
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?
Given the absence of output schema and annotations, the description covers request format, auth, strategy, and output type, but leaves gaps: _headers content isn't detailed, sample_id conflicts with required parameters, and error/response behavior is not specified. These gaps make it adequate but not fully complete.
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 0%, so the description is the only source of parameter meaning. It clarifies apiKey placement, strategy values, and the role of _headers; filepath is implicitly explained via 'filepath/sample_id'. This compensates well for the absent 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 clearly states the tool is an 'Unstructured API-compatible endpoint' that 'Returns elements in Unstructured JSON format', effectively identifying its purpose as a document partitioner. It distinguishes itself via the drop-in replacement angle, though it doesn't explicitly contrast with sibling parsing tools like mcpParse.
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 establishes a clear context for use: when Unstructured.io compatibility is needed, and details accepted input modes (file upload or JSON body). No explicit alternatives or exclusions are provided, but the compatibility scenario makes the intended usage evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricingDInspect
pricing(() -> string) [pure]
| Name | Required | Description | Default |
|---|---|---|---|
| _ | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior, but it only says `[pure]` without explaining return content, errors, or side effects. Worse, the signature `() -> string` conflicts with the input schema requiring a `_` parameter, making the behavior confusing.
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 short, but it is an underspecified type signature rather than concise prose. Brevity here sacrifices clarity and fails to earn 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?
With no annotations, no output schema, and a single unexplained required parameter, the description is almost entirely empty. It lacks return semantics, use cases, prerequisites, and any meaningful behavioral detail.
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 0% and the only parameter is an undocumented `_` string. The description adds no meaning and its `() -> string` form actually contradicts the schema by implying no parameters are needed.
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 is essentially the tool name plus a type signature `(() -> string) [pure]`, with no verb or resource explaining what pricing actually does. It does not distinguish from sibling tools like `estimate` or `mcpEstimate`.
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?
There is no guidance on when to use this tool instead of alternatives, no prerequisites, and no mention of exclusions. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
requestHistoryAInspect
List recent parse requests for a user. Returns up to 50 entries. Accepts Firebase ID token (dashboard) OR dp_ API key (programmatic). Dashboard sends Authorization: Bearer with {args: [uid]}. API clients send {args: [apiKey]}. Uses Firestore structured query to filter by user_id server-side and order by timestamp descending. Only reads matching docs (not full scan).
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: returns up to 50 entries, uses Firestore structured query to filter by user_id server-side, orders by timestamp descending, and only reads matching docs. This gives the agent confidence that the operation is a safe, scoped read.
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 concise and front-loaded, with each sentence contributing meaningful details. The technical Firestore mention adds transparency without unnecessary verbosity.
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?
Coverage is strong: purpose, authentication, parameters, and behavioral constraints are all addressed. However, without an output schema, it does not describe the structure of the returned entries, which is a minor gap for an agent needing to parse results.
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 input schema provides only a 'req' object with no property details. The description compensates by specifying the expected shape of args for both auth methods: [uid] for dashboard and [apiKey] for API clients. This is essential information missing from 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?
Clearly states the tool's function with a specific verb ('List') and resource ('recent parse requests for a user'). It distinguishes itself from sibling tools like requestReplay by focusing on listing history rather than replaying.
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?
Provides clear context on authentication methods (dashboard vs. API key) and how to invoke the tool with each. Does not explicitly mention alternatives or when not to use, but the context is clear enough for an agent to select this tool for listing request history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
requestReplayBInspect
Retrieve a stored request/response pair for replay. Requires authentication: Firebase JWT or dp_ API key. The request must belong to the authenticated user (user_id match). Accepts optional outputFormat (blocks/markdown/html/a2ui) to re-render the stored blocks server-side using the ailang_parse pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It covers authentication (Firebase JWT or dp_ API key), user ownership (user_id match), and optional outputFormat server-side rendering. However, it does not explain error behavior, side effects, or what 'replay' actually does (retrieve vs. execute), leaving some ambiguity.
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 three sentences long, with the purpose front-loaded and each sentence adding relevant detail (purpose, auth/ownership, output options). It is efficient and avoids fluff, though slightly dense.
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?
Given the tool has a single parameter, no output schema, and no annotations, the description should provide more context on the expected output or return format. It does not explain what the agent will receive after replay, nor does it resolve the ambiguity around 'req' and the missing outputFormat schema field. The description feels incomplete for reliable invocation.
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 input schema has only a required 'req' object with 0% description coverage, so the description must compensate. The description does not explain what 'req' should contain (e.g., an ID, a full request object), making it ambiguous. It also mentions an optional 'outputFormat' that is not present in the schema, adding confusion instead of clarity.
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 verb 'Retrieve' and the resource 'stored request/response pair for replay', making the core purpose unambiguous. It also mentions optional outputFormat re-rendering, further specifying functionality. However, it does not explicitly differentiate from sibling tools like requestHistory, so it lacks explicit sibling distinction.
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 usage context is implied through 'for replay' and the authentication/ownership requirements, but there is no explicit guidance on when to prefer this tool over alternatives. No exclusions or alternative tool references are provided, so the agent must infer when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revokeApiKeyCInspect
Revoke an API key by keyId. Authenticates via either Firebase JWT or apiKey.
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention that revocation is typically irreversible, whether existing sessions/tokens are immediately invalidated, or any confirmation/rollback. The only behavioral addition is the authentication method, which is insufficient for a destructive operation.
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 extremely concise: two short sentences with no filler and the core action front-loaded. It earns its place by stating the operation and auth context, though the brevity means important details are omitted—an issue handled by other dimensions.
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 destructive admin action, the description lacks critical context: permanence, downstream effects, return value, and error behavior. There is no output schema or annotations to compensate, so the agent cannot anticipate the tool's full impact. The auth method is a useful detail but not nearly enough for complete guidance.
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 schema exposes only an opaque 'req' object with 0% property coverage, so the description must compensate. It adds the key term 'keyId' as the target identifier, but does not explain how to pass it inside 'req' or what other fields might be required. This leaves the parameter structure ambiguous.
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 begins with a specific verb ('Revoke') and names the exact resource ('API key by keyId'), making the operation unambiguous. This clearly differentiates it from sibling tools like listApiKeys, rotateApiKey, and getKeyUsage, 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?
No guidance is given on when to use this tool versus alternatives, or any prerequisites beyond authentication. The auth note ('Authenticates via either Firebase JWT or apiKey') is operational context, but it does not clarify when revocation is appropriate or what happens after revocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotateApiKeyAInspect
Rotate an API key: generate new key, revoke old one, preserve tier + usage.
| Name | Required | Description | Default |
|---|---|---|---|
| req | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly discloses the main side effects: a new key is generated, the old one is revoked, and tier+usage are preserved. While it doesn't mention permissions, reversibility, or return values, the key behavioral traits are explicitly stated, which is more than many tool descriptions provide.
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 a single well-structured sentence, starting with the action, then a colon, followed by three concise behavioral points. No wasted words, front-loaded, and easy to parse.
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?
Despite a clear purpose, the tool has a complex nested object parameter, no output schema, and no annotations. The description fails to explain the required input structure or the response format. Sibling tools like revokeApiKey and getKeyUsage provide some context, but the description alone is insufficient for correct use.
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 schema has one parameter 'req' of type object with no properties or description. Schema description coverage is 0%. The description does not mention 'req' at all, leaving no indication of what fields or structure are expected. This is a critical gap for tool invocation.
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 action 'Rotate an API key' and elaborates with explicit sub-actions: generate new key, revoke old one, preserve tier and usage. This distinguishes it clearly from sibling tools like revokeApiKey, which only revokes, and listApiKeys, which only lists.
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 the use case: when you need a new key without losing tier/usage. However, it does not explicitly mention when not to use it or compare it to alternatives like revokeApiKey. The context is clear but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackAInspect
Anonymous bug report / feature request / docs gap, queued for human review. Default routing: public-feedback inbox (general AILANG). Pass package="vendor/name" (e.g. "sunholo/auth") to route to that package's pkg:vendor/name inbox where its autonomous agent watches. Categories: bug, feature, docs, limitation. Body limit 10KB, snippet limit 4KB. Optional contact field for follow-up; opaque to the server. Set auto_dispatch=true to authorize the package agent to act on your submission immediately (default false — files for human triage; pkg-feedback agent template lands in a separate sprint).
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Full description (≤10 KB) | |
| title | Yes | Short title for the report | |
| contact | No | Optional follow-up address (free-form, opaque to the server) | |
| package | No | Optional vendor/name (e.g. "sunholo/auth") to route to that package's pkg:vendor/name inbox. Empty = general AILANG feedback. | |
| snippet | No | Optional code/error snippet (≤4 KB) | |
| category | Yes | bug | feature | docs | limitation | |
| auto_dispatch | No | Authorize the receiving package's autonomous agent to act on this submission. Default false (files for human triage). Tagged on the Pub/Sub notification as category=auto:<original> for coordinator filtering. | |
| ailang_version | Yes | The reporter's CLI version (free-form, used for triage) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behaviors: queued (not immediate), anonymous, body/snippet limits, contact field opacity, and the effect of auto_dispatch (immediate action vs human triage, separate sprint). This is comprehensive and beyond what any structured fields would provide.
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?
Despite covering many details (routing, limits, categories, auto_dispatch), the description remains dense and efficient. It front-loads the core purpose and routing, then appends essential constraints. Every sentence adds value, with no fluff.
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 8 parameters, no output schema, and no annotations, the description provides comprehensive context: default routing, package routing, limits, category enum, contact field behavior, and auto_dispatch implications. It fully prepares an agent to invoke the tool correctly, even without schema descriptions.
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 covers 100% of parameters, but the description adds meaningful context beyond schema descriptions: the 'package' param's routing to an agent-watching inbox, and auto_dispatch's 'files for human triage' and 'separate sprint' nuance. While the schema already explains most parameters, the description enriches the behavioral understanding of routing and dispatch.
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 purpose: 'Anonymous bug report / feature request / docs gap, queued for human review.' This specifies the verb (submit), the resource (feedback), and the scope (bug/feature/docs), distinguishing it from sibling tools which are mostly API/auth utilities. The purpose is immediately evident and 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?
Provides explicit routing guidance: default to public-feedback inbox, or pass package to route to a package-specific inbox. It explains when to set auto_dispatch=true (to authorize package agent) versus default (human triage), and mentions categories. This gives clear context for when and how to use the tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityDmaintenanceEnables Word document generation from templates using Jinja2 syntax and parsing of DOCX, PDF, and Excel files to extract structured content, metadata, and text.241MIT
- AlicenseAqualityAmaintenanceMCP server for Office documents — create, edit, fill templates, convert, and extract Word/Excel/PowerPoint. LaTeX-style markup, math formulas, PDF export, template loops, and document diff. stdio / SSE / Streamable HTTP with auth and rate limiting.7Apache 2.0
- Flicense-qualityDmaintenanceEnables processing PowerPoint and Word documents, extracting content and structure, combining them, and generating new presentations.1
- Flicense-qualityBmaintenanceEnables deterministic visual and structural analysis of PDF and DOCX documents, extracting measurable evidence such as blur, OCR confidence, and image anomalies for auditable forensic workflows.1