Skip to main content
Glama
docuprox
by docuprox

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    The tools are mostly distinct: process_job and process_agent both submit documents but differ clearly by async vs sync behavior, and job_status vs poll_job are differentiated as one-time check vs blocking wait. Minor ambiguity exists between job_status and poll_job since both relate to job progress, but the descriptions adequately clarify their purposes.

    Naming Consistency3/5

    Names are readable and use snake_case, but the pattern is mixed: process_job, process_agent, and poll_job are verb_noun, while job_status and job_results are noun_noun. This inconsistency is noticeable but not chaotic, and each name still conveys its intended function reasonably well.

    Tool Count5/5

    With 5 tools, the server is well-scoped for its purpose: async submission, status checking, polling, result retrieval, and sync submission. Each tool serves a discrete workflow step without unnecessary redundancy.

    Completeness5/5

    The toolkit covers both asynchronous and synchronous processing flows end-to-end: submit, track, wait, and retrieve results. There are no obvious dead ends for the core document-processing use case, and the missing ability to cancel or delete jobs is not essential to the stated purpose.

  • Average 3.9/5 across 5 of 5 tools scored. Lowest: 3.2/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

    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 disclose the return shape (job_id and status) and enumerates expected status strings, which is useful. However, it does not state whether the call blocks, whether statuses are final, what happens for unknown job IDs, or whether polling is safe.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single front-loaded sentence with no filler. The status enumeration is long but directly relevant, though the formatting suffers from missing spaces after commas, slightly reducing readability.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple one-parameter tool with no output schema, the description provides the return fields and possible status values, making it callable and interpretable. It is mostly complete, but lacks explicit polling semantics and sibling differentiation, which would make it fully robust.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already documents job_id as a UUID returned by process_job, and the description adds no additional meaning or constraints. With 100% schema description coverage, this stays at the baseline of 3.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states a specific verb ('Check'), a resource ('status of an asynchronous DocuProx processing job'), and the returned fields. It is unmistakably a status-reading tool, though it does not differentiate itself from the sibling tools job_results and poll_job, which may overlap in purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 job_results or poll_job, nor does it explain whether it should be called repeatedly or after certain job states. The asynchronous context is implied but no explicit usage conditions or exclusions are provided.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden. It transparently discloses that the tool blocks, polls repeatedly, and stops at terminal statuses or timeout. However, it does not explain what happens on timeout (error vs. partial result) or what the return value is, which is important for an agent invoking a blocking operation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two focused sentences with no redundancy. The core behavior and terminal statuses are front-loaded, followed by a succinct statement of purpose. Every sentence earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The schema is simple and fully described, but there is no output schema and no annotations. The description does not state what the tool returns or how timeout is signaled, leaving a meaningful gap for an agent that needs to act on the outcome. It should also briefly contrast with job_status for complete contextual guidance.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the schema already documents job_id, timeout_ms, and interval_ms with defaults. The description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a specific verb ('poll'), a resource ('asynchronous DocuProx job'), and precisely characterizes the behavior: waiting until a terminal status (COMPLETED, FAILED, ERROR) or timeout. This clearly distinguishes poll_job from a single-status check like job_status.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description says it is 'useful to block until a job is done without manual retries,' which gives clear usage context. It does not explicitly name alternatives or state when not to use it, but the purpose is clear enough for an agent to select it appropriately.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations exist, so the description carries the full behavioral burden. It discloses that the tool reads from disk, uploads as multipart/form-data, is asynchronous, and returns a job_id, which are the key runtime behaviors. It could also mention failure conditions or file-size limits, but the core behavioral profile is transparent.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three sentences with no filler: purpose, transport mechanism, and return/tracking behavior. The most important information is front-loaded and every sentence earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For an async upload/processing tool with no output schema, the description covers the input, the asynchronous behavior, and the returned handle, while pointing to the correct tracking tools. It does not describe how parameters interact or when process_agent should be used instead, but the rich 100% schema coverage compensates for most missing parameter context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the input schema already documents all six parameters clearly (e.g., dicurrent_type required in agentic mode, tedplate_id UUID). The tool descriptions adds little parameter-level meaning beyond the note that file_path refers to a file on disk, so baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific verb and resource — 'Submit a document ... for asynchronous processing via DocuProx' — so the agent knows what action is being performed. It also names the supported input types and points to job tracking tools, but it does not explicitly differentiate from the sibling process_agent, leaving some ambiguity among submission entry points.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It provides clear context: use this tool to upload a file from disk and start asynchronous processing, then track it with job_status or poll_job. There are no explicit exclusions or 'when not to use' conditions, and no guidance on when process_agent would be the better choice, but the intended scenario is otherwise clear.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden and does reasonably well: it states that this is a retrieval operation for results of a completed job. It does not discuss failure behavior or whether results are retained, but for a simple fetch operation the core behavior is transparent enough.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    One sentence with no filler. The key action, resource, prerequisite, and optional format are all front-loaded efficiently.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a low-complexity read tool with fully documented parameters, the description covers the essential prerequisites and result format. It lacks detail about the return payload, but since there is no output schema and the tool name itself communicates 'results', this is a minor gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the input schema already documents job_id and result_format. The description adds minor value by restating the format options and the optionality in natural language, but it does not introduce meaning beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Fetch') with a clear resource ('extracted results of a completed asynchronous DocuProx processing job'). This distinguishes it from siblings like job_status, which would report job state, and process_job, which would start a job.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It clearly conveys that the tool is for completed jobs and requires a job_id, giving an agent the core context for when to call it. It does not explicitly name alternatives or state when not to use it, but the 'completed' prerequisite provides solid usage context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    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, and it does so well. It explains the execution flow: reads the file from disk, uploads as multipart/form-data, waits for the result, and returns extracted data directly. It also discloses the economic side effect: credits are deducted and refunded on failure. This gives the agent a clear model of what happens when the tool is invoked.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three sentences, each earning its place: the first states the core operation, the second summarizes the execution mechanics, and the third clarifies the return model and billing behavior. The most important differentiator (synchronous, no polling) is front-loaded, making the tool easy to classify quickly.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with 5 parameters, no annotations, and no output schema, the description provides essential context: synchronous execution, file read behavior, upload mechanism, direct return, and credit handling. It could additionally mention failure modes, file size limits, or authentication requirements, but the core behavioral and selection information an agent needs is present.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides 100% parameter description coverage, so the baseline is 3. The description itself does not add much per-parameter meaning beyond what the schema states; it mainly adds context about the overall synchronous behavior. It does clarify that prompt_json acts as the extraction schema, which slightly reinforces the schema, but the schema already communicates this.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a specific verb ('Submit'), a specific resource ('a document for SYNCHRONOUS agentic extraction via DocuProx'), and clearly distinguishes itself from sibling job-polling tools by saying 'Returns the extracted data directly (no job polling needed)'. An agent can immediately tell this is the synchronous, direct-result path rather than process_job, job_status, job_results, or poll_job.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description gives clear context for when to use this tool: for synchronous extraction where the result is returned directly, with no polling. It implicitly contrasts with the async job-based siblings by explicitly saying 'no job polling needed', which helps an agent choose between this and process_job/poll_job. However, it does not explicitly name the alternative for async use cases or state exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

docuprox-mcp MCP server

Copy to your README.md:

Score Badge

docuprox-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/docuprox/docuprox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server