# 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
Raw data
{
"_id": null,
"home_page": null,
"name": "nmdc-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "biosamples, fastmcp, mcp, microbiome, model-context-protocol, nmdc",
"author": null,
"author_email": "Chris Mungall <cjmungall@lbl.gov>, Mark Andrew Miller <MAM@lbl.gov>, Sujay Patil <spatil@lbl.gov>",
"download_url": "https://files.pythonhosted.org/packages/83/d4/6f5a93ca3e69f0aa13a91f550c3058890d28b24bb89235491d564e65a395/nmdc_mcp-0.3.0.tar.gz",
"platform": null,
"description": "# NMDC MCP\n\nA fastmcp-based tool for writing prompts against data in the NMDC database.\n\n## Installation\n\nYou can install the package from source using uv:\n\n```bash\nuv sync\n```\n\n## Usage\n\nYou can use the CLI:\n\n```bash\nnmdc-mcp\n```\n\nOr import in your Python code:\n\n```python\nfrom nmdc_mcp.main import create_mcp\n\nmcp = create_mcp()\nmcp.run()\n```\n\n## Development\n\n### Local Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/microbiomedata/nmdc-mcp.git\ncd nmdc-mcp\n\n# Install development dependencies\nmake dev\n```\n\n### Development Workflow\n\nThe project uses a comprehensive Makefile for development tasks:\n\n```bash\n# Run all development checks (tests, formatting, linting, type checking)\nmake all\n\n# Individual commands\nmake dev # Install development dependencies\nmake test-coverage # Run tests with coverage\nmake format # Format code with black\nmake lint # Lint with ruff\nmake mypy # Type checking\nmake deptry # Check for unused dependencies\nmake build # Build package\n```\n\n### Testing\n\n```bash\n# Run all tests with coverage\nmake test-coverage\n\n# Run specific test types\nmake test-unit # Unit tests only\nmake test-integration # Integration tests\nmake test-real-api # Tests against real NMDC API\nmake test-mcp # Test MCP protocol\n```\n\n### MCP Integration\n\n#### Claude Desktop Setup\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n```json\n{\n \"mcpServers\": {\n \"nmdc-mcp\": {\n \"command\": \"uvx\",\n \"args\": [\"nmdc-mcp\"]\n }\n }\n}\n```\n\n#### Claude Code MCP Setup\n```bash\nclaude mcp add -s project nmdc-mcp uvx nmdc-mcp\n```\n\n#### Goose Setup\n```bash\ngoose session --with-extension \"uvx nmdc-mcp\"\n```\n\n## License\n\nMIT",
"bugtrack_url": null,
"license": "MIT",
"summary": "FastMCP-based tool for writing prompts against data in the NMDC (National Microbiome Data Collaborative) database",
"version": "0.3.0",
"project_urls": {
"Bug Tracker": "https://github.com/microbiomedata/nmdc-mcp/issues",
"Changelog": "https://github.com/microbiomedata/nmdc-mcp/releases",
"Documentation": "https://github.com/microbiomedata/nmdc-mcp/blob/main/README.md",
"Homepage": "https://github.com/microbiomedata/nmdc-mcp",
"Repository": "https://github.com/microbiomedata/nmdc-mcp"
},
"split_keywords": [
"biosamples",
" fastmcp",
" mcp",
" microbiome",
" model-context-protocol",
" nmdc"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "86a258291ac0fe2137d41a8c4e32d3b995107ace749e2174ccdd14248e788a7d",
"md5": "1951d0dbb1e42b0b132bca31468cf33e",
"sha256": "e86fdf8e7d8439bd3df98f6a0660a5d98aac52af208a10a0b3f6f855c9ccc389"
},
"downloads": -1,
"filename": "nmdc_mcp-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1951d0dbb1e42b0b132bca31468cf33e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 15425,
"upload_time": "2025-07-11T21:28:31",
"upload_time_iso_8601": "2025-07-11T21:28:31.360666Z",
"url": "https://files.pythonhosted.org/packages/86/a2/58291ac0fe2137d41a8c4e32d3b995107ace749e2174ccdd14248e788a7d/nmdc_mcp-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "83d46f5a93ca3e69f0aa13a91f550c3058890d28b24bb89235491d564e65a395",
"md5": "8bfc7b50f7c445d695db2d148beeddc1",
"sha256": "25af091ccc1e45596f77f4aa04179ecb61dab51349114a4d587e0f28821c4742"
},
"downloads": -1,
"filename": "nmdc_mcp-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "8bfc7b50f7c445d695db2d148beeddc1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 61195,
"upload_time": "2025-07-11T21:28:32",
"upload_time_iso_8601": "2025-07-11T21:28:32.725429Z",
"url": "https://files.pythonhosted.org/packages/83/d4/6f5a93ca3e69f0aa13a91f550c3058890d28b24bb89235491d564e65a395/nmdc_mcp-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-11 21:28:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "microbiomedata",
"github_project": "nmdc-mcp",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nmdc-mcp"
}