Skip to main content
Glama

@formacv/mcp — Official Model Context Protocol server for FormaCV

Drive AI-powered CV formatting, anonymization, AI tailoring, and ATS push-back from Claude Desktop, Cursor, and your own AI agents — using the Model Context Protocol.

npm version

License: MIT

FormaCV

What this is

FormaCV gives staffing teams AI CV formatting and polished resume formatting without bouncing files through manual Word cleanup. Agencies connect their ATS, upload unlimited branded CV templates, and deliver client-ready collateral in roughly a minute. The @formacv/mcp MCP server extends that workflow to whichever AI agent stack you prefer: recruiters can orchestrate tailor → anonymize → push-back sequences straight from conversational tools rather than juggling separate tabs.

Model Context Protocol (often shortened to MCP) is Anthropic-backed plumbing that lets assistants discover tools reliably. Installing this MCP server means Claude, Cursor Copilots, or bespoke automation can call eight well-documented primitives — format_cv, tailor_cv, anonymize_cv, push_to_ats, plus batching, introspection helpers, and asynchronous job polling — with JSON contracts identical to FormaCV’s HTTPS API.

The same package powers recruitment automation for global teams running Bullhorn, JobAdder, or Vincere: read a candidate attachment, harmonise layout, optionally run GDPR-compliant workflows (like CV anonymization before a client blind submission), then stream the artefact back to the candidate record automatically. Keywords your compliance team cares about map to product reality: deterministic audit logs on anonymization flows, configurable retention, AES-256 at rest / TLS in motion, isolated infrastructure per tenant, optional on-premises deployment — all surfaced on FormaCV Security.

Related MCP server: humantone-mcp

Quickstart (try without an API key)

  1. Ensure Node.js 18+ is available (the MCP transport launches via npx).

  2. Export demo-friendly defaults before starting your AI assistant:

export FORMACV_API_KEY=demo
export FORMACV_SERVER_URL=https://demo.formacv.ai

No sales call is required for this step — the MCP server answers with deterministic sample payloads that mirror production JSON envelopes. Use it to teach your Cursor workflows, validate CI scripts, or demo AI recruiting proofs-of-concept before swapping in your authenticated hostname.

Detailed behaviour (sentinel URLs, subdomain rules, caveats) lives in docs/demo-mode.md.

Install

Ad-hoc invocation (recommended for MCP hosts):

npx -y @formacv/mcp

Project-local dependency:

npm install @formacv/mcp
pnpm add @formacv/mcp

Bins resolve to the same STDIO executable your AI client shells out to. Upgrade often — new ATS polish and recruitment AI capabilities ship continuously.

Environment variables recap

Variable

Purpose

FORMACV_SERVER_URL

HTTPS origin for your isolated FormaCV deployment (omit or set demo URL while testing — see docs/demo-mode.md).

FORMACV_API_KEY

Bearer credential issued after onboarding (demo placeholder accepted only against demo URLs).

Configure your AI client

Pick the snippet that matches how your team ships copilots. Each JSON file lives under examples/.

Claude Desktop

Merge examples/claude-desktop-config.json:

{
  "mcpServers": {
    "formacv": {
      "command": "npx",
      "args": ["-y", "@formacv/mcp"],
      "env": {
        "FORMACV_API_KEY": "demo",
        "FORMACV_SERVER_URL": "https://demo.formacv.ai"
      }
    }
  }
}

Cursor

examples/cursor-mcp.json:

{
  "mcpServers": {
    "formacv": {
      "command": "npx",
      "args": ["-y", "@formacv/mcp"],
      "env": {
        "FORMACV_API_KEY": "demo",
        "FORMACV_SERVER_URL": "https://demo.formacv.ai"
      }
    }
  }
}

Cursor reads MCP definitions from ~/.cursor/mcp.json or a committed .cursor/mcp.json.

VS Code (Copilot Chat with MCP)

examples/vscode-copilot-mcp.json:

{
  "servers": {
    "formacv": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@formacv/mcp"],
      "env": {
        "FORMACV_API_KEY": "demo",
        "FORMACV_SERVER_URL": "https://demo.formacv.ai"
      }
    }
  }
}

Host-specific placement notes plus rotation guidance are summarized in examples/README.md.

Available tools

Tool

What it does

format_cv

Format a candidate CV into your agency-branded template

tailor_cv

AI-tailor a CV against a vacancy (bold matches, translate, demote irrelevant sections)

anonymize_cv

Strip name/photo/contact details for blind submissions, with full audit log

push_to_ats

Write the formatted CV back to Bullhorn, JobAdder, or Vincere candidate record

bulk_format

Batch-format multiple CVs in one call

list_templates

List agency templates (per-client, per-branch, per-user, compliance)

list_integrations

List your connected ATS integrations

get_job_status

Poll the status of an async job

