fps-cv-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CV_DATA_DIR | No | Path to a local clone of the CV data repository. If set, the MCP server renders against this local data instead of fetching from GitHub Release assets. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_cvA | Data-layer tool: retrieves raw CV content in markdown, PDF, LaTeX, HTML, or Typst source. When the cv-analyst skill is available, prefer invoking that skill instead of calling this tool directly — the skill orchestrates retrieval with proper formatting, artifact delivery, and summarization. format='markdown' (default): LLM-readable text for analysis. format='pdf': original PDF binary for inline rendering. format='latex': full CV as LaTeX source (moderncv package) for typeset PDF generation. format='html': self-contained interactive HTML with theme switching and expandable cards. format='typst': full CV as Typst source (moderner-cv package) for typeset PDF generation. |
| get_tailored_cvA | Render a tailored CV from a TailoringSpec in LaTeX or Typst format. The tailoring config controls section ordering, entry emphasis, and profile override. Returns compilable source code. Use this tool after analyzing a job description to produce a targeted CV. |
| get_linkA | Return a profile or document link by network name. |
| list_linksA | List all available profile and document links. |
| get_cv_sectionsA | Retrieve one or more CV sections in a single call. Accepts a list of section names. Returns all matched sections separated by blank lines. Reports any unrecognized names with the list of available sections. |
| list_cv_sectionsA | List available CV section names with approximate line counts. Helps AI assistants pick the right section for targeted queries. |
| get_cv_pdf_linkA | Return the direct link to the PDF version of the CV. |
| get_google_scholar_linkA | Return the Google Scholar profile link. |
| query_workB | Filter work entries by company, date range, or topic. Returns matching entries as markdown. |
| get_entryA | Retrieve a specific resume entry by its stable ID. Returns JSON representation. |
| list_entry_idsA | List all entry IDs with labels, optionally filtered by section type (work, patents, publications, education, certificates, conferences, memberships, skills, book_reviews). |
| query_by_topicB | Find resume entries annotated with a topic. Returns entry IDs with labels. |
| get_relationshipsB | Get cross-references and relationships for a resume entry. |
| get_skill_profileA | Get skill proficiency levels across the career, optionally filtered by topic. |
| get_entry_contextA | Get full semantic context for an entry: topics, relationships, summaries, impact. |
| summarize_cvA | Fallback CV summarization for clients without Agent Skills support. When the cv-analyst skill is available, prefer invoking that skill instead — it provides richer orchestration, preset profiles, and artifact delivery. This tool exists for MCP clients that cannot load skills. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| summary | Configurable prompt for generating a summary of Francisco Perez-Sorrosal's CV. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| cv_pdf | Return the full CV as the original PDF binary. Raises `ResourceError` naming the direct download URL when the compiled PDF cannot be fetched -- a resource has no `isError` channel, so a JSON-RPC error is the only way to carry the reason. |
| cv_md | Return the full CV as markdown. |
| cv_sections_index | Return available CV section names with approximate line counts. |
| cv_latex | Return the full CV as LaTeX source (moderncv package). |
| cv_html | Return the full CV as self-contained interactive HTML. |
| cv_typst | Return the full CV as Typst source (moderner-cv package). |
| resume_json | Return the full resume data as JSON. |
| semantics_json | Return the full semantic overlay data as JSON. |
| taxonomy_json | Return the topic taxonomy as JSON. |
| resume_schema | JSON Schema describing the Resume data model (field names, types, constraints). |
| semantics_schema | JSON Schema describing the SemanticOverlay data model (annotations, topics, relationships). |
| template_catalog | Lightweight catalog of available output formats and their capabilities. |
TDQS
Scored across 16 tools
Most tools are distinct (list vs. query vs. get vs. summarize), but several overlap: query_by_topic and query_work both search by topic, and get_cv_pdf_link/get_google_scholar_link are convenience wrappers around get_link while get_cv can also return PDF. Descriptions help clarify the boundaries, but an agent could still misselect between related retrieval and link tools.
All tool names use a consistent snake_case verb_noun or verb_object pattern: list_*, get_*, query_*, summarize_cv. The naming is highly predictable and makes it easy to guess the general purpose of a tool before reading the description.
At 16 tools is just past the typical 3-15 well-scoped range, and the set includes redundant link/query variants such as get_cv_pdf_link, get_google_scholar_link, get_link, query_by_topic, and query_work. It is not extreme, but the surface feels slightly heavy for a read-only CV/resume server.
For a read-only CV retrieval and tailoring domain, the coverage is strong: raw CV formats, sections, individual entries, semantic context, skill profiles, relationships, links, and tailored CV rendering are all available. Minor gaps exist only in trimming redundancy rather than missing core functionality.