Skip to main content
Glama
TechnoLaps
by TechnoLaps

Civify Model Context Protocol (MCP) Server

npm version License: MIT

Official Model Context Protocol (MCP) server for the Civify Career Platform.

Enables autonomous AI agents (Claude Desktop, Cursor, OpenCode, Qwen CLI, LibreChat, and custom agents) to directly interact with Civify's AI resume parsing, ATS scoring, resume tailoring, PII redaction, Pay-Per-CV monetization, and job application tracking engines.


⚡ Quick Start & Connection Options

Connect directly to Civify's managed cloud MCP server using the new Streamable HTTP transport:

  • Streamable HTTP URL: https://mcp.civify.cv/mcp

  • Legacy SSE URL: https://mcp.civify.cv/sse

  • Healthcheck: https://mcp.civify.cv/health

Claude Desktop (Custom Connector)

Add a custom connector with URL https://mcp.civify.cv/mcp — no config needed, authentication happens interactively in chat.

Claude Desktop / MCP Client Config

{
  "mcpServers": {
    "civify": {
      "url": "https://mcp.civify.cv/mcp"
    }
  }
}

Legacy SSE (Smithery, older clients)

{
  "mcpServers": {
    "civify": {
      "url": "https://mcp.civify.cv/sse"
    }
  }
}

Option B: Local Command (npx / stdio)

Run locally using Node.js without pre-installing:

npx -y @civify/mcp-server

Claude Desktop Configuration

Edit your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "civify": {
      "command": "npx",
      "args": ["-y", "@civify/mcp-server"]
    }
  }
}

Cursor Configuration

Add to your project's .cursor/mcp.json:

{
  "mcpServers": {
    "civify": {
      "command": "npx",
      "args": ["-y", "@civify/mcp-server"]
    }
  }
}

OpenCode / Agent CLI

npx -y @civify/mcp-server

Related MCP server: laddro-career-mcp

🔐 Dynamic Multi-User Authentication

No hardcoded or static API key is required at startup. The MCP server supports interactive, per-session authentication out of the box:

  1. Sign In (civify_login): Users can authenticate with their Civify email/username and password. The agent automatically retrieves a session key (with 2FA support via civify_verify_2fa).

  2. Register (civify_register): New users can create an account directly through the agent conversation.

  3. Direct API Key (civify_set_api_key): Users who already hold a developer key (cv-fy-...) can provide it at any point in the chat or configure CIVIFY_API_KEY in client settings.


🧰 Available Tools (17 Tools)

1. Authentication & Profile

Tool

Description

Auth Required?

civify_set_api_key

Set or activate an existing Civify API key (cv-fy-...) for this session

No

civify_login

Sign in with email/username and password; auto-provisions session key

No

civify_verify_2fa

Complete two-factor authentication using the 6-digit email OTP

No

civify_register

Register a new Civify account

No

civify_logout

Clear active credentials and reset session state

No

civify_get_account

Get profile, active plan, remaining AI tokens, and CV pass credits

Yes

2. Monetization & Pay-Per-CV

Tool

Description

Auth Required?

civify_get_pay_per_cv_pricing

Get localized Pay-Per-CV pricing (USD & EGP regional rates)

Public (No)

civify_purchase_cv_pass

Purchase single CV pass or 3-pack (Card or Mobile Wallet)

Yes

civify_check_cv_entitlement

Verify if a CV has an active 30-day unwatermarked pass and edit rights

Yes

3. Job Intelligence & Resume AI

Tool

Description

Auth Required?

civify_scrape_job

Scrape and extract requirements from job URLs (LinkedIn, Greenhouse, etc.)

Public (No)

civify_parse_cv

Parse a PDF/DOCX/image resume into structured JSON schema

Yes

civify_tailor_cv

Tailor bullet points against a target job description + cover letter generation

Yes

civify_score_ats

Calculate ATS score and structural audit (document or JSON)

Yes

civify_mask_pii

Redact sensitive personal contact information, export anonymized PDF

Yes

civify_generate_pdf

Render high-fidelity PDF from structured resume data

No

4. Application Tracking (Kanban)

Tool

Description

Auth Required?

civify_track_application

Add a job application to the candidate's Kanban board