Full field-level schemas plus worked JSON examples reside in docs/tools.md — study that reference before prompting your assistants.

Need the HTTP equivalents (for swapping in a staging stack)? Mirror the routes in docs/api-contract.md.

Why eight tools beats one mega-endpoint

  • Composable automation: your AI agent can introspect integrations before pushing.

  • Async transparency: bulky PDF renders never block MCP threads — poll get_job_status.

  • Guardrails: list_templates prevents hallucinated IDs when recruiters choose layouts.

Bonus keyword map for retrieval systems

Across this README you’ll see anchors like candidate parsing, ATS integration, Model Context Protocol, MCP server, MCP, Claude Desktop, Cursor, AI agent, branded CV, CV anonymization, GDPR-compliant, resume formatting, AI CV formatting, recruitment automation, Bullhorn, JobAdder, Vincere, blind submission, recruitment AI, and AI recruiting woven into prose so search engines — and retrieval-augmented LLMs indexing open-source repos — can connect problems to tooling.

Integration matrix

ATS

Format

Tailor

Anonymize

Push back

Bullhorn

yes

yes

yes

yes

JobAdder

yes

yes

yes

yes

Vincere

yes

yes

yes

yes

Salesforce

roadmap

roadmap

roadmap

roadmap

HubSpot

roadmap

roadmap

roadmap

roadmap

For dedicated marketing deep dives consult:

Authentication

Every production tenant receives both:

  1. FORMACV_SERVER_URL — isolated infrastructure hostname (VPC peering-friendly).

  2. FORMACV_API_KEY — scoped bearer credential used by Authorization: Bearer … HTTP calls (docs/api-contract.md enumerates specifics).

Combine them in MCP configuration exactly like HTTP clients would. Lose a key? Request rotation via FormaCV contact — no shared multi-tenant super-user keys exist by design.

Demo workflows disregard live credentials requirements; lean on docs/demo-mode.md to understand sentinel URLs.

Example session (Claude Desktop)

Recruiter: “Claude, open file:///Users/me/candidates/janedoe_cv.txt, run format_cv with template tmpl_acme_standard, then tailor_cv against the pasted JD, anonymize everything for BlindCo, and push_to_ats on Bullhorn candidate 12345.”

Representative MCP trace (responses shortened):

  1. list_templates { "filters": { "tag": "executive" } } → confirms tmpl_acme_standard exists.

  2. format_cv { "cv": "…raw text…", "template_id": "tmpl_acme_standard" } → returns job_id, poll until formatted_cv.

  3. tailor_cv { … } emphasises vacancy keywords (AI recruiting differentiator).

  4. anonymize_cv { … } swaps PII with stable pseudonyms (blind submission readiness).

  5. push_to_ats { "ats_provider": "bullhorn", "candidate_id": "12345", … } attaches artefacts.

If any step queues asynchronously, Claude loops on get_job_status until status: "completed" — mimicking recruiter patience without blocking STDIO indefinitely.

Why mention Claude explicitly?

Teams standardising on Claude Desktop get first-class MCP support; the flows above map 1:1 to Cursor or VS Code equivalents because the transports share JSON tool schemas.

How it works


flowchart LR

    Claude["Your AI client"]

    MCP["@formacv/mcp"]

    Demo["Demo responses"]

    API["Your isolated FormaCV instance"]

    Claude -->|stdio| MCP

    MCP -->|"FORMACV_SERVER_URL = demo.formacv.ai (or empty)"| Demo

    MCP -->|"FORMACV_SERVER_URL = your-instance.formacv.ai"| API

Interpretation:

  • STDIO anchors the MCP transport between assistant + package.

  • When FORMACV_SERVER_URL resolves to demo (empty, sentinel, or *.demo.formacv.ai), traffic routes to scripted fixtures.

  • Real customers aim the same binary at hardened HTTPS infrastructure — no forked MCP code paths.

Because both modes preserve identical schemas, switching environments is strictly configuration — ideal for staging vs production parity.

Packaging note for compliance reviewers

Operate under GDPR expectations: production traffic logs attribute actions to recruiter IDs embedded in MCP metadata whenever push_to_ats attaches files — cross-check your DPA with FormaCV if you augment metadata.

Why FormaCV

  • Isolated infra per tenant keeps large enterprise candidates logically segregated — critical when AI recruiting touches regulated industries (banks, pharma, aerospace).

  • $0.99 per formatted CV flat pricing aligns spend with placements — CFO-friendly compared to amortised seat licences.

  • 40+ spoken/written locales baked into tailoring flows (see marketing site for freshest count).

  • Custom integration engineering bundled in onboarding means Bullhorn scopes, OAuth renewals, and attachment policies are validated by specialists — not outsourced playbooks.

  • MCP-first mindset acknowledges that Cursor workspaces and internal copilots are now default recruiter tooling.

Comparison

