Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: analyzing images, deep research, fetching web pages, OCR, and web search. Even the two image-related tools (analyze_image and ocr_image) are differentiated by their function (understanding vs. text extraction).

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using underscores (e.g., analyze_image, deep_research, fetch_page, ocr_image, web_search). No mixing of conventions.

    Tool Count5/5

    With 5 tools, the server is well-scoped for its purpose as a utility toolkit covering image analysis, OCR, web search, web fetching, and deep research. The count is neither too thin nor excessive.

    Completeness4/5

    The tool set covers core image and web tasks comprehensively, though it might benefit from a summarization or comparison tool. No major gaps for its stated domain.

  • Average 4.5/5 across 5 of 5 tools scored.

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

    • No community issues in the last 6 months
    • 4 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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?

    Discloses the search engine (DuckDuckGo), number of results via max_results, and output format. Lacks details on rate limits, filtering, or error handling, which is needed without annotations.

    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 concise sentences, front-loaded with the core action. No redundant information.

    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?

    Covers tool purpose, input, output format, and integration with fetch_page. Lacks mention of error conditions or empty result handling, but output schema may fill that gap.

    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?

    Explains max_results limits output and query is the search term. Since schema has 0% description coverage, the description adds necessary context 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 clearly states the tool searches the web and returns ranked results with title, URL, and snippet. It distinguishes from sibling tools by mentioning follow-up with fetch_page for full content.

    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?

    Advises using for 'live, up-to-date information' and suggests fetch_page for further reading. However, it does not explicitly exclude other use cases or compare with deep_research.

    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 discloses input formats (file path, URL, data URI, base64) and backend behavior (local Tesseract or vision provider fallback). This adds behavioral context 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.

    Conciseness5/5

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

    Three concise sentences with no redundancy. Purpose is front-loaded, and every sentence adds necessary information.

    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?

    Given 2 parameters, no annotations, and existence of an output schema, the description covers input, language, and backend behavior adequately. Output format not required due to output schema.

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

    Parameters5/5

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

    Schema coverage is 0%, but the description fully explains both parameters: image accepts multiple formats, and lang is a Tesseract code with examples, adding crucial meaning beyond type strings.

    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?

    Description clearly states 'Extract readable text from an image (OCR)', specifying the verb, resource, and technique. It distinguishes from siblings like analyze_image and web_search.

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

    Usage Guidelines3/5

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

    Usage is implied but not explicitly stated. No guidance on when to use vs. alternatives like analyze_image, nor 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 provided, the description carries the full burden. It discloses output capping ('max_chars'), no API key requirement, and content processing (strips navigation/ads). However, it does not mention rate limits or error handling, which are acceptable omissions for a simple fetch tool.

    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 three sentences long, front-loaded with the main action and output. Every sentence adds value: purpose, usage, and behavioral details. No unnecessary words.

    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?

    Given the tool's simplicity and the presence of an output schema (so return values are covered), the description adequately covers what the tool does, how it processes content, and its limitations (max_chars). It also mentions authentication (no API key), which is useful context.

    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 input schema has 0% description coverage, so the description must compensate. It explains the max_chars parameter ('Output is capped to max_chars characters') and gives a default. The url parameter is implied by the tool's purpose but not explicitly described, which is acceptable given its obvious nature.

    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 action ('Fetch'), resource ('web page'), and output format ('clean, readable Markdown'). It also mentions stripping navigation/ads and extracting main article text, distinguishing it from siblings like web_search which returns search results.

    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 a clear when-to-use scenario: 'Use this to read the full content of a URL (e.g. a search result).' It does not explicitly mention when not to use or compare with siblings, but the use case is well-defined and appropriate for 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?

    No annotations provided, so description carries full burden. It discloses input flexibility, optional question, requirement for a vision provider, and fallback to metadata+OCR. Does not mention privacy, rate limits, or response structure specifics. Output schema exists so structural detail is not required, but the fallback behavior is well-explained.

    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?

    Six sentences that front-load the core purpose. Every sentence adds distinct value: purpose, use case, input formats, optional parameter, return type, and fallback behavior. No extraneous content.

    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?

    Given zero schema coverage, no annotations, and two parameters (one required), the description covers all essential aspects: input options, optional focus question, dependency on vision provider, fallback behavior. Siblings in context allow differentiation. It is complete for an AI to decide when to invoke.

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

    Parameters5/5

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

    Input schema has no descriptions (0% coverage). The description adds critical semantics: image parameter accepts multiple formats (local path, URL, data URI, base64). Question parameter is explained with concrete examples (e.g., 'What error is shown?'). This fully compensates for schema gaps.

    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 understands an image and returns a detailed text description. It lists accepted formats (local path, URL, data URI, base64) and optional question parameter. This differentiates it from siblings like ocr_image (simple OCR) and web_search (text-based).

    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?

    Explicitly states when to use: when you need to 'see' an image because the model cannot read images directly. Gives examples for the question parameter. Lacks explicit exclusions or direct comparison to ocr_image, but context from sibling tools provides implicit discrimination.

    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 bears full responsibility. It discloses the pipeline, model used (DeepSeek-V4), tunables with defaults, requirements (DEEPSEEK_API_KEY), and that search/fetch are keyless. It does not mention failure modes or rate limits, but the cost/speed tradeoff is noted.

    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 (about 80 words) and well-structured: purpose sentence, pipeline overview, parameter explanation, and requirements. No wasted words; each sentence adds distinct value.

    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?

    Given the tool's complexity, 0% schema coverage, and existence of an output schema, the description fully covers what the tool does, how it works, its parameters, prerequisites, and output format. No critical information is missing.

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

    Parameters5/5

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

    The input schema has 0% description coverage, but the description explains each parameter's meaning and default behavior: breadth (sub-queries per round), depth (rounds), max_sources (pages read). The query parameter is self-explanatory. This fully compensates for the schema gap.

    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: 'Run a multi-step deep-research investigation and return a cited report.' It specifies the verb (run investigation), resource (deep research), and output (cited report). It distinguishes itself from sibling tools like web_search by implying a multi-step, citation-generating process.

    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 implies when to use this tool (when a thorough, cited investigation is needed) vs simpler tools like web_search. However, it does not explicitly state when not to use it or list alternatives, though the pipeline details make the differentiation clear.

    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

dstools MCP server

Copy to your README.md:

Score Badge

dstools 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/lijiatuk/dstools'

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