DeepBoner / docs /deployment /mcp-integration.md
Claude
docs: Add comprehensive documentation structure
59ce7b1 unverified
# MCP Integration Guide
> **Last Updated**: 2025-12-06
This guide covers setting up DeepBoner's MCP (Model Context Protocol) server for integration with Claude Desktop and other MCP clients.
## Overview
DeepBoner exposes an MCP server via Gradio's built-in support. This allows Claude Desktop and other MCP-compatible clients to use DeepBoner's search tools directly.
## MCP Server URL
When DeepBoner is running:
```
http://localhost:7860/gradio_api/mcp/
```
On HuggingFace Spaces:
```
https://mcp-1st-birthday-deepboner.hf.space/gradio_api/mcp/
```
## Available Tools
| Tool | Description |
|------|-------------|
| `search_pubmed` | Search peer-reviewed biomedical literature |
| `search_clinical_trials` | Search ClinicalTrials.gov for active/completed trials |
| `search_europepmc` | Search Europe PMC preprints and papers |
| `search_all_sources` | Search all sources simultaneously with deduplication |
### Tool Signatures
```python
def search_pubmed(query: str, max_results: int = 10) -> list[Evidence]:
"""Search PubMed for biomedical literature."""
def search_clinical_trials(query: str, max_results: int = 10) -> list[Evidence]:
"""Search ClinicalTrials.gov."""
def search_europepmc(query: str, max_results: int = 10) -> list[Evidence]:
"""Search Europe PMC."""
def search_all_sources(query: str, max_results_per_source: int = 10) -> SearchResult:
"""Search all sources with cross-source deduplication."""
```
## Claude Desktop Setup
### 1. Start DeepBoner
```bash
uv run python src/app.py
```
### 2. Configure Claude Desktop
Edit your Claude Desktop configuration:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
Add the MCP server:
```json
{
"mcpServers": {
"deepboner": {
"url": "http://localhost:7860/gradio_api/mcp/"
}
}
}
```
### 3. Restart Claude Desktop
Close and reopen Claude Desktop to load the new configuration.
### 4. Verify Connection
In Claude Desktop, you should see DeepBoner's tools available. Try:
```
Use the search_pubmed tool to find recent papers on testosterone therapy
```
## Using with HuggingFace Spaces
Point to the deployed Space:
```json
{
"mcpServers": {
"deepboner-cloud": {
"url": "https://mcp-1st-birthday-deepboner.hf.space/gradio_api/mcp/"
}
}
}
```
Note: HuggingFace Spaces may sleep after inactivity. The first request will wake the Space (30-60 second delay).
## Tool Implementation
Tools are defined in `src/mcp_tools.py`:
```python
def search_pubmed(query: str, max_results: int = 10) -> list[Evidence]:
"""Search PubMed for biomedical literature.
Args:
query: Search query for PubMed
max_results: Maximum number of results to return
Returns:
List of Evidence objects with citations
"""
tool = PubMedTool()
result = tool.search(query, max_results=max_results)
return result.evidence
```
## Adding New Tools
To expose additional tools via MCP:
1. Add the function to `src/mcp_tools.py`:
```python
def search_openalex(query: str, max_results: int = 10) -> list[Evidence]:
"""Search OpenAlex for scholarly metadata."""
tool = OpenAlexTool()
result = tool.search(query, max_results=max_results)
return result.evidence
```
2. Register in Gradio app (`src/app.py`):
The tools are automatically exposed via Gradio's MCP support when added to the interface.
## Troubleshooting
### Tools not appearing in Claude Desktop
1. Verify DeepBoner is running:
```bash
curl http://localhost:7860/gradio_api/mcp/
```
2. Check config syntax:
```bash
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python -m json.tool
```
3. Restart Claude Desktop
### Connection refused
- Check DeepBoner is running on port 7860
- Verify no firewall blocking
- Try accessing in browser: http://localhost:7860
### Slow responses
- First query loads ML models
- HuggingFace Space may need to wake up
- External APIs have rate limits
### Authentication errors
MCP server doesn't require authentication for local use. For production:
- Use API gateway
- Implement auth middleware
## Security Considerations
### Local Development
Local MCP server is accessible only from localhost by default.
### Production
For production deployments:
1. **Use HTTPS** - Enable TLS via reverse proxy
2. **Add authentication** - Consider API keys or OAuth
3. **Rate limit** - Prevent abuse
4. **Monitor** - Log tool usage
### Data Privacy
- Search queries are sent to external APIs (PubMed, etc.)
- Review external API privacy policies
- Don't expose sensitive research queries
## Protocol Details
### MCP Protocol Version
DeepBoner uses MCP protocol via Gradio 6.x integration.
### Request/Response Format
Requests follow the MCP specification:
```json
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_pubmed",
"arguments": {
"query": "testosterone therapy",
"max_results": 10
}
},
"id": 1
}
```
## Related Documentation
- [Docker Deployment](docker.md)
- [HuggingFace Spaces](huggingface-spaces.md)
- [Component Inventory](../architecture/component-inventory.md)