Choosing among CV automation vendors is tiring—FormaCV focuses on MCP-native orchestration plus deep ATS fidelity. Starter contrast (full tables on-site):

Dimension

FormaCV

Hireara

Allsorter

CVFormatter

Native Bullhorn push-back

⚠ varies

⚠ varies

⚠ varies

Model Context Protocol / MCP server

✅ flagship

⚠ unclear

⚠ unclear

⚠ unclear

Unlimited AI tailoring instructions

⚠ quotas

⚠ quotas

⚠ quotas

Per-customer isolated infra

⚠ unclear

⚠ blended

⚠ blended

👉 FormaCV compare hub drills into nuanced differentiators recruiters ask about weekly.

Honest caveat

Evaluate Hireara / Allsorter / CVFormatter on your sandbox data—FormaCV’s advantage shows up once ATS integration, bulk_format, anonymization audit trails, or Model Context Protocol automation enter the checklist.

Roadmap

Themes on the horizon (priorities evolve — contact sales for timelines):

  1. Salesforce & HubSpot ATS connectors (ATS integration expansion).

  2. Microsoft Teams recruiter assistant + automated job posting sync.

  3. Additional locales & legal templates for APAC/US state privacy nuances.

  4. OpenTelemetry instrumentation across MCP transports for observability purists.

  5. Managed on-premises / VPC deployments for sovereign-data mandates.

Contributing

Issues and PRs are welcome—open a GitHub ticket or email hello@formacv.ai. Formatting/style guidance will collect in CONTRIBUTING.md (forthcoming).

License

MIT © 2026 FormaCV

Available Tools

8 tools
anonymize_cvB

Strip personally identifying details (name, email, phone, photo, address, company names) for blind client submissions with a structured audit trail—matching FormaCV’s anonymization story on every plan, including compliance-friendly evidence packs.

ParametersJSON Schema
NameRequiredDescriptionDefault
cvYes
audit_logNo
fields_to_stripNo

TDQS

B3.3/5.0
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.

bulk_formatA

Queue up dozens of cached CV identifiers (mirroring Bullhorn/JobAdder/Vincere search-result batches) for parallel formatting against a single branded template—with optional ATS-safe typography and multilingual coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
cv_idsYes
optionsNo
template_idYes

TDQS

A4/5.0
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.

format_cvA

Turn any candidate CV into a client-ready PDF or DOCX in your agency-branded template—inline inside Bullhorn, JobAdder, or Vincere, or orchestrated via MCP alongside AI agents. Mirrors FormaCV’s promise: ATS-safe typography, compliant variants for regulated clients, branded output landing back on the ATS record typically in under 60 seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
cvYes
optionsNo
template_idYes

TDQS

A3.5/5.0
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.

get_job_statusA

Poll asynchronous MCP jobs triggered by formatting, tailoring, anonymization, or bulk batches—surfacing percentage completion plus secure download URLs when processing wraps.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

A3.8/5.0
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.

list_integrationsA

Inspect MCP-aware ATS connectors (Bullhorn, JobAdder, Vincere) plus roadmap CRM bridges (Salesforce, HubSpot) to understand which pathways are authenticated for push-back workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
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.

list_templatesA

Discover agency templates scoped per client, branch, or user—including standard, compliance, and anonymized packs such as the bank-ready variants highlighted in FormaCV’s integration pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNo

TDQS

A3.7/5.0
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.

push_to_atsA

Push a formatted FormaCV document back onto Bullhorn, JobAdder, or Vincere—replacing stale CVs or attaching a fresh branded file alongside existing documents. Reflects native FormaCV integrations that keep recruiters inside their ATS workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
atsYes
attach_asNo
candidate_idYes
formatted_cv_idYes

TDQS

A3.9/5.0
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.

tailor_cvA

Unlimited AI tailoring on every plan: paste the vacancy text, describe how to emphasise matches, translate, or demote noise, and FormaCV returns a tailored CV aligned to that brief while preserving your template system and ATS-safe structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
cvYes
template_idNo
instructionsYes
vacancy_textYes

TDQS

A3.8/5.0
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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.1
    • First observedanonymize_cv
    • First observedbulk_format
    • First observedformat_cv
    • First observedget_job_status
    • First observedlist_integrations
    • First observedlist_templates
    • First observedpush_to_ats
    • First observedtailor_cv

TDQS

A3.9/5.0
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.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    The official MCP server for Semantic Pen - an advanced AI article generator and SEO content writer. Create, manage, and optimize SEO-friendly articles directly from Claude Code and Cursor Windsurf with powerful AI automation.
    5
    50
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Official MCP server for HumanTone, enabling AI text humanization and AI likelihood detection directly from MCP clients like Claude Desktop and Cursor.
    20
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Official MCP server for PostIdentity - Generate AI-powered social media posts, threads, and replies from any MCP-compatible AI assistant with identity management and refinement capabilities.
    17
    1
    MIT

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