Metadata-Version: 2.4
Name: nmdc-mcp
Version: 0.5.0
Summary: FastMCP-based tool for writing prompts against data in the NMDC (National Microbiome Data Collaborative) database
Project-URL: Homepage, https://github.com/microbiomedata/nmdc-mcp
Project-URL: Repository, https://github.com/microbiomedata/nmdc-mcp
Project-URL: Bug Tracker, https://github.com/microbiomedata/nmdc-mcp/issues
Project-URL: Documentation, https://github.com/microbiomedata/nmdc-mcp/blob/main/README.md
Project-URL: Changelog, https://github.com/microbiomedata/nmdc-mcp/releases
Author-email: Chris Mungall <cjmungall@lbl.gov>, Mark Andrew Miller <MAM@lbl.gov>, Sujay Patil <spatil@lbl.gov>
License: MIT
Keywords: biosamples,fastmcp,mcp,microbiome,model-context-protocol,nmdc
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: fastmcp>=2.7.1
Requires-Dist: requests>=2.32.4
Description-Content-Type: text/markdown

# NMDC MCP

A fastmcp-based tool for writing prompts against data in the NMDC database.

## Installation

You can install the package from source using uv:

```bash
uv sync
```

## Usage

You can use the CLI:

```bash
nmdc-mcp
```

Or import in your Python code:

```python
from nmdc_mcp.main import create_mcp

mcp = create_mcp()
mcp.run()
```

## Development

### Local Setup

```bash
# Clone the repository
git clone https://github.com/microbiomedata/nmdc-mcp.git
cd nmdc-mcp

# Install development dependencies
make dev
```

### Development Workflow

The project uses a comprehensive Makefile for development tasks:

```bash
# Run all development checks (tests, formatting, linting, type checking)
make all

# Individual commands
make dev           # Install development dependencies
make test-coverage # Run tests with coverage
make format        # Format code with black
make lint          # Lint with ruff
make mypy          # Type checking
make deptry        # Check for unused dependencies
make build         # Build package
```

### Testing

```bash
# Run all tests with coverage
make test-coverage

# Run specific test types
make test-unit         # Unit tests only
make test-integration  # Integration tests
make test-real-api     # Tests against real NMDC API
make test-mcp          # Test MCP protocol
```

### MCP Integration

#### Claude Desktop Setup
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "nmdc-mcp": {
      "command": "uvx",
      "args": ["nmdc-mcp"]
    }
  }
}
```

#### Claude Code MCP Setup
```bash
claude mcp add -s project nmdc-mcp uvx nmdc-mcp
```

#### Goose Setup
```bash
goose session --with-extension "uvx nmdc-mcp"
```

## License

MIT