mcp-servers (Six production-minded MCP servers)
Provides repository intelligence through public GitHub APIs, including read-only access to repository info, language, topics, README, CI, commits, issues, and code-search.
One typed model across public greenhouse job boards as part of the ats-jobs integration, enabling interaction with ATS job posting APIs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-servers (Six production-minded MCP servers)Evaluate this candidate's CV against the Senior ML Engineer job posting"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Six production-minded MCP servers
60-second quickstart
git clone https://github.com/prathamesh-git9/mcp-servers.git
cd mcp-servers
uv sync --all-packages --dev
uv run grounded-cv-eval
uv run pytest -qThat runs a real BM25 + dense + reciprocal-rank-fusion evaluation and the entire
socket-restricted test suite. Each server is directly runnable with uv run grounded-cv,
uv run repo-intel, uv run web-research, uv run ats-jobs,
uv run outcome-ledger, or uv run coding-workflows.
Related MCP server: open-computer-use
claude_desktop_config.json
Copy this complete block. uvx installs the two required workspace packages from
the public repository and caches the environment locally.
{
"mcpServers": {
"grounded-cv": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/grounded-cv",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"grounded-cv"
]
},
"repo-intel": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/repo-intel",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"repo-intel"
]
},
"web-research": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/web-research",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"web-research"
]
},
"ats-jobs": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/ats-jobs",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"ats-jobs"
]
},
"outcome-ledger": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/outcome-ledger",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"outcome-ledger"
]
},
"coding-workflows": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/coding-workflows",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"coding-workflows"
]
}
}
}.mcp.json
{
"mcpServers": {
"grounded-cv": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/grounded-cv",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"grounded-cv"
]
},
"repo-intel": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/repo-intel",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"repo-intel"
]
},
"web-research": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/web-research",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"web-research"
]
},
"ats-jobs": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/ats-jobs",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"ats-jobs"
]
},
"outcome-ledger": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/outcome-ledger",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"outcome-ledger"
]
},
"coding-workflows": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/coding-workflows",
"--with",
"git+https://github.com/prathamesh-git9/mcp-servers.git#subdirectory=packages/common",
"coding-workflows"
]
}
}
}Architecture
flowchart LR
C[Claude Desktop / MCP client] -->|JSON-RPC over stdio| G[grounded-cv]
C --> R[repo-intel]
C --> W[web-research]
C --> A[ats-jobs]
C --> O[outcome-ledger]
C --> CW[coding-workflows]
G --> H[BM25 + 384-D dense vectors + RRF]
G --> P[(Committed structured profile)]
R --> GH[Public GitHub REST API]
W --> RB[URL policy + robots.txt + extractor]
A --> ATS[Six public ATS APIs]
O --> SQ[(SQLite WAL / FULL sync)]
CW --> RC[Local repo structure + configured quality gates]
G & R & W & A & O & CW --> CORE["Shared typed failures, deadlines, redaction,<br/>rate limiting and cache"]The repository is a seven-package workspace: one small shared core and one independently installable package for each server. Every server exposes tools, resources, and at least one prompt over the official MCP Python SDK's stdio transport.
What a hiring manager can verify quickly
Server | One-line proof of work |
grounded-cv | Structured profile resources, genuine hybrid RAG, exact-span citations, and conservative claim verification. |
repo-intel | Read-only repository, language, topic, README, CI, commit, issue, and code-search intelligence through public GitHub APIs. |
web-research | Search plus main-content extraction with fail-closed robots checks, SSRF protection, redirect/size limits, and per-host pacing. |
ats-jobs | One typed model across public Greenhouse, Lever, Ashby, Workable, SmartRecruiters, and Recruitee boards. |
outcome-ledger | Durable deterministic idempotency keys and an honest |
coding-workflows | Unified-diff review, dependency-aware planning, bounded repo gates, traceback-to-file triage, and conventional commit synthesis. |
The complete machine-readable catalog is pinned at docs/manifest.json,
and the detailed protocol contract is in docs/API.md.
Grounded CV: demonstrable hybrid RAG
The corpus uses atomic evidence chunking: one independently verifiable fact per chunk, headings retained as metadata, no chunk crossing a section boundary. This makes every returned span independently citable and prevents a partially relevant paragraph from laundering an unsupported claim.
Two independent rankings run for every query:
Okapi BM25 over normalized terms and documented synonym expansion.
Cosine similarity over deterministic 384-dimensional dense feature-hash vectors built from words and character trigrams.
Reciprocal rank fusion combines both lists with RRF(k=60). The verifier then checks
claim-token coverage and numeric consistency against the retrieved spans. Supported
claims receive exact quotes; unsupported claims receive no citations.
Committed offline fixture, 10 queries, k=5:
Metric | Result |
recall@5 | 1.0000 |
MRR | 1.0000 |
nDCG@5 | 0.9920 |
Reproduce it with uv run grounded-cv-eval. The fixture is committed beside the profile,
and CI executes the same harness assertions without downloading a model or calling a
network service.
Trust and failure contract
Every tool has generated input and structured output JSON Schemas backed by Pydantic v2.
Every call has both an MCP-level deadline and an upstream HTTP timeout.
Public upstream failures become typed values (
timeout,blocked,not_found,rate_limited,upstream_error,parse_error, and others); low-level exceptions never cross a tool boundary.GitHub, web, and ATS text is explicitly marked
content_is_untrusted; prompts instruct clients not to execute instructions found inside it.Coding diffs, tracebacks, repository text, and gate output are untrusted. Quality gates use shell-free argv execution, credential-reduced environments, and hard deadlines; configured package-manager scripts should run only in repositories the caller trusts.
URL credentials, private networks, authenticated scraping, mutation APIs, and secret-shaped ledger fields are rejected. Optional
GITHUB_TOKENimproves GitHub rate limits but is never returned or logged.Tests run with outbound sockets disabled except loopback, require no keys, and use protocol clients plus committed provider fixtures.
The contract suite drives servers from
docs/manifest.json, and a discovery test derives the server list frompackages/on disk and fails when the two disagree. A server added without being declared would otherwise be skipped by every guard above while the suite still reported success.
Development
uv sync --all-packages --dev
uv run ruff check .
uv run ruff format --check .
uv run pytestCI runs those three gates on Python 3.11, 3.12, and 3.13. Licensed under MIT.
Available Tools
2 toolslookupC
Retrieve CV evidence with BM25+dense reciprocal-rank fusion.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| topic | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| hits | No | |
| query | Yes | |
| status | Yes | |
| failure | No | |
| sources | No | |
| retrieval | No | |
| duration_ms | Yes | |
| content_is_untrusted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the retrieval method (BM25+dense reciprocal-rank fusion) but does not state whether the operation is read-only, what side effects or requirements exist (e.g., permissions, rate limits), or the nature of the output. The word 'Retrieve' implies read-only, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action. It avoids unnecessary filler, and each word contributes to conveying the purpose, though the technical detail might be considered slightly niche.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters) and presence of an output schema, the description technically covers the basic retrieval action. However, it lacks crucial context such as usage guidance relative to the sibling tool and explicit safety disclosure (since no annotations exist), making it incomplete for an agent to fully understand the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation of the parameters ('topic' and 'limit'). While the schema defines types and constraints, the description does not clarify what 'topic' means in the context of CV evidence or how 'limit' affects results, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Retrieve CV evidence') and identifies the resource (evidence). It distinguishes from the sibling tool 'verify_claim' by focusing on retrieval rather than verification, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus 'verify_claim' or any other alternative. It does not state prerequisites, exclusions, or typical use cases beyond the basic action of retrieval, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_claimC
Verify claims and attach exact spans to each supported one.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes | |
| status | Yes | |
| failure | No | |
| sources | No | |
| assessments | No | |
| duration_ms | Yes | |
| content_is_untrusted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'attach exact spans', hinting at an output behavior, but does not disclose whether the operation is read-only, whether external systems are involved, or what happens when claims are unsupported (e.g., are they ignored or flagged?). This is insufficient for a tool that likely performs an analysis task.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler words. It is front-loaded with the main verb and noun. However, its brevity contributes to under-specification; while structurally clean, it omits crucial detail that would make the content value-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return value structure is covered, but the description still lacks operational context. It does not explain what 'supported' means, how claims are identified, whether multiple claims are handled, or the relationship with 'lookup'. Given the tool's potential complexity (verification and span attachment), the description is incomplete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes 'text' only by type and length constraints, and schema description coverage is 0%. The description does not mention the parameter at all, leaving the meaning of 'text' completely ambiguous. The description should explain what kind of text is expected (e.g., a document, a sentence, a claim list) and how it is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('verify') and a specific target ('claims') with a distinctive outcome ('attach exact spans'). It distinguishes from the sibling 'lookup' by focusing on verification rather than retrieval, though 'claims' and 'supported one' remain somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the sibling 'lookup'. There is no mention of prerequisites, typical input cases, or exclusions. The description implies a verification/annotation use-case but does not explicitly state it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
lookup - First observed
verify_claim
TDQS
The two tools have clearly distinct purposes: lookup retrieves evidence, while verify_claim checks claims against that evidence. There is no ambiguity or overlap in their roles.
Both tool names are imperative verbs, but 'lookup' is a single word while 'verify_claim' follows a verb_noun pattern. This is a minor deviation, and the names are still predictable and readable.
With only two tools, the set feels slightly thin for a production-oriented server. However, the narrow scope of evidence retrieval and verification may justify the small number, making it borderline appropriate.
The two tools form a logical pipeline: retrieve evidence first, then verify claims against it. Minor gaps might exist, such as a way to browse or filter evidence sources, but the core workflow appears covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Agent-first task marketplace MCP — discover, claim, and deliver paid workspace tasks.
- OctopadOAuthapp.octopad
The back-office workspace for your team's AIs: tasks, knowledge and context shared over MCP.
Work management where AI agents are first-class members: tasks, projects, memory over hosted MCP
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.62MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that gives any LLM a managed Docker workspace with live browser, terminal, code execution, document skills, and autonomous sub-agents.1,628118MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to execute real-world actions through 10 specialized engines covering authenticated API calls, browser automation, visual QA, shell commands, file operations, job scraping, and parallel task execution.-
- AlicenseNot gradedqualityBmaintenanceMulti-agent AI orchestrator that runs parallel coding agents in isolated sessions with self-improving intelligence, exposed via an MCP server for task execution and management.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/prathamesh-git9/mcp-servers'
If you have feedback or need assistance with the MCP directory API, please join our Discord server