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

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: template discovery, integration discovery, async job status, formatting, tailoring, anonymizing, pushing to ATS, and bulk formatting. No two tools overlap in functionality, and descriptions reinforce their unique roles.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun snake_case pattern (list_templates, list_integrations, get_job_status, format_cv, tailor_cv, anonymize_cv, push_to_ats). The only minor deviation is bulk_format, which reads as an adjective+verb but is still clearly in line with the overall style.

    Tool Count5/5

    Eight tools is well within the ideal range for a focused MCP server. Each tool addresses a distinct aspect of CV processing and ATS integration without unnecessary bloat or duplication.

    Completeness4/5

    The tool surface covers the main workflow: discover templates and integrations, format/tailor/anonymize CVs, bulk process, push to ATS, and poll job status. A minor gap is lack of explicit template detail/download, but download URLs from job status mitigate this, so core operations are well covered.

  • Average 3.8/5 across 8 of 8 tools scored.

    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

  • Behavior2/5

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

    With no annotations provided, the description must fully disclose behavior. It mentions stripping PII and generating a 'structured audit trail' with 'compliance-friendly evidence packs,' adding useful context. Yet it does not explain the return value, side effects, or input format prerequisites, leaving critical behavioral gaps.

    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 front-loaded with the action and lists relevant details. However, the tail 'matching FormaCV's anonymization story on every plan, including compliance-friendly evidence packs' is marketing language that adds no operational value for an AI agent, reducing 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?

    Given no annotations, no output schema, and a nested input object, the description is incomplete. It fails to explain how to pass the CV (url/base64), what the tool returns, or how audit_log affects output. The sibling tools provide some context, but the description alone is insufficient for correct invocation.

    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?

    The schema has no field descriptions (0% coverage), so the description must compensate. It lists exact field names that match the fields_to_strip enum, and 'audit trail' relates to audit_log. However, the required cv parameter (object with source and data) is completely unaddressed, leaving a major usability 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 opens with 'Strip personally identifying details (name, email, phone, photo, address, company names)' which clearly states the action and resource. It further specifies the purpose 'for blind client submissions,' distinguishing it from sibling tools like format_cv or tailor_cv.

    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?

    'For blind client submissions' provides a clear context for when to use this tool, implying a specific use case. However, it does not explicitly name alternatives or exclusions, stopping short of full guidance for tool selection among siblings.

    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?

    Discloses behavioral traits such as ATS-safe typography, compliant variants for regulated clients, and sub-60-second completion. However, with no annotations, it lacks broader details like authentication, error behavior, or side effects on the original CV.

    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?

    Two sentences with a clear initial verb ('Turn'), front-loaded with the core purpose. The phrase 'Mirrors FormaCV’s promise' adds some marketing flavor but does not significantly bloat the description.

    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?

    Covers purpose and some behavioral guarantees, but with no output schema, it should clarify the return format or whether the operation is asynchronous. The description implies the CV lands on the ATS record but does not explain the direct return to the caller.

    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 must compensate. It mentions 'template' but does not explain template_id, cv source semantics, or options like ats_safe and language. The schema alone provides minimal guidance through names/types.

    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: turning a CV into a client-ready PDF/DOCX in a branded template. It distinguishes from siblings like tailor_cv (content tailoring) and anonymize_cv by focusing on final formatted output.

    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?

    Provides context for where it can be used (inline in ATS or via MCP) but does not explicitly contrast with sibling tools like tailor_cv or bulk_format. The usage is implied by the tool's purpose rather than explicitly stated.

    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 provided, the description carries the full burden of behavioral disclosure. It adds some context about included packs (e.g., bank-ready variants) but fails to mention what the tool returns, whether it is a read-only operation, or any constraints or side effects. This leaves significant gaps.

    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 sentence that efficiently conveys purpose and scope. The reference to 'FormaCV’s integration pages' adds extra context but is somewhat tangential and may not be essential for tool invocation, keeping it slightly off a perfect score.

    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 listing tool with no output schema and no annotations, the description covers the main contextual aspects: what is discovered, filter dimensions, and categories. It does not explicitly state the return value, but the tool name 'list_templates' implies a list, so completeness is adequate though not exhaustive.

    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 0%, but the description meaningfully explains the filter parameters: it interprets 'user', 'branch', and 'client' as scoping dimensions, and maps 'category' to the enum values (standard, compliance, anonymized). This adds semantic value beyond the raw 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 identifies the tool's purpose: discovering agency templates with specific scoping (client, branch, user) and categories (standard, compliance, anonymized). This distinguishes it from sibling tools like list_integrations and format_cv, which target different resources.

    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?

    The description implies usage for discovering templates when you need to filter by client, branch, or user, and category. However, it does not explicitly state when to use this tool over alternatives or when not to use it, so guidance is only implicit.

    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 provided, the description carries the full burden. It discloses what the tool returns (percentage and URLs) and that it only finishes 'when processing wraps', but it does not mention error handling, authentication, rate limits, or explicitly confirm that polling is non-destructive. It offers some useful context but lacks deeper behavioral 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 a single, tightly worded sentence that front-loads the main verb and resource. It packs in the triggering context, the return values, and the completion condition without any fluff. Every phrase 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?

    Given the simplicity of the tool (one parameter, no output schema), the description covers the essential context: what the tool polls, what it returns, and when it finishes. It lacks explicit notes on error cases or retry behavior, but for a straightforward status-polling tool, this level of detail is sufficient.

    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 schema provides only the parameter name 'job_id' with type string and minLength. The description does not explicitly explain this parameter, but by stating that it polls jobs from specific operations, it gives meaningful context about what job_id refers to. Since there is only one parameter and its name is self-explanatory, the description adds some value beyond the schema, but it does not fully compensate for the 0% schema description coverage.

    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 ('Poll') and clearly identifies the resource ('asynchronous MCP jobs') along with the context (triggered by formatting, tailoring, anonymization, or bulk batches). It also states what the tool returns (completion percentage and download URLs), which distinguishes it from sibling tools that trigger jobs.

    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?

    The description implies when to use the tool—after triggering jobs from operations like formatting or bulk batches—but it does not explicitly state 'use when you have a job_id from a prior call' or name alternatives. The usage context is clear but not directly stated, so it falls under 'implied usage'.

    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 must carry the behavioral transparency burden. It does well by stating that the tool returns a tailored CV while preserving the template system and ATS-safe structure, and even mentions the 'Unlimited AI tailoring on every plan' aspect. It does not cover side effects or errors, but for a transformation tool, the output and preservation behavior are adequately disclosed.

    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, information-dense sentence that gets to the point quickly. The opening marketing phrase 'Unlimited AI tailoring on every plan' is not strictly operational, but it is brief and does not harm the clarity. Overall, it is concise without unnecessary repetition.

    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?

    Given the tool's moderate complexity (4 parameters, nested cv object) and the absence of both annotations and output schema, the description needs to provide more structural context. It omits crucial details on the cv object structure and template_id, and it does not describe the return format or error handling. This is insufficient for an agent to confidently invoke the tool without guessing.

    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?

    The description explicitly mentions 'vacancy_text' and 'instructions' (emphasise, translate, demote noise), but it fails to explain the 'cv' parameter (how to provide the CV, url/base64) and the 'template_id' parameter. With schema description coverage at 0%, the description is responsible for clarifying parameter meanings, and it only covers half of them, leaving the agent to infer from the schema alone.

    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: it takes vacancy text and instructions, then returns a tailored CV. It also specifies the capabilities (emphasize matches, translate, demote noise) and the resource (CV), effectively distinguishing it from sibling tools like format_cv or anonymize_cv.

    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 a clear context for when to use this tool: when the user has a vacancy text and wants the CV tailored to it. It implicitly suggests the workflow (paste vacancy text, give instructions) but does not explicitly mention alternatives or when not to use it, so it lacks a full exclusionary guideline.

    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?

    No annotations are provided, so the description carries the burden. It discloses the two modes (replace vs. attach) and notes the destructive possibility of replacing stale CVs. However, it does not mention authentication, failure behavior, or integration prerequisites.

    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 sentences, front-loaded with the core action, and lacks filler. The second sentence adds useful context without bloating the text.

    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?

    With no annotations, no output schema, and four parameters, the description covers the main purpose, target systems, and replacement/attachment behavior. It does not explain candidate_id, response/error behavior, or prerequisites (e.g., active ATS integration), so it is not fully complete.

    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 0%, and the description partially compensates by mapping formatted_cv_id to 'formatted FormaCV document,' ats to the three named ATS platforms, and attach_as to replacing/attaching. The required candidate_id is not described, leaving a 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 a specific action (push) and resource (formatted FormaCV document) with explicit target systems (Bullhorn, JobAdder, Vincere). It distinguishes this tool from sibling formatting tools by focusing on the ATS push-back step.

    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 context that this is used to return a formatted CV to an ATS, keeping recruiters in their workflow. It implies use after formatting but does not explicitly mention alternatives or when not to use it.

    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 provided, the description carries the full burden of behavioral disclosure. It does reveal that the operation queues items, uses parallelism, and has optional ATS-safe and multilingual features. However, it does not explain what the output is (e.g., a job ID), whether the operation is asynchronous, or any side effects, leaving notable gaps.

    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 sentence that front-loads the action and packs important details. The parenthetical 'mirroring Bullhorn/JobAdder/Vincere search-result batches' adds specificity but could be trimmed without losing core meaning, so it is concise but not maximally lean.

    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?

    The description covers the purpose and high-level options but does not mention the expected return value, the potential need to poll get_job_status, or any prerequisites like authentication or prior caching. Given the absence of an output schema and annotations, these omissions make the description only minimally complete for a batch operation.

    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 provides zero descriptions for parameters, so the description must compensate. It explains that cv_ids are 'cached CV identifiers,' template_id is for 'a single branded template,' and options cover 'ATS-safe typography and multilingual coverage,' adding meaningful context beyond the raw 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 a specific action: queueing cached CV identifiers for parallel formatting against a single branded template. It distinguishes itself from siblings like format_cv (singular) and tailor_cv (customization) by emphasizing bulk operation and the use of a shared template.

    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 phrase 'dozens of cached CV identifiers' and 'parallel formatting' clearly imply this is for bulk formatting tasks, providing useful context. However, it does not explicitly mention when not to use it or name alternatives, such as using format_cv for single CVs, so it does not fully meet the explicit-usage criterion.

    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 of behavioral disclosure. It indicates non-mutating behavior through the verb 'Inspect' and clarifies that some integrations are 'roadmap' (planned, not yet available), which is a useful behavioral detail beyond just 'list'. It does not explicitly state read-only safety, but the inspection language strongly implies it, and it reveals the tool's focus on authentication status.

    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 sentence that packs significant detail: it names the integration categories, specific tools, and the purpose (push-back workflows). It is not overly verbose and every phrase adds value, though it could be slightly more structured (e.g., separating current vs roadmap) but overall it is appropriately concise.

    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 list tool with no parameters and no output schema, the description adequately covers the scope and purpose. It explains what will be listed (ATS connectors and CRM bridges) and what information is relevant (which are authenticated). It does not describe return format, but that is not strictly required without an output schema. The roadmap distinction adds depth, making the description fairly complete for this complexity level.

    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 score is 4 per the guidelines. The description does not need to explain parameters and does not add parameter-specific information because there are none. The schema coverage is effectively 100% (empty schema), so no compensation is needed.

    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: to inspect/list MCP-aware ATS connectors and CRM bridges, naming specific systems (Bullhorn, JobAdder, Vincere, Salesforce, HubSpot). It distinguishes itself from sibling tools like push_to_ats (an action) and list_templates (a different resource) by specifying the resource (integrations) and the purpose (understanding authenticated pathways).

    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?

    The description implies usage context: it helps understand which integrations are authenticated for push-back workflows. This gives a clear scenario for when to use the tool, but it does not explicitly mention alternatives or state when not to use it. Sibling tools like push_to_ats are visible but not referenced in the description, so usage guidance is implied rather than explicit.

    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

formacv-mcp MCP server

Copy to your README.md:

Score Badge

formacv-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/Rocketech-Software-Development/formacv-mcp'

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