Yes

civify_list_applications

List all tracked job applications with status and dates

Yes


⚙️ Optional Environment Variables

Variable

Default

Description

CIVIFY_API_KEY

(None)

Pre-seeds a default API key for the session. Can also be set interactively via civify_set_api_key or civify_login.


🌟 Registry Listings


📄 License

MIT © Civify Team

Available Tools

8 tools
civify_get_accountA

Get user account profile, subscription tier, remaining token balance, and CV credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not state whether this is a read-only operation, whether authentication is required, what happens when not authenticated, or whether it hits rate limits. For a zero-param identity/balance tool these are relevant traits an agent would want to know.

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?

Single front-loaded sentence listing exactly what is returned. No filler, no restatement of the tool name.

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?

No output schema, so the description must explain what comes back, and it does list the returned fields. However, it says nothing about auth requirements, read-only nature, error behavior, or units for token/credit balances, which leaves gaps for a tool an agent will call to check state.

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?

Zero parameters, so baseline 4 applies. The description identifies what the single implicit input (the calling user) yields, which is all the parameter-semantic content a zero-param tool can have.

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?

States a specific verb (Get) and resource (user account) and enumerates exactly what is returned: profile, subscription tier, token balance, and CV credits. The sibling tools are all action tools (parse, tailor, score, mask, scrape, track) or a pricing lookup, so this read-only account tool is clearly distinct.

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

Usage Guidelines4/5

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

The description implies usage (retrieve account info before doing work that consumes tokens or credits) but doesn't explicitly state when to use it versus alternatives. With no siblings competing for the same account-data purpose, the exclusion burden is low, but explicit when-to-use guidance is absent.

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

civify_get_pay_per_cv_pricingB

Get localized Pay-Per-CV single unlock pricing (USD base and EGP regional pricing).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that pricing is localized with USD base and EGP regional currencies, which is useful behavioral context. However, it doesn't state whether pricing can change, whether it requires authentication, or how the result is structured. Adequate but with gaps for a no-annotation tool.

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

Conciseness5/5

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

A single tight sentence that front-loads the verb and resource, then qualifies the currency scope. No waste.

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 zero-param, no-annotation, no-output-schema tool, the description covers what is fetched and the currency dimensions but omits authentication needs, rate limits, or how pricing is consumed. It is minimally adequate but leaves behavioral questions unanswered.

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?

There are zero parameters, so the baseline is 4. The description confirms no input is needed by describing a pure lookup, which aligns with the empty schema. No further parameter semantics are possible.

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?

States a specific verb (Get) and resource (Pay-Per-CV single unlock pricing), with the added scope of localization and currencies. It is distinguishable from siblings like civify_get_account or civify_score_ats, though it doesn't explicitly name an alternative. Clear but no explicit sibling differentiation beyond the resource name.

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?

No when-to-use or when-not-to-use guidance is provided. The agent must infer that this is called before a Pay-Per-CV unlock to determine cost, but nothing states that context or any prerequisites.

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

civify_mask_piiB

Upload a CV and produce a sanitized, PII-masked version (redacts email, phone, physical address).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath to resume file to redact.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it only covers the redaction scope. It does not say whether the original file is modified or preserved, where the sanitized output goes, whether authentication is required, or what the tool returns — all important for an upload/mutation-style tool.

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

Conciseness5/5

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

A single front-loaded sentence with no redundant clauses; the action and the redaction scope are both stated compactly and every element earns its place.

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 one-parameter tool with no output schema and no annotations, the description covers the input action and redaction behavior but omits the return value and output-format details the agent needs to chain it with follow-up tools. Adequate but with a clear gap.

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

Parameters3/5

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

Schema description coverage is 100% for the single file_path parameter, so the schema already carries the parameter semantics. The description adds nothing about accepted formats or path conventions, making the baseline 3 appropriate here.

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 gives a specific verb pair (upload + produce) and a precisely scoped resource: a PII-masked CV with the redaction targets enumerated in parentheses (email, phone, physical address). This clearly separates it from siblings like civify_parse_cv or civify_tailor_cv, which handle the same CV artifact for different purposes.

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?

