Skip to main content
Glama
vor-bot

xyz.crossgrain/epitaxy

by vor-bot

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a clear, distinct concern: shortages, recalls, federal contracts, cross-source supplier exposure, and data freshness. There is no meaningful overlap in purpose, and get_supplier_exposure is explicitly a join/view rather than another list endpoint.

    Naming Consistency5/5

    Tool names follow a consistent list_/get_ + noun pattern in snake_case. Collections use list_, single objects and metadata use get_, making the API predictable and easy to navigate.

    Tool Count5/5

    With 5 tools, the server is tightly scoped to pharmaceutical supply chain risk. Each tool supports a distinct part of the workflow, and none feel redundant or missing enough to make the set feel thin.

    Completeness4/5

    The core workflow of finding shortages, recalls, contracts, and supplier exposure is covered well. A minor gap is the lack of a company/detail lookup to discover valid company_id values, and no individual record retrieval, but these are workarounds via filters rather than dead ends.

  • Average 3.3/5 across 5 of 5 tools scored. Lowest: 2.6/5.

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

    • No community issues in the last 6 months
    • No commit activity data available
    • 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

  • Behavior2/5

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

    There are no annotations, so the description carries the full burden of behavioral disclosure. It states the subject matter and available filters but does not mention that the operation is read-only, what the response looks like, or any limitations or side effects. This is a minimal disclosure for a tool with no annotation support.

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

    Conciseness3/5

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

    The description is very short, front-loading the core subject and then listing filters. However, the filter clause essentially restates schema property names, so the wording is concise but not as information-dense as its length could allow. It is structured acceptably but under-delivers.

    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?

    With no output schema and no annotations, the description leaves an agent under-informed. It does not describe the shape of returned contracts, how filters interact, default limits, or data freshness. For a list tool with three optional filters, this is missing key context needed to call it correctly.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must explain the parameters. It names all three (agency, company_id, limit) and labels them as 'Filtre', which adds the role of filters, but it provides no meaning, format, or examples for any of them. This adds little beyond the schema property names.

    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 identifies the resource: 'Federalne kontrakty na lieky' (federal drug contracts) and pins it to PSC 6505, which clearly distinguishes it from sibling tools focused on shortages and recalls. It lacks an explicit verb like 'list' in the description itself, though the tool name provides it, so it falls just short of the 5-bar.

    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?

    The description gives no guidance on when to use this tool versus list_drug_shortages, list_drug_recalls, or other siblings. It only lists filters and offers no exclusions, alternatives, or contextual triggers, so the agent must infer applicability from the resource name alone.

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

  • Behavior2/5

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

    With no annotations available, the description carries the full burden of behavioral disclosure, but it only states the subject matter and filter names. It does not say the operation is read-only, what output is returned, whether filtering is exact/partial, or how limits apply.

    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 very short and puts the topic first, with the filter list following after. It uses no filler, though the filter section could have been more informative without losing conciseness.

    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?

    For a tool with no annotations, no output schema, and 0% parameter documentation, this is under-specified: the action must be inferred from the tool name, return values are absent, and parameter meanings are unclear. It is enough to know the topic but not enough to invoke the tool confidently.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description needed to explain classification, company_id, and limit. It merely repeats their names under 'Filtre' and adds no formats, allowed values, defaults, or semantics beyond the schema itself.

    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 identifies the domain (drug recalls) and the data source (FDA), and the mention of filters indicates a queryable listing operation. It can be told apart from sibling tools like list_drug_shortages by the recall focus, but it never uses an explicit action verb like 'list' or 'return' and is written in Slovak.

    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?

    The filter list provides only an implicit hint of how to call the tool; it does not state when to prefer this tool over alternatives such as list_drug_shortages or get_supplier_exposure. There are no usage exclusions, prerequisites, or scenarios provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the behavioral burden, but it only states that the tool returns FDA drug shortages and supports filters. It does not disclose return format, ordering, pagination, data freshness, or any read-only guarantees.

    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 short, front-loaded sentence with no filler words. It is easy to scan, though the brevity sacrifices explanatory depth.

    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?

    For a tool with no annotations, no output schema, and no parameter descriptions, the description is too thin. An agent would not know valid status values, limit constraints, company ID semantics, or what the response looks like, making reliable autonomous invocation uncertain.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description only repeats the parameter names under 'Filtre' without explaining allowed values, formats, or limits. The parameter names are somewhat self-explanatory, but the description does not meaningfully compensate for the missing schema details.

    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 identifies the resource as 'drug shortages' and the authoritative source as 'FDA', which distinguishes it from sibling tools like list_drug_recalls and list_federal_drug_contracts. It lacks an explicit verb, but the tool name and filter list clearly imply a listing operation.

    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?

    The description lists filters but provides no guidance on when to use this tool versus the sibling tools, nor any exclusions or alternative conditions. An agent gets no help deciding between drug shortages, drug recalls, or federal contracts.

    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, the description carries the full burden and does so thoroughly: it discloses confidence values, match_method, the never-exact cross-source rule, default output scope (exact/probable, max 20 rows, no evidence), and the inference boundary (supplier-level, not contract-level). This is strong behavioral disclosure.

    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 dense but front-loaded with the core purpose; every sentence covers a distinct semantic point such as claim, confidence, cross-source limitation, and default behavior. It is slightly rambling and uses capitalization for emphasis, but it earns its length.

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

    Completeness3/5

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

    For a tool with 4 optional parameters, no output schema, and no annotations, the description provides strong domain semantics but still lacks explicit parameter-to-field mapping and a clear statement of the output row format or how a key changes evidence. An agent could call it but might guess wrong about award_id/company_id and min_confidence.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the text must explain the parameters. It hints at 'bez kluca' (without a key) and mentions confidence levels and the 20-row limit, but never maps award_id/company_id to 'key', never defines limit, and leaves min_confidence's 'probable'/'weak' enum unexplained relative to output confidence exact/probable/weak. Most parameter semantics are still guesswork.

    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 clear verb and resource: it links contracts (kontraktu) to FDA shortages/recalls (vypadkom alebo stiahnutim). It also states the exact claim and non-claim, which distinguishes this from sibling list tools such as list_drug_shortages and list_federal_drug_contracts. This goes well beyond a tautology and gives an agent a precise mental model.

    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 this is appropriate: cross-referencing government contracts with FDA shortage/recall data. It also includes an explicit 'NETVRDI' caveat warning against over-interpreting results as drug-level attribution. It does not name alternatives or provide when-not scenarios beyond that caveat, so it does not reach a 5.

    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?

    There are no annotations, so the description carries the full burden. It transparently discloses the three key outputs: last data activation time, number of live segments, and status of the last run. The wording implies a read-only query, which is reasonable for a zero-parameter freshness check.

    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 short sentences, with the return values first and the usage guidance second. Every word contributes meaning, and no redundant or filler content is present.

    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 zero-parameter tool with no output schema, the description fully covers what the agent needs to know to call and interpret the result. No missing preconditions, side effects, or return-value details are likely to block correct usage.

    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 and 100% schema coverage, so the description does not need to explain parameter meanings. Per the baseline for zero-parameter tools, a 4 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 uses a specific verb 'Vrati' (returns) and clearly identifies the resource: data freshness information including last activation time, live segment count, and last run status. It is immediately distinguishable from the drug-list sibling tools because it addresses freshness rather than content lists.

    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 explicit usage guidance: call this tool first when wanting to know whether the data is fresh. It does not name exclusions or alternatives, but no sibling tool appears to serve the same freshness-check purpose, so the guidance 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

xyz.crossgrain/epitaxy MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

xyz.crossgrain/epitaxy MCP server – quality and maintenance score on Glama

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/vor-bot/epitaxy-mcp'

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