Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: distill_url and distill_file differ by input source (remote vs local), while get_distill_status and list_distillations handle task monitoring and history respectively. No overlapping responsibilities.

    Naming Consistency5/5

    All tools follow a consistent verb_noun snake_case pattern: distill_url, distill_file, get_distill_status, list_distillations. The verbs appropriately reflect the action, and naming is uniform.

    Tool Count5/5

    4 tools is a well-scoped set for a distillation service. It covers initiation (URL/file), status checking, and listing results without excess or deficiency.

    Completeness4/5

    Core distillation workflow is covered: create via URL/file, check async status, and list completed tasks. Minor gaps like lack of delete/cancel or retrieval of a specific completed task's content via a dedicated getter, but agents can work around using get_distill_status.

  • Average 4.3/5 across 4 of 4 tools scored.

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

    • No community issues in the last 6 months
    • 11 commits in the last 12 weeks
    • Last stable release on
    • 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 disclosure burden. It does specify outputs (HTML saved to ~/Documents/蒸馏文稿/ and Obsidian note to ~/Documents/obsidian/{subdir}/) and calls out that audio/video returns guidance. But it does not mention permissions, side effects on the source file, or how async_mode changes behavior or return values.

    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?

    The description is well-structured with a clear opening statement, bulleted supported formats, and a separate output section. It is concise, scannable, and every sentence adds relevant information without redundancy.

    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 file-processing tool with no output schema, the description covers supported inputs, output destinations, and a special case (media returns guidance). It lacks explicit return-value details for the normal path and does not describe the async workflow, though the schema provides some of that for async_mode. Overall, it is reasonably complete for an agent to invoke correctly.

    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 baseline is 3. The description adds slight value by showing obsidian_subdir maps to a path placeholder ({subdir}), but file_path and async_mode are not enriched beyond their schema descriptions.

    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 opens with a specific verb+resource: 'Distill content from a local file into HTML article + Obsidian note.' It clearly distinguishes from sibling tools like distill_url by emphasizing 'local file' and enumerating supported file types.

    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 scope is clearly implied through 'local file' and the supported file extension list, making it clear this is for local inputs rather than URLs. However, it never explicitly names alternatives (e.g., 'use distill_url for web pages') or states when not to use this tool.

    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, the description carries the full burden of behavioral disclosure. It reveals that video/podcast URLs 'returns guidance' (not a full distillation), specifies the output directories, and explains the async task behavior. This goes beyond the basic action and helps set expectations, though it could mention error handling or permissions.

    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?

    The description is well-structured with bullet points, concise and front-loaded. The first line states the core purpose, followed by a clean 'Supports' list and 'Output' list, closing with an async tip. Every sentence adds value with no filler.

    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?

    The description covers the essential aspects: supported inputs, outputs, and async behavior. Given the tool's moderate complexity and lack of an output schema, it effectively communicates what the agent needs to know. A minor gap is the lack of detail on the response format for the normal (non-async) case, but this is not critical.

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

    Parameters4/5

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

    Schema coverage is 100%, but the description adds meaning beyond the schema: it explains when to set async_mode=true (large documents), gives an example for obsidian_subdir ('飞书蒸馏'), and elaborates on the url parameter by listing supported types. This enriches the agent's understanding of how to use each parameter.

    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 clearly states the tool's purpose: 'Distill content from a URL into HTML article + Obsidian note.' The verb 'distill' is specific, and the resource is the URL. It distinguishes from sibling tools like distill_file (likely for local files) by emphasizing URL-based input, and from get_distill_status/list_distillations by focusing on the distillation action.

    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 provides clear usage context by enumerating supported URL types (Feishu, webpages, PDFs, video/podcast) and explains when to use async_mode ('For large documents, set async_mode=true and poll with get_distill_status'). However, it does not explicitly state when not to use this tool or mention alternatives like distill_file, leaving some implicit inference to the agent.

    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 are present, so the description carries the full burden. It discloses that the tool returns status, progress, and result (if completed), and indicates the terminal states. This provides useful context about the async nature and what to expect, though it doesn't mention any 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.

    Conciseness5/5

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

    The description is concise, front-loaded, and every sentence earns its place. It states the purpose, return contents, and polling guidance in just two short sentences without redundancy.

    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?

    The tool is simple with one parameter, no annotations, and no output schema. The description covers the essential behavioral aspects: what it returns and when to poll. It's complete enough for a status-check tool, though it could optionally mention the exact status values or error behavior, but these are not critical.

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

    Parameters4/5

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

    The schema has 100% coverage for the single parameter, and the parameter description in the schema adds meaning: 'Task ID from distill_url or distill_file.' This clarifies the expected input. The main description complements this by explaining the purpose of the status check.

    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 clearly states the tool's function: 'Check the status of an async distillation task.' This is a specific verb+resource combination that distinguishes it from siblings like distill_url (start a task) or list_distillations (list tasks).

    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 provides clear usage context: 'Poll this periodically until status is completed or failed.' This implies when to use the tool (after starting an async task) and how to use it (repeatedly). It doesn't explicitly address alternatives, but the sibling tools are distinct enough that no exclusion is needed.

    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 are provided, so the description carries the full burden. It discloses that the tool returns only metadata for completed tasks and points to get_distill_status for full content, which is useful. It doesn't mention pagination or ordering, but the output schema likely covers return details.

    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?

    The description is two concise sentences, front-loaded with the primary purpose followed by a helpful pointer to a sibling tool. Every word earns its place.

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

    Completeness5/5

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

    For a simple list tool with no parameters and an output schema, the description covers essential behavior (listing completed tasks with metadata), mentions a complement tool for full content, and is complete relative to its complexity.

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

    Parameters4/5

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

    The tool has zero parameters, so the baseline is 4. The description confirms the scope is 'all completed' distillations, consistent with the empty schema, and adds no unnecessary parameter details.

    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 clearly states the tool lists all completed distillations, using a specific verb and resource. It distinguishes itself from siblings like distill_url/distill_file (creation tools) and get_distill_status (which retrieves a single task's 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 explicitly directs users to get_distill_status for full content, making the tool's scope clear relative to that sibling. It doesn't explicitly say when not to use it for the other siblings, but the context is sufficient.

    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

doc-distillation-mcp MCP server

Copy to your README.md:

Score Badge

doc-distillation-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/shawnwei512/doc-distillation-mcp'

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