Skip to main content
Glama
shashankgupta0998

Developer Tools MCP Server

README.md
# Developer Tools MCP Server

An MCP (Model Context Protocol) server that provides developer-focused tools for searching packages, repositories, and coding Q&A — all using public APIs with no API keys required.

## Tools

### 1. `search_pypi`
Search PyPI for a Python package and get its name, description, latest version, and pip install command.

**Parameters:**
- `package_name` (str): The name of the package to search for (e.g. `"requests"`)

**Example response:**
```json
{
  "name": "requests",
  "description": "Python HTTP for Humans.",
  "latest_version": "2.31.0",
  "pip_install": "pip install requests"
}
```

### 2. `get_github_repo`
Fetch public info about a GitHub repository including stars, description, language, and last updated date.

**Parameters:**
- `owner` (str): The repository owner (e.g. `"pallets"`)
- `repo` (str): The repository name (e.g. `"flask"`)

**Example response:**
```json
{
  "full_name": "pallets/flask",
  "description": "The Python micro framework for building web applications.",
  "stars": 65000,
  "language": "Python",
  "last_updated": "2024-01-15T10:30:00Z",
  "open_issues": 5,
  "forks": 15000,
  "url": "https://github.com/pallets/flask"
}
```

### 3. `search_stackoverflow`
Search Stack Overflow for coding questions and return the top 3 results with titles, links, and scores.

**Parameters:**
- `query` (str): The search query (e.g. `"python async await"`)

**Example response:**
```json
{
  "query": "python async await",
  "result_count": 3,
  "results": [
    {
      "title": "How to use async/await in Python?",
      "link": "https://stackoverflow.com/questions/...",
      "score": 150,
      "answer_count": 5,
      "is_answered": true
    }
  ]
}
```

### 4. `check_package_compatibility`
Check if a Python package supports a specific Python version using PyPI classifier metadata.

**Parameters:**
- `package_name` (str): The package name (e.g. `"requests"`)
- `python_version` (str): The Python version to check (e.g. `"3.12"`)

**Example response:**
```json
{
  "package": "requests",
  "latest_version": "2.31.0",
  "python_version_checked": "3.12",
  "is_compatible": true,
  "supported_python_versions": ["3", "3.8", "3.9", "3.10", "3.11", "3.12"],
  "requires_python": ">=3.8",
  "compatibility_source": "classifiers"
}
```

## Setup

```bash
# Install dependencies
pip install -r requirements.txt

# Run the server directly
python mcp_server.py

# Run tests
pytest test_server.py -v
```

## Connect to Claude Desktop

Add the following to your Claude Desktop configuration file:

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "developer-tools": {
      "command": "python",
      "args": ["/absolute/path/to/mcp_server.py"]
    }
  }
}
```

Replace `/absolute/path/to/mcp_server.py` with the actual absolute path to the file.

After saving, restart Claude Desktop. The four tools will appear in the tools menu (hammer icon).

## Connect to Claude Code

Add to your Claude Code settings (`.claude/settings.json` or project-level):

```json
{
  "mcpServers": {
    "developer-tools": {
      "command": "python",
      "args": ["/absolute/path/to/mcp_server.py"]
    }
  }
}
```

Or use the CLI:

```bash
claude mcp add developer-tools python /absolute/path/to/mcp_server.py
```