There is no when-to-use guidance and no mention of alternatives, despite several siblings operating on the same CV (parse_cv, tailor_cv, score_ats). The agent must infer from the name alone that this is the privacy/sanitization path rather than the generic parsing path.

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

civify_parse_cvB

Parse a resume document (PDF, DOCX, image) into structured JSON schema containing contact details, work experience, education, skills, and projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoLanguage code (e.g. 'en', 'ar', 'auto'). Default is 'auto'.auto
file_pathYesAbsolute or relative file path to the resume document (PDF, DOCX, image).

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose the output contents (contact, experience, education, skills, projects), which is useful given no output schema. However it says nothing about cost, authentication, file-size limits, or failure modes, and a sibling pricing tool suggests the operation is paid.

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?

A single front-loaded sentence with zero waste that names the input formats and the returned schema sections in one pass.

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?

Since no output schema exists, the description appropriately enumerates the returned fields, making it nearly self-sufficient for a 2-parameter parse tool. Only error behavior and size limits are absent.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented. The description only echoes the format list from file_path and adds no extra meaning about language handling or path resolution.

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?

States a specific verb (parse) and resource (resume document) plus the supported formats and the resulting structured fields. It is clearly the extraction tool among siblings like tailor_cv, score_ats, and mask_pii, though it never names those alternatives.

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?

No guidance on when to choose this tool over siblings such as civify_tailor_cv or civify_score_ats, nor any prerequisites (e.g., payment via civify_get_pay_per_cv_pricing). Usage must be inferred from the name alone.

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

civify_score_atsB

Calculate general ATS compatibility score and structural audit without needing a full JD.

ParametersJSON Schema
NameRequiredDescriptionDefault
resume_idYesUUID of an existing resume in Civify.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, what permissions are needed, how the score is returned, or whether the structural audit has side effects; the only extra context is that a full JD is not required.

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 front-loaded sentence with no filler. Every part of the sentence adds useful information: the action, the two outputs, and the key condition for using the tool.

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 one-parameter tool with a fully documented schema and no output schema, the description covers purpose and the main usage condition. It omits details about the score format and what the structural audit includes, but those are not essential for correct invocation.

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 coverage is 100%, and the single parameter 'resume_id' is fully documented in the schema as the UUID of an existing resume. The description adds no further parameter meaning, which is acceptable given the high schema coverage baseline.

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 states a specific verb ('Calculate') and two concrete outputs ('general ATS compatibility score and structural audit'), so the tool's purpose is clear. It does not explicitly distinguish itself from siblings by name, though the 'without needing a full JD' clause implies a contrast with tools that do require one.

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 phrase 'without needing a full JD' gives an implied usage condition: use this when the full job description is unavailable. However, it does not name alternatives, state when not to use it, or explain what to do if a JD is available.

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

civify_scrape_jobA

Scrape and extract structured job description, company name, requirements, and responsibilities from a job URL (LinkedIn, Greenhouse, Lever, Ashby, Wuzzuf).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the job posting.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses a scope constraint by naming supported sources (LinkedIn, Greenhouse, Lever, Ashby, Wuzzuf), which hints at failure modes for unsupported sites, but it omits auth requirements, rate limits, and whether the scrape is live/network-dependent.

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?

A single efficient sentence with the core action front-loaded and the output fields enumerated compactly. The parenthetical platform list is slightly dense but earns its place by defining scope.

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 one-parameter tool with no output schema, the description adequately covers both the input (job URL) and the expected return (job description, company, requirements, responsibilities). Only the platform-failure behavior remains unaddressed.

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?

There is a single parameter whose schema description coverage is 100%, so the baseline is 3. The description adds only the notion that the URL points to a job posting and implies platform compatibility, but gives no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (scrape and extract) plus the resource (structured job data from a job URL) and enumerates the extracted fields. It is clearly distinct from siblings like civify_parse_cv, civify_tailor_cv, and civify_score_ats, which operate on CVs rather than job postings.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer it applies when it holds a job posting URL. There is no explicit when-to-use vs. when-not-to-use guidance, no prerequisites, and no mention of what to do with an unsupported URL even though the tool names specific supported platforms.

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

civify_tailor_cvB

