Skip to main content
Glama
skivuha

federal-compass-mcp

by skivuha

federal-compass-mcp

Your AI compass from private sector to federal career

npm version CI License: MIT MCP OpenSSF Scorecard

Federal job descriptions are 5 pages of legal language. GS grades, clearance levels, hiring paths — none of this is explained anywhere. federal-compass-mcp connects Claude to the official USAJobs API and turns it into an AI advisor that speaks plain English.

Built for tech professionals transitioning from private sector to federal/government careers.


What it does

  • Searches federal job openings with optional filters — keyword, location, salary, clearance level

  • Translates federal job descriptions into plain language — what they actually want, without the jargon

  • Analyzes your CV against specific job postings and tells you if you qualify

  • Explains federal concepts — GS grades, pay plans, security clearances, hiring paths

  • Saves your CV locally so Claude can reference it automatically


Related MCP server: USA Spending MCP Server

Getting started

1. Get your free USAJobs API key

Register at developer.usajobs.gov — takes about 3 minutes. Verify your email and you'll receive an API token.

2. Add to your MCP client

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "federal-compass": {
      "command": "npx",
      "args": ["-y", "federal-compass-mcp@latest"],
      "env": {
        "USAJOBS_API_KEY": "your_api_key",
        "USAJOBS_EMAIL": "your@email.com"
      }
    }
  }
}

VS Code / Cursor / Windsurf — same config, different config file path. See your client's MCP documentation.

3. Try it

Find me senior software developer jobs in Raleigh, NC
What is a GS-13 and how much does it pay?
Save my CV [attach file]
Look at this job posting — am I qualified?

Tools

Tool

Description

search_jobs

Search federal job openings. All filters optional — keyword, location, salary, grade, agency, remote

get_job_details

Get full details for a specific job posting

compare_jobs

Compare 2-5 job postings side by side

save_cv

Save your CV locally for automatic use in analysis

get_cv

Read your saved CV

explain_federal_concept

Explain GS grades, clearances, hiring paths, pay plans

calculate_salary

Calculate GS salary with locality pay for any grade, step, and location

find_matching_jobs

Find jobs matching your CV — extracts skills and searches USAJobs

check_qualification

Compare your CV against a specific job posting

extract_ksa

Extract KSA requirements from a job posting, optionally match against your CV


CV storage

Your CV is stored locally on your machine — never sent to any server:

~/.federal-compass/
  cv.json
  config.json
  codelists/     <- cached USAJobs reference data

Why federal jobs are confusing (and how this helps)

Coming from private sector, federal job postings feel like a different language:

  • GS-13 Step 1-10 — what grade am I? what does step mean?

  • TS/SCI with polygraph — do I need this? how long does it take?

  • Competitive vs Excepted Service — which one can I apply to?

  • HiringPath: fed-transition — what is this and why does it matter?

federal-compass-mcp answers all of these through natural conversation with Claude.


Requirements

  • Node.js v22+

  • Free USAJobs API key

  • Any MCP-compatible client (Claude Desktop, VS Code, Cursor, etc.)


Contributing

Issues and PRs welcome. See CONTRIBUTING.md.


License

MIT — see LICENSE


Built by @skivuha — a Senior Frontend Engineer navigating the private-to-federal transition firsthand.

Available Tools

10 tools
calculate_salaryA

Calculate federal GS salary with locality pay adjustment. Returns base pay plus locality-adjusted pay for a specific grade, step, and location. Covers all 15 GS grades and ~58 locality pay areas.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepNoStep 1-10. Omit to see all 10 steps.
gradeYesGS grade: "13" or "GS-13"
locationNoLocation for locality pay: "Raleigh", "DC", "NYC", "San Francisco". Defaults to Rest of US.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry the burden. It states what the tool returns (base + locality pay) but does not disclose whether it is read-only, requires authentication, or has any side effects. This is adequate but minimal.

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 concise with two sentences, front-loaded with the primary verb. Every word adds value, and there is no redundancy.

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 no output schema and 3 parameters, the description is fairly complete. It covers purpose, scope, and key details. However, it could benefit from mentioning the return format or error conditions.

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 baseline is 3. The description adds minimal extra meaning beyond the schema (e.g., scope of grades and areas). It does not clarify constraints or edge cases beyond what's already in 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?

