Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation3/5

    The tools have overlapping purposes, as all three extract data from URLs, with extract_url described as a general-purpose tool that can handle what the other two do. However, the descriptions clearly differentiate their optimised use cases: extract_article for editorial content, extract_metadata for meta tags, and extract_url for custom extractions, which helps reduce confusion but still leaves some ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with 'extract_' as the prefix, using snake_case uniformly. This predictability makes it easy for agents to understand the naming convention and relate the tools to their shared purpose of extraction.

    Tool Count4/5

    With 3 tools, the count is reasonable for a focused extraction server, but it feels slightly thin as it only covers read-only extraction operations without broader management or configuration tools. The tools are well-scoped within their domain, but the set could benefit from additional complementary functions.

    Completeness3/5

    The server covers core extraction tasks for URLs, articles, and metadata, but there are notable gaps such as no update, delete, or management operations (e.g., for API keys or usage tracking). As a read-only extraction service, it lacks lifecycle coverage, which limits agent workflows to just data retrieval without any control or monitoring capabilities.

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

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

  • This repository is archived. Archived repositories automatically receive an F maintenance tier.

  • 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.

  • This repository includes a glama.json configuration file.

  • 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

  • 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 of behavioral disclosure. It effectively describes key traits: it's read-only ('makes no changes to any external system'), handles specific content types ('paywalled and JavaScript-rendered articles'), and includes operational details like rate limits ('Free tier: 100 requests/month') and error conditions ('Returns an error if rate limit or API key is invalid'). However, it lacks details on response format beyond 'structured JSON' and potential latency or retry behavior.

    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 appropriately sized and front-loaded, starting with the core purpose and immediately following with usage guidelines and behavioral details. Every sentence adds value, such as distinguishing from siblings, stating read-only nature, and specifying requirements and limits, with no redundant or unnecessary 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?

    Given the tool's complexity (handles paywalled/JS-rendered content, has API key and rate limit requirements) and lack of annotations and output schema, the description is largely complete. It covers purpose, usage, behavioral traits, and operational constraints. However, it could be more complete by detailing the exact structure of the returned JSON or error formats, slightly reducing the score.

    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 has 100% description coverage, with the 'url' parameter fully documented in the schema. The description does not add any additional meaning or context beyond what the schema provides for the parameter. According to the rules, when schema_description_coverage is high (>80%), the baseline score is 3, which applies here as the description compensates adequately but doesn't enhance parameter understanding.

    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 with a specific verb ('Extract') and resource ('main article content from a news article or blog post'), and distinguishes it from sibling tools by specifying 'use extract_url for product pages, listings, or generic data.' This provides explicit differentiation, making the purpose highly clear.

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

    Usage Guidelines5/5

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

    The description provides explicit usage guidelines, including when to use this tool ('Optimised for editorial content') and when not to ('use extract_url for product pages, listings, or generic data'). It also mentions prerequisites ('Requires HAUNT_API_KEY environment variable'), offering comprehensive guidance for proper tool selection.

    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 full burden and does an excellent job disclosing behavioral traits: explicitly states 'Read-only — makes no changes to any external system', discloses authentication requirement ('Requires HAUNT_API_KEY environment variable'), and provides rate limit information ('Free tier: 100 requests/month'). It also mentions error conditions for rate limits and invalid API keys.

    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 perfectly structured and concise: first sentence states purpose, second describes output format, third lists use cases, fourth provides sibling differentiation, and final sentences cover behavioral constraints. Every sentence earns its place with zero waste.

    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 single-parameter tool with no annotations and no output schema, the description provides excellent context: clear purpose, usage guidelines, behavioral transparency, and output format description. The only minor gap is that without an output schema, the description could provide more detail about the structured JSON format returned.

    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 the single 'url' parameter adequately. The description doesn't add meaningful parameter semantics beyond what the schema provides (e.g., no format examples, no constraints on URL types). Baseline 3 is appropriate when schema does the heavy lifting.

    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 specific action ('Pull metadata') and resource ('from any URL'), listing exact metadata types extracted (title, description, Open Graph tags, Twitter cards, canonical URL). It distinguishes from siblings by explicitly mentioning extract_url and extract_article as alternatives for different content types.

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

    Usage Guidelines5/5

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

    Explicit guidance is provided: use this tool for metadata extraction, use extract_url for page body content, and use extract_article for full articles. Clear when-to-use and when-not-to-use scenarios are defined with named alternatives.

    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 does so comprehensively. It explicitly states 'Read-only — makes no changes to any external system,' discloses authentication requirements ('Requires HAUNT_API_KEY environment variable'), and provides rate limit information ('Free tier: 100 requests/month. Returns an error if rate limit or API key is invalid'). It also describes technical capabilities ('Handles JavaScript-rendered pages and Cloudflare-protected sites automatically') and output format ('Returns clean JSON with exactly the fields you asked for — no HTML parsing needed').

    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 efficiently structured with every sentence adding value: purpose statement, output format, technical capabilities, sibling tool differentiation, behavioral disclosures, and authentication/rate limit information. It's front-loaded with the core functionality and appropriately sized for the tool's complexity.

    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 tool with no annotations and no output schema, the description provides comprehensive context. It covers purpose, usage guidelines, behavioral traits (read-only nature, authentication requirements, rate limits, technical capabilities), and output format. The combination of 100% schema coverage and rich description text makes this complete for agent understanding.

    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 fully documents both parameters. The description adds some context about the prompt parameter ('describing what you want') and implies the URL parameter supports complex sites, but doesn't provide additional semantic meaning beyond what's in the schema descriptions. This meets the baseline expectation when schema coverage is complete.

    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 specific action ('extract structured data'), resource ('from any web page'), and mechanism ('by providing a URL and describing what you want'). It explicitly distinguishes from sibling tools by naming extract_article and extract_metadata as 'optimised shortcuts' for specific use cases, establishing this as the general-purpose extraction tool.

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

    Usage Guidelines5/5

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

    The description provides explicit guidance on when to use this tool vs alternatives: 'This is the general-purpose extraction tool. Use extract_article for full article content or extract_metadata for page meta tags — they are optimised shortcuts.' This gives clear context for tool selection and explicitly names the alternative tools.

    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

haunt-mcp-server-old MCP server

Copy to your README.md:

Score Badge

haunt-mcp-server-old 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/Darko893/haunt-mcp-server-old'

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