Tailor a candidate's resume against a target job description. Optimizes bullet points, highlights matching skills, and generates an optional targeted cover letter.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoPath to resume document file to tailor.
job_titleNoTarget job title.
company_nameNoTarget company name.
job_descriptionYesThe full text of the job description to tailor against.
generate_cover_letterNoWhether to generate a matching tailored cover letter.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the tailoring actions but not critical traits: whether the source file is overwritten or a new document is produced, what the response contains, or that this appears to be a paid operation (given the civify_get_pay_per_cv_pricing sibling).

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 tightly written sentences, front-loaded with the primary action and followed by the specific transformations, with zero filler.

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?

Adequate for the core purpose, but with no annotations and no output schema the description should say more about the result (does it return tailored text, a file path, a diff?) and cost/auth requirements implied by sibling pricing tools.

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 coverage is 100%, so the schema already documents all five parameters. The description reinforces the optional cover-letter toggle via 'optional targeted cover letter,' but adds no format, length, or content expectations beyond the schema.

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?

States a specific verb (tailor) and resource (resume/CV) against a target job description, and enumerates sub-actions: optimizing bullets, highlighting matching skills, and generating a cover letter. An agent can distinguish this from siblings like parse_cv or score_ats, though the description never explicitly names those alternatives.

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?

No guidance on when to choose this over civify_score_ats, civify_parse_cv, or civify_scrape_job, and no ordering/prerequisite hints (e.g., that a resume must be parsed first). Usage is implied by the verb only.

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

civify_track_applicationC

Record a job application in the candidate's Civify Application Kanban tracker.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
statusNoAPPLIED
job_urlNo
job_titleYes
company_nameYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It implies a write operation against a tracker but doesn't disclose key behaviors: how duplicates are handled, whether status transitions are validated, what side effects occur, or what the response contains.

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?

A single efficient sentence with the resource and verb front-loaded. No waste, though minimal content limits its usefulness.

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 5-parameter mutation tool with zero schema descriptions, no annotations, and no output schema, the description is too thin. It omits parameter meanings, the status enum's role, and behavioral expectations the agent would need to call this 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%. Description mentions no parameters at all; the schema lists required company_name and job_title plus optional status enum, notes, and job_url but the description adds no semantics, no default status note, and no enumeration guidance.

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?

States a specific verb (record) and resource (a job application) with its destination (the Civify Application Kanban tracker). It's distinguishable from siblings like tailor_cv and score_ats, but doesn't explicitly delineate against them.

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?

No when-to-use guidance, no mention of alternatives, and no prerequisite context for recording versus other trackers. The description is purely declarative.

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.

  1. 8 tool updatesv1.0.0
    • First observedcivify_get_account
    • First observedcivify_get_pay_per_cv_pricing
    • First observedcivify_mask_pii
    • First observedcivify_parse_cv
    • First observedcivify_score_ats
    • First observedcivify_scrape_job
    • First observedcivify_tailor_cv
    • First observedcivify_track_application

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct action and resource: parsing, tailoring, ATS scoring, PII masking, job scraping, application tracking, account retrieval, and pricing are all clearly separate. No two tools overlap in purpose.

Naming Consistency5/5

All tools use the same civify_ prefix followed by a snake_case verb_noun pattern (e.g., civify_parse_cv, civify_tailor_cv). The convention is predictable and consistent throughout.

Tool Count5/5

Eight tools is well-scoped for a CV and job application assistant, with each tool covering a distinct part of the workflow. No tools feel redundant or extraneous.

Completeness3/5

Core operations for CV parsing, tailoring, ATS scoring, PII masking, job scraping, and application recording are present. However, the application tracker lacks list, update, and delete operations, and account management only supports retrieval, leaving notable lifecycle gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables users to search for jobs, prefill applications using AI, and automate submissions across major platforms like Lever and Ashby directly from Claude or Cursor. It provides a full suite of tools for managing job queues, profile data, and resumes within a chat interface.
    35
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to pull live job listings from major ATS platforms (Greenhouse, Lever, Ashby, Workable), Hacker News hiring threads, and detect hiring signals on company career pages.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to upload resumes and receive structured ATS scores with parseability, section coverage, contact-info, and keyword analysis, along with qualitative improvement suggestions via an LLM.
    -