{
  "markdown": "<p align=\"center\">\n  <img src=\"./assets/banner-test-intel.svg\" alt=\"test-intel-mcp\" width=\"888\" />\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@barissozudogru/test-intel-mcp\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/@barissozudogru/test-intel-mcp?style=flat-square&color=06B6D4\"></a>\n  <a href=\"https://www.npmjs.com/package/@barissozudogru/test-intel-mcp\"><img alt=\"npm downloads\" src=\"https://img.shields.io/npm/dm/@barissozudogru/test-intel-mcp?style=flat-square&color=06B6D4\"></a>\n  <a href=\"https://github.com/barissozudogru/test-intel-mcp/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/barissozudogru/test-intel-mcp/actions/workflows/ci.yml/badge.svg\"></a>\n  <a href=\"https://registry.modelcontextprotocol.io/v0.1/servers/io.github.barissozudogru%2Ftest-intel/versions/latest\"><img alt=\"MCP Registry\" src=\"https://img.shields.io/badge/MCP_Registry-listed-0F172A?style=flat-square\"></a>\n  <a href=\"./LICENSE\"><img alt=\"MIT license\" src=\"https://img.shields.io/badge/License-MIT-06B6D4?style=flat-square\"></a>\n</p>\n\n# test-intel-mcp\n\nTurn JavaScript and TypeScript coverage artifacts into practical test priorities. The server reads local coverage and source files, identifies gaps, scores function complexity, and suggests focused test cases without sending code to an external service.\n\n[Tool page](https://petri-labs.org/tools/test-intel-mcp/) · [npm](https://www.npmjs.com/package/@barissozudogru/test-intel-mcp) · Listed in the official [MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.barissozudogru%2Ftest-intel/versions/latest)\n\n![test-intel-mcp analyzing real p-limit coverage](./assets/demo.gif)\n\n## Start in one minute\n\nAdd one local server entry to any stdio-compatible MCP client:\n\n```json\n{\n  \"mcpServers\": {\n    \"test-intel\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@barissozudogru/test-intel-mcp\"]\n    }\n  }\n}\n```\n\nThen ask the client to inspect an existing coverage file:\n\n```text\nUse test-intel to analyze coverage/lcov.info, identify the highest-impact gaps,\nand suggest tests for the most complex uncovered function.\n```\n\nNo account, API key, or hosted service is required. File access is restricted to the directory where the server starts.\n\n## Proof on this repository\n\nRunning the complexity tool against the real `src/paths.ts` file produces:\n\n```text\nFunction complexity analysis for: src/paths.ts\nTotal functions analyzed: 1\n\nPriority | Function        | Line | Cyclomatic | Branches | Loops\n---------|-----------------|------|------------|----------|------\nlow      | deriveTestPaths | 11   | 3          | 1        | 1\n\nSummary: 0 critical, 0 high, 0 medium, 1 low priority\n```\n\nThe same server reads lcov, Istanbul JSON, and Cobertura files to surface uncovered functions, lines, and branches.\n\nA pinned [p-limit 7.3.1 case study](./evidence/p-limit-7.3.1/) reproduces\ncoverage from the upstream project's 22 passing tests. `test-intel-report`\nreduces its lcov artifact to two uncovered lines and one uncovered branch while\npreserving the original coverage file for inspection.\n\nIf this saves you time, consider [starring the repository](https://github.com/barissozudogru/test-intel-mcp). It helps other developers find it.\n\n## Tools\n\n| Tool | What it answers |\n|---|---|\n| `analyze_test_coverage` | Which files, functions, lines, and branches remain uncovered? |\n| `find_untested_functions` | Which source functions have no corresponding test file? |\n| `get_function_complexity` | Which functions deserve testing attention first? |\n| `suggest_test_cases` | Which happy path, boundary, error, async, and type cases should be reviewed? |\n\nSupported coverage formats:\n\n| Format | Common producers |\n|---|---|\n| lcov | Jest, Vitest, nyc, Istanbul |\n| Istanbul JSON | Jest, nyc, Istanbul |\n| Cobertura XML | Jest, pytest-cov, JaCoCo |\n\nHeuristic source-to-test matching and complexity scores are prioritization signals. Native coverage data and human review remain the source of truth.\n\n## Coverage report command\n\nThe package also includes a non-MCP command for CI and terminal use:\n\n```bash\nnpx -y -p @barissozudogru/test-intel-mcp test-intel-report coverage/lcov.info\n```\n\nAn explicit format can be supplied when the filename is ambiguous:\n\n```bash\ntest-intel-report coverage/result.xml cobertura\n```\n\n## GitHub Action\n\nGenerate coverage with the project's own test runner, then pass the resulting artifact to the action:\n\n```yaml\nname: Test priorities\n\non: [pull_request]\n\njobs:\n  test-intel:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n    steps:\n      - uses: actions/checkout@v4\n      - name: Run tests with coverage\n        run: npm ci && npm test -- --coverage\n      - uses: barissozudogru/test-intel-mcp@v0.8.1\n        with:\n          coverage-path: coverage/lcov.info\n```\n\nThe report is written to the workflow summary. The action analyzes an artifact that already exists and does not upload source or coverage data.\n\n## Client setup\n\n<details>\n<summary>Claude Desktop, Cursor, Windsurf, Cline, and similar clients</summary>\n\nUse the stdio configuration from the quickstart. Config file locations differ by client, but the server entry is the same:\n\n```json\n{\n  \"mcpServers\": {\n    \"test-intel\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@barissozudogru/test-intel-mcp\"]\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>VS Code with Copilot</summary>\n\nCreate `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"test-intel\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@barissozudogru/test-intel-mcp\"]\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Streamable HTTP</summary>\n\nStart the local endpoint:\n\n```bash\nnpx @barissozudogru/test-intel-mcp --http\n```\n\nThe MCP endpoint is `http://localhost:3000/mcp` and the health endpoint is `http://localhost:3000/health`. Set `PORT` to use another port.\n\n</details>\n\n<details>\n<summary>Docker</summary>\n\n```bash\ndocker build -t test-intel-mcp .\ndocker run -p 3000:3000 -v \"$(pwd):/project\" -w /project test-intel-mcp\n```\n\nConnect an HTTP client to `http://localhost:3000/mcp`.\n\n</details>\n\n## Local development\n\n```bash\nnpm install\nnpm test\nnpm run build\nnode dist/index.js\n```\n\nRequirements: Node.js 18 or newer.\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for the development workflow.\n\n## Security and limits\n\n- Analysis runs locally and does not require network access.\n- Paths outside the server's starting directory are rejected.\n- Function discovery, source-to-test matching, and complexity scoring are heuristic.\n- A missing matching test filename does not prove a function is behaviorally untested.\n\n## License\n\n[MIT](./LICENSE)\n",
  "bytes": 6663,
  "sha": "ce1e86fb4ff0d9cd0389be906f731fefe91432ededc4699404249bba07522f0d",
  "repo_slug": "barissozudogru/test-intel-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_barissozudogru_test_intel_c87afc05/readme"
}