hiringindex-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a distinct question: individual postings, aggregate market stats, single-post detail, and posting-age distribution. The overlap between search_jobs and job_market_insights is explicitly addressed in the descriptions, so an agent can reliably select the right tool.
Naming Consistency4/5Two tools use an imperative verb_noun pattern (search_jobs, get_job), while the other two use descriptive noun phrases (job_market_insights, posting_age_report). This is a minor convention split, but the names are still clear and the pattern is readable.
Tool Count5/5Four tools is well-scoped for a read-only job-market data server. Each tool covers a distinct and necessary operation without redundancy or bloat.
Completeness5/5For the stated domain of job posting search and market analysis, the surface is complete: search, detail retrieval, aggregate insights, and posting-age reporting cover the core workflows. No obvious dead ends or missing lifecycle steps exist for this read-only domain.
Average 4.2/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the call as read-only, idempotent, and open-world, so no safety disclosure is needed. The description adds useful behavioral context by naming exactly which statistics are returned and by framing the tool as a factual report ('reports the numbers rather than guessing'). It does not, however, describe edge cases like empty or unfiltered results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core metrics first and then provide rationale for the report. No filler or repetition; the description is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich 11-parameter schema and safety annotations, the description covers the essential output semantics even though there is no output schema. It names the computed metrics but does not specify output structure or behavior when no filters are supplied; these are minor gaps given the strong schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so the parameters are already well documented and the baseline is 3. The tool description only refers to 'a slice of postings' and does not add meaning to any specific parameter, but it also does not need to because the schema carries that weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: it computes an age profile ('median days since publication, share posted in the last week, and share still open after sixty days') for a filtered slice of postings. This is distinct from the sibling search/get tools and from general job_market_insights because it focuses specifically on how long postings have been open.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case ('a listing that has been open for months is the most commonly cited sign that a role is not being actively filled'), but it never explicitly states when to prefer this over siblings or when not to use it. There is no alternative guidance, so the agent must infer when this aggregate age report is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent, so the safety profile is covered. The description adds real value on top: live data sourced directly from ATSs, and conditional-field caveats — 'employer where the ATS publishes it', 'advertised salary where disclosed', 'apply link where the source carries one' — which warn the agent that fields are per-posting optional and not fully normalized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the action verb and scope are front-loaded, the ATS source list is high-value context, and the return-field enumeration earns its place since there is no output schema. Every sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no output schema, this is nearly complete: the description documents the response contract via its return-field list, the schema covers all parameters at 100%, and annotations cover safety and open-world behavior. Minor gaps remain — result ordering, pagination semantics, and default format behavior are not stated — but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description itself adds nothing about the 13 parameters; the schema already documents each one richly (3-character title minimum, hybrid not being a separate filter, board_handle ambiguity guidance, salary disclosure requirement). The description correctly defers to the schema here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb and resource ('Search live job postings') with concrete detail: ten named ATS sources and the exact return fields (title, employer, location, employment type, salary, posting date, apply link). This clearly positions it against siblings like get_job (single posting) and job_market_insights (market-level analysis) without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear scope ('live job postings read directly from ten applicant tracking systems') and enumerates what results contain, so when an agent wants a live posting search the choice is implied. However, it never names the siblings or states when NOT to use this tool — the selection guidance that does exist (titles vs keywords, board_handle for ambiguous names) lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and open-world. The description adds useful behavioral detail by specifying that the response includes the full description and application link, which is not visible in annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the essential purpose and key response contents. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool, the description plus annotations provide sufficient context. There is no output schema, but the description names the main fields returned. The optional format parameter's meaning is the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the required 'id' parameter is well-described, while 'format' has only an enum without explanation. The description adds little beyond the schema, only restating that retrieval is by id; it does not clarify the meaning or effect of the format parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('get'), a concrete resource ('single posting'), and the key selector ('by its id'). It also identifies what the returned detail includes, making the tool's distinct role clear relative to sibling 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 Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used after obtaining a posting id, and the schema reinforces that the id is 'returned by search_jobs.' It does not explicitly name alternatives or state when not to use the tool, but the context is clear enough for basic routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, and idempotent behavior. The description adds useful behavioral context: it returns aggregate market statistics rather than a list of postings, and its filters are identical to search_jobs. This is more than what annotations alone convey, though no deep caveats like rate limits or data freshness are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all informative. The output metrics are front-loaded, the filter equivalence is stated compactly, and the usage guidance is one clear sentence. No filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values, and it does enumerate the main metric categories. It could be more explicit about the shape of the response and how the format parameter affects it, but the listed dimensions give an agent a solid mental model of what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so the schema already explains individual parameters in detail. The description adds the cross-tool point that the tool accepts the same filters as search_jobs, which is helpful, but it does not need to repeat parameter-level semantics. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (aggregate/count) and a clear resource (slice of job postings), and enumerates the exact metrics returned: counts, salary percentiles, remote share, top employers, etc. It also distinguishes itself from paging through individual results, making the purpose obvious relative to siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this instead of paging through results when the question is about the market rather than individual roles. It also states that it accepts the same filters as search_jobs, giving clear routing guidance against the main sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md: