mcp-repo-health
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-repo-healthScore /Users/me/projects/awesome-repo for repo hygiene"
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.
mcp-repo-health
MCP server that scores a local git repository the way a recruiter or ghfind-style scanner would: README substance, license, package description, TypeScript config, tests, and GitHub Actions.
It is meant to run inside Cursor / Claude / any MCP host over stdio. Scoring is deterministic and has no GitHub API dependency.
Why this exists
Public GitHub scores overweight empty demos and underweight complete local projects. This server lets an agent inspect a checkout and return a numbered hygiene report before you push.
Related MCP server: proof-of-commitment
Tools
Tool | Input | Output |
|
| Human report + JSON ( |
|
| Failing checks only |
Weights (100 points):
README ≥ 400 characters — 20
LICENSE file or
package.jsonlicense — 10package.jsondescription — 10.gitignore— 8tsconfig.json— 10Tests (
*.test.ts,*.spec.tsx,tests/) — 16.github/workflows/*.yml— 16src/,app/, orlib/— 10
Install
git clone https://github.com/ashwinmridul/mcp-repo-health.git
cd mcp-repo-health
npm install
npm test
npm run buildCursor MCP config
Add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"repo-health": {
"command": "node",
"args": ["/ABS/PATH/mcp-repo-health/dist/index.js"]
}
}
}Then ask the agent: “Score /Users/you/personal/mcp-workbench for repo hygiene.”
Development
npm run typecheck
npm test
npm run devnpm run dev speaks MCP on stdin/stdout, so run it from an MCP host, not a TTY.
License
MIT
Available Tools
2 toolslist_hygiene_gapsA
Return only the failing hygiene checks for a local repository.
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Absolute path to the repository root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states the tool returns only failing checks, which implies filtering behavior, but it does not disclose whether the tool performs any analysis, requires network access, or has side effects. The filtering behavior is a useful addition, but more context (e.g., what happens if no checks fail) would improve transparency.
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, front-loaded sentence with no wasted words. It immediately states the scope ('failing hygiene checks') and the target ('local repository'), making it easy to parse.
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?
For a simple tool with one parameter and no output schema, the description is mostly adequate. However, it does not explain what constitutes a 'hygiene check' or what the return format looks like, which could leave an agent uncertain about how to interpret the results. The sibling tool 'score_repo' suggests a broader context that is not fully addressed.
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 100%, so the schema already documents the 'root' parameter as an absolute path. The description adds no additional meaning beyond the schema, so the baseline 3 is appropriate.
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 specific verb ('Return') and resource ('failing hygiene checks for a local repository'), which clearly distinguishes it from the sibling tool 'score_repo'. It could be slightly more explicit about what 'hygiene checks' entails, but the core purpose is clear.
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 implies usage for a local repository and contrasts with 'score_repo' by focusing on failing checks rather than a score. However, it does not explicitly state when to prefer this tool over 'score_repo' or provide exclusions, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_repoB
Score a local repository for README, license, tests, TypeScript, and CI hygiene.
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Absolute path to the repository root |
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 states what the tool evaluates but doesn't disclose what 'score' means (e.g., numeric scale, pass/fail), whether it modifies anything (it likely doesn't, but that's not stated), what happens if the path is invalid, or what the output format is. For a read-only analysis tool, the lack of explicit non-destructive confirmation and output details is a gap.
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, efficient sentence that front-loads the action ('Score a local repository') and lists the evaluation criteria. Every word earns its place; no fluff or repetition.
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?
The tool has one parameter, no annotations, and no output schema. The description explains what is scored but not how the score is presented (e.g., numeric, categorical), what the return value looks like, or any edge cases (e.g., missing files, non-repository paths). For a tool that produces a score, the absence of output format details is a notable gap. The sibling tool 'list_hygiene_gaps' suggests a related workflow, but the description doesn't connect to it.
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 100%: the only parameter 'root' is described as 'Absolute path to the repository root'. The description adds the context that the repository is 'local' and what will be scored, but doesn't add meaning beyond the schema for the parameter itself. Baseline 3 is appropriate since the schema already documents the parameter fully.
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 the tool's function: scoring a local repository for specific hygiene criteria (README, license, tests, TypeScript, CI). It uses a specific verb ('score') and resource ('local repository'), and lists the dimensions evaluated. It doesn't explicitly distinguish from the sibling tool 'list_hygiene_gaps', but the verb 'score' implies a rating/assessment rather than listing gaps, which is a reasonable implicit distinction.
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 implies the tool is used when you want a hygiene score for a repository, but it doesn't explicitly state when to use this over 'list_hygiene_gaps'. The sibling tool name suggests an alternative for listing gaps, but the description doesn't mention it or provide selection criteria. The context is clear enough for a basic use case, but no explicit guidance is given.
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.
2 tool updates
v0.1.0- First observed
list_hygiene_gaps - First observed
score_repo
TDQS
Scored across 2 tools
The two tools are related but distinct: score_repo provides an overall health score, while list_hygiene_gaps returns only the failing checks. An agent could confuse them if it wants a summary versus details, but the descriptions clarify the difference.
Both tools use a verb_noun pattern (score_repo, list_hygiene_gaps), which is consistent. The second tool's noun phrase is more descriptive than the first, but the pattern is still predictable.
Two tools is on the thin side for a repository health server, but the scope is narrow and the two tools cover the core need. It feels slightly minimal but not unreasonable.
The server covers scoring and listing gaps, but lacks operations like getting detailed check results, generating reports, or fixing/ignoring specific hygiene issues. The core workflow is present, but there are notable gaps for a health-check domain.
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
Audit GitHub repos for malicious and supply-chain code before you depend on them.
Supply chain risk scoring for npm, PyPI, Cargo, and Go. 9 tools. Behavioral signals.
Detect malicious or vulnerable npm packages: registry search, OSV.dev and GitHub advisory lookups
GitHub project health, package dependency risk, trending repos, license & package comparison.
Related MCP Servers
- AlicenseAqualityAmaintenanceAudits local package folders to generate publish-readiness reports and previews of NPM tarball contents. It helps developers identify and resolve configuration issues like missing types or broken exports before releasing code.323MIT
- AlicenseAqualityBmaintenanceSupply chain risk scoring for npm, PyPI, and GitHub repos8477MIT
- AlicenseAqualityCmaintenanceValidates release hygiene in local repositories with network-free, read-only tools for checking repo structure, version alignment, and generating release checklists.3MIT
- AlicenseNot gradedqualityDmaintenanceScans codebases for TODOs, FIXMEs, code complexity, file stats, and dependencies, generating a health report with a letter grade. Zero configuration required.29MIT