Back to Directory/Testing & Quality

Test Intel

Coverage analysis, untested function detection and complexity scoring for TS and JS.

Testing & QualityJavaScriptv0.8.1

test-intel-mcp

Turn 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.

Tool page · npm · Listed in the official MCP Registry

test-intel-mcp analyzing real p-limit coverage

Start in one minute

Add one local server entry to any stdio-compatible MCP client:

{
  "mcpServers": {
    "test-intel": {
      "command": "npx",
      "args": ["-y", "@barissozudogru/test-intel-mcp"]
    }
  }
}

Then ask the client to inspect an existing coverage file:

Use test-intel to analyze coverage/lcov.info, identify the highest-impact gaps,
and suggest tests for the most complex uncovered function.

No account, API key, or hosted service is required. File access is restricted to the directory where the server starts.

Proof on this repository

Running the complexity tool against the real src/paths.ts file produces:

Function complexity analysis for: src/paths.ts
Total functions analyzed: 1

Priority | Function        | Line | Cyclomatic | Branches | Loops
---------|-----------------|------|------------|----------|------
low      | deriveTestPaths | 11   | 3          | 1        | 1

Summary: 0 critical, 0 high, 0 medium, 1 low priority

The same server reads lcov, Istanbul JSON, and Cobertura files to surface uncovered functions, lines, and branches.

A pinned p-limit 7.3.1 case study reproduces coverage from the upstream project's 22 passing tests. test-intel-report reduces its lcov artifact to two uncovered lines and one uncovered branch while preserving the original coverage file for inspection.

If this saves you time, consider starring the repository. It helps other developers find it.

Tools

ToolWhat it answers
analyze_test_coverageWhich files, functions, lines, and branches remain uncovered?
find_untested_functionsWhich source functions have no corresponding test file?
get_function_complexityWhich functions deserve testing attention first?
suggest_test_casesWhich happy path, boundary, error, async, and type cases should be reviewed?

Supported coverage formats:

FormatCommon producers
lcovJest, Vitest, nyc, Istanbul
Istanbul JSONJest, nyc, Istanbul
Cobertura XMLJest, pytest-cov, JaCoCo

Heuristic source-to-test matching and complexity scores are prioritization signals. Native coverage data and human review remain the source of truth.

Coverage report command

The package also includes a non-MCP command for CI and terminal use:

npx -y -p @barissozudogru/test-intel-mcp test-intel-report coverage/lcov.info

An explicit format can be supplied when the filename is ambiguous:

test-intel-report coverage/result.xml cobertura

GitHub Action

Generate coverage with the project's own test runner, then pass the resulting artifact to the action:

name: Test priorities

on: [pull_request]

jobs:
  test-intel:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v4
      - name: Run tests with coverage
        run: npm ci && npm test -- --coverage
      - uses: barissozudogru/test-intel-mcp@v0.8.1
        with:
          coverage-path: coverage/lcov.info

The report is written to the workflow summary. The action analyzes an artifact that already exists and does not upload source or coverage data.

Client setup

Claude Desktop, Cursor, Windsurf, Cline, and similar clients

Use the stdio configuration from the quickstart. Config file locations differ by client, but the server entry is the same:

{
  "mcpServers": {
    "test-intel": {
      "command": "npx",
      "args": ["-y", "@barissozudogru/test-intel-mcp"]
    }
  }
}
VS Code with Copilot

Create .vscode/mcp.json:

{
  "servers": {
    "test-intel": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@barissozudogru/test-intel-mcp"]
    }
  }
}
Streamable HTTP

Start the local endpoint:

npx @barissozudogru/test-intel-mcp --http

The MCP endpoint is http://localhost:3000/mcp and the health endpoint is http://localhost:3000/health. Set PORT to use another port.

Docker
docker build -t test-intel-mcp .
docker run -p 3000:3000 -v "$(pwd):/project" -w /project test-intel-mcp

Connect an HTTP client to http://localhost:3000/mcp.

Local development

npm install
npm test
npm run build
node dist/index.js

Requirements: Node.js 18 or newer.

See CONTRIBUTING.md for the development workflow.

Security and limits

  • Analysis runs locally and does not require network access.
  • Paths outside the server's starting directory are rejected.
  • Function discovery, source-to-test matching, and complexity scoring are heuristic.
  • A missing matching test filename does not prove a function is behaviorally untested.

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @barissozudogru/test-intel-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-barissozudogru-test-intel": {
      "command": "npx",
      "args": [
        "-y",
        "@barissozudogru/test-intel-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@barissozudogru/test-intel-mcpnpm

Compatible MCP Clients

Test Intel works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More