prospector-mcp
by athoune
README.md
# Prospector MCP Server
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that exposes [Prospector](https://github.com/prospector-dev/prospector) — the Python static analysis tool — through its **native Python API**.
## Features
- Run Prospector on a single file or an entire directory.
- Return structured, machine-readable results (messages with severity, location, rule code).
- Layered TOML configuration with sensible defaults.
- Supports both `stdio` and `SSE` transports via [FastMCP](https://github.com/jlowin/fastmcp).
- Secure by default: respects `.gitignore`, ignores `.env` / `.venv`, validates paths, enforces timeouts.
## Installation
### Via `uvx` (recommended)
```bash
uvx run prospector-mcp
```
### Via `pip`
```bash
pip install prospector-mcp
prospector-mcp
```
### Development setup
```bash
git clone https://github.com/yourname/prospector-mcp.git
cd prospector-mcp
pip install -e ".[dev]"
pytest
```
## Usage
### Claude Desktop / OpenCode
Add the server to your MCP settings:
```json
{
"mcpServers": {
"prospector": {
"command": "uvx",
"args": ["run", "prospector-mcp"]
}
}
}
```
### SSE transport
```bash
prospector-mcp --transport sse
# or
prospector-mcp --sse
```
## Configuration
Configuration is layered (later layers override earlier ones):
1. **Built-in defaults**
2. **Global config**: `~/.config/prospector-mcp/config.toml`
3. **Project config**: `.prospector-mcp.toml` in the project root
### Example `.prospector-mcp.toml`
```toml
[prospector]
timeout = 60
strictness = "medium"
profile = "default"
ignore = [".tox", "build", "dist"]
[server]
transport = "stdio"
```
## Tools
### `prospector.run`
Run Prospector on a target path.
**Parameters:**
- `target` (string, required): Path to a Python file or directory.
- `profile` (string, optional): Override the Prospector profile.
- `strictness` (string, optional): Override strictness (`verylow` to `veryhigh`).
**Returns:** Structured dict with `summary`, `messages`, and `execution_time`.
### `prospector.check_ready`
Check if Prospector is installed and available.
## License
MIT
TDQS
B3.4/5.0
Scored across 2 tools
Disambiguation5/5
The two tools have clearly distinct purposes: one runs the analysis, the other checks installation. No overlap.
Naming Consistency5/5
Both tools follow a consistent 'prospector_' prefix with a verb (run, check_ready). Clear and predictable pattern.
Tool Count3/5
Only 2 tools for a static analysis server feels minimal but not unreasonable if the scope is limited to running checks.
Completeness2/5
Missing common operations like listing rules, retrieving results, or configuring the analysis. Gaps are significant for a typical analysis workflow.
Maintenance
ActivitySlowing
ResponsivenessNo issues