The description clearly states the tool's action (calculate), resource (federal GS salary with locality adjustment), and specific aspects covered (grades, steps, locations). It distinguishes itself from sibling tools by focusing on salary calculation.

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 is provided on when to use this tool versus alternatives like compare_jobs or explain_federal_concept. The description lacks when-not-to-use information and does not mention prerequisites.

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

check_qualificationA

Compare your saved CV against a specific job posting. Returns your CV and the job requirements side by side for analysis. Requires a saved CV.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID (MatchedObjectId from search results)

TDQS

A4/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 states the tool returns CV and job requirements 'side by side for analysis,' but lacks details on failure cases (e.g., no saved CV, invalid job ID) or output format. It does not contradict annotations as none exist.

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?

Three concise sentences covering action, return, and prerequisite with no fluff. Every sentence adds value and is front-loaded with the core purpose.

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 tool with one parameter and no output schema, the description covers essential aspects: purpose, return, and prerequisite. However, it could be more explicit about the return structure to aid the agent in processing the output.

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% (the schema already defines 'job_id' as 'Job ID (MatchedObjectId from search results)'). The description adds no additional parameter context beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('compare your saved CV against a specific job posting') and the resource (CV and job requirements). It distinguishes from siblings like compare_jobs (which compares two jobs) and get_cv (which only retrieves the 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 specifies a prerequisite ('Requires a saved CV'), which helps the agent understand when to use this tool. However, it does not explicitly state when not to use it or mention alternatives like compare_jobs.

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

compare_jobsA

Compare 2-5 federal job postings side by side. Returns salary, grade, clearance, location, and more for each job. Makes one API call per job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idsYesArray of 2-5 job IDs (MatchedObjectId from search results)
include_detailsNoInclude duties, qualifications, and job summary (default: false)

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description must carry behavioral disclosure. It mentions it returns salary, grade, etc., and makes one API call per job, which is transparent but does not disclose read-only status, side effects, or authentication requirements.

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 sentences with no wasted words. The first sentence states the purpose clearly, the second adds specifics about output and behavior.

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 no annotations and no output schema, the description covers purpose, parameter hints, and behavior adequately. It could mention the output format or more about what 'side by side' means, but it's minimally complete.

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 100% and both parameters have descriptions. The description reinforces the range (2-5) and adds context that job_ids come from search results, adding meaning 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?

The description clearly states it's for comparing 2-5 federal job postings, lists what information is returned (salary, grade, clearance, location), and distinguishes from siblings like get_job_details (single job) and search_jobs (searching).

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?

Explicitly states the tool compares 2-5 job postings, implying when to use it. It mentions making one API call per job, which is a helpful performance note, but does not explicitly advise against using it for single jobs or provide alternative sibling names.

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

explain_federal_conceptA

Explain federal career concepts in plain language: GS grades, security clearances, hiring paths, pay plans, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
conceptYesConcept to explain, e.g. "GS-13", "TS/SCI", "Schedule A", "Direct Hire Authority"

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It states the tool explains in plain language but lacks details on response format, comprehensiveness, or limitations.

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, clear sentence with no extraneous information, effectively conveying the tool's purpose.

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 simple one-parameter tool, the description covers the purpose and gives examples. However, it does not specify the output format or whether additional context like definitions or links is provided.

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 has 100% coverage with a description for the 'concept' parameter, and the description adds concrete examples (e.g., 'GS-13', 'TS/SCI'), which enhances meaning beyond 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 that the tool explains federal career concepts in plain language, listing specific examples like GS grades, security clearances, etc. It is distinct from sibling tools which focus on calculations, qualifications, or job searches.

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 when clarification on federal concepts is needed but does not explicitly state when to use this tool versus alternatives or provide exclusions.

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

extract_ksaA

Extract KSA (Knowledge, Skills, Abilities) requirements from a federal job posting. Categorizes requirements by type (knowledge, skill, ability, experience, education, certification, other) and optionally matches them against your saved CV.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID (MatchedObjectId from search results)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It discloses extraction, categorization, and optional CV matching, but does not mention whether the tool modifies data, required authentication, rate limits, or what happens if the CV is not saved. The output format and potential limitations are also not addressed.

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 sentences, approximately 20 words, with no redundancy. The main action and key features are front-loaded and clearly communicated without wasted words.

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 tool's simplicity (single parameter, no output schema), the description is mostly complete. It covers the core functionality and optional CV matching. However, it could be more complete by briefly noting that the output is a structured list or that the CV must be saved first. The lack of output schema explanation is acceptable as per rules.

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 covers 100% of the single parameter (job_id) with a description. The tool description does not add any additional meaning beyond the schema's 'Job ID (MatchedObjectId from search results)', so it meets the baseline for high schema 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 clearly states it extracts KSA requirements from a federal job posting and categorizes them by type, with optional CV matching. The verb 'extract' and resource 'KSA from job posting' are specific. It distinguishes from sibling tools like get_job_details or check_qualification by focusing on categorization and CV matching.

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?

Implied usage: to extract structured KSA requirements after searching for a job, and optionally match against a saved CV. However, no explicit guidance on when to use this versus alternatives like check_qualification or compare_jobs, nor scenarios where CV matching is appropriate.

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

find_matching_jobsA

Find federal jobs that match your saved CV. Extracts skills and keywords from your CV and searches USAJobs. Requires a saved CV.

ParametersJSON Schema
NameRequiredDescriptionDefault
results_per_pageNoNumber of results per search query (default: 25, max: 500)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral transparency burden. It states extracts skills and keywords from CV and searches USAJobs, but does not disclose side effects, network calls, or whether it modifies the CV. It provides core behavior but lacks deeper context for agent decision-making.

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 sentences: first states the purpose concisely, second adds context 'Requires a saved CV.' No redundant words; information is front-loaded. Highly efficient.

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 tool has one optional parameter, no output schema, and no annotations, the description covers the main functionality. However, it omits details like what happens if no CV is saved (error behavior) or the return format. Despite this, completeness is high for a simple tool.

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 describes the single parameter results_per_page with full coverage (100%). The tool description does not mention this parameter, so it adds no additional meaning beyond the schema. Baseline 3 applies as the schema already documents it adequately.

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 finds federal jobs matching a saved CV, differentiating it from sibling tools like search_jobs which likely allow arbitrary queries. Verb is specific ('find matching') and resource is clear ('federal jobs from USAJobs using 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 explicitly notes 'Requires a saved CV,' providing a clear prerequisite. However, it does not offer explicit guidance on when to use this tool versus alternatives like search_jobs, nor does it mention when not to use it. The usage context is clear but lacks exclusions.

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

get_cvA

Read your saved CV. Returns the CV text and metadata (when it was saved, original format).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It discloses that the tool returns text and metadata, but it does not mention side effects (none expected) or what happens if no CV is saved (error handling is missing).

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 extremely concise with two sentences: the first states the verb and resource, the second details the return value. No unnecessary words or fluff.

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 (no parameters, no output schema), the description is fairly complete. It explains what it does and what it returns, but it could mention prerequisites (e.g., CV must exist) and error conditions for missing CV.

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 input schema has zero parameters, so no explanation is needed. Schema coverage is 100%, and the description adds no parameter information, which is acceptable. Baseline for 0 params is 4.

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 action ('Read') and the resource ('your saved CV'), and specifies the return value (CV text and metadata). This distinguishes it from siblings like 'save_cv' and 'search_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 the tool should be used to read a previously saved CV, but it does not explicitly state when to use it or when not to, nor does it mention alternatives. Usage is inferred but not detailed.

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

get_job_detailsA

Get full details for a specific federal job posting including duties, qualifications, and how to apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID (MatchedObjectId from search results)

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses what the tool returns (duties, qualifications, how to apply), which is sufficient for a read operation. It does not mention authentication or rate limits, but for a simple retrieval tool, this is acceptable.

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 that conveys purpose and contents efficiently. No wasted words; every part earns its place.

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

Completeness5/5

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

Given no output schema, the description adequately explains return contents (duties, qualifications, how to apply). For a simple tool with one parameter, it is 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 coverage is 100% with a clear description for job_id. The description adds no extra parameter meaning beyond 'including duties…' which does not relate to the parameter. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool gets full details for a specific federal job posting, listing included content (duties, qualifications, how to apply). It distinguishes from sibling tools like search_jobs (list) and compare_jobs (comparison) by specifying 'full details' for one job.

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 when a specific job_id is available and full details are needed. While it doesn't explicitly list when not to use or name alternatives, the context of siblings (search_jobs, find_matching_jobs) makes the intended use clear.

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

save_cvA

Save your CV text locally for automatic use in job matching and qualification checks. The CV is stored only on your machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOriginal format of the CV: "pdf", "txt", or "md" (default: "txt")
contentYesCV text content

TDQS

A4/5.0
Behavior3/5

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

Discloses that the CV is stored only on the user's machine, which adds privacy context. However, without annotations, it does not mention whether saving overwrites an existing CV or describe error conditions, leaving some 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.

Conciseness5/5

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

Two concise sentences that front-load the core purpose and key constraint (local storage). Every word serves a purpose, no fluff.

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 tool with two parameters and no output schema, the description covers the main points. Could mention overwrite behavior but overall adequate.

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 the schema already explains both parameters. The description adds no additional detail beyond the schema, meeting baseline but not exceeding it.

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?

Clearly states the verb 'Save', resource 'your CV text', location 'locally', and purpose 'for automatic use in job matching and qualification checks'. Distinguishes from siblings like get_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?

Implies use when needing to store a CV for subsequent operations. Does not explicitly state when not to use or provide alternatives, but the context is clear and siblings offer retrieval or qualification checks.

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

search_jobsA

Search federal job openings on USAJobs. All parameters are optional. Returns job listings with title, agency, salary, location, and apply URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
gradeNoGS grade, e.g. "13" or "13:14" for range
agencyNoAgency name, e.g. "Department of Defense"
remoteNoOnly show remote positions
keywordNoSearch keyword, e.g. "software developer"
locationNoJob location, e.g. "Raleigh, NC"
salary_minNoMinimum salary, e.g. 80000
hiring_pathNoHiring path: "public", "fed-transition", etc.
who_may_applyNoWho may apply: "All", "Public", etc.
results_per_pageNoNumber of results (default: 25, max: 500)
security_clearanceNoSecurity clearance: "Not Required", "Secret", "Top Secret", "TS/SCI"

TDQS

A4/5.0
Behavior4/5

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

Describes return fields (title, agency, salary, location, apply URL). No annotations provided; description carries full burden. Does not mention rate limits or data freshness, but is fairly transparent for a search 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?

Two concise sentences with front-loaded purpose. Every sentence adds value with no redundancy.

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?

Adequate for a search tool with 10 parameters, all described in schema. Could mention pagination or relationship to find_matching_jobs, but still complete enough for effective use.

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 parameters are already well-documented. The description adds only that all parameters are optional. No additional meaning 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?

The description clearly states the tool searches federal job openings on USAJobs, with all parameters optional. It sets it apart from siblings like compare_jobs or get_job_details.

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?

No explicit when-to-use or when-not-to-use guidance relative to siblings such as find_matching_jobs. Only states all parameters are optional, which is helpful but insufficient for differentiating between similar search-like tools.

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. 10 tool updatesv0.1.9
    • First observedcalculate_salary
    • First observedcheck_qualification
    • First observedcompare_jobs
    • First observedexplain_federal_concept
    • First observedextract_ksa
    • First observedfind_matching_jobs
    • First observedget_cv
    • First observedget_job_details
    • First observedsave_cv
    • First observedsearch_jobs

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: salary calculation, CV management, job search, comparison, qualification checking, KSA extraction, and concept explanation. No two tools do the same thing, and even related tools like 'check_qualification' and 'extract_ksa' serve different functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., calculate_salary, save_cv, search_jobs). The verbs are specific and accurately describe the action, making the set predictable and easy to navigate.

Tool Count5/5

With 10 tools, the server is well-scoped for its purpose of federal career assistance. Each tool addresses a specific need without redundancy or unnecessary complexity, covering salary, CV, job search, comparison, and qualification tasks.

Completeness4/5

The tool set covers core federal career tasks thoroughly: CV management (save, get), job search and details, salary calculation, qualification checks, and concept explanations. Minor gaps exist, such as the absence of tools for updating or deleting a CV, but these are not critical for basic workflow.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that enables searching for jobs across Australian platforms (Seek and LinkedIn) from Claude or any MCP-compatible client, with filters for location, salary, employment type, and more.
    1
    4
    -
  • F
    license
    B
    quality
    D
    maintenance
    An MCP server for interacting with the USAspending.gov API, supporting local use with Claude Desktop and cloud deployment with login.gov authentication.
    3
    10
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    A local MCP server that connects the Globick activities API to Claude Desktop, enabling natural language search and filtering of the activities catalogue.
    -