SureChEMBL MCP Server

# Unofficial SureChEMBL MCP Server
A comprehensive Model Context Protocol (MCP) server for accessing the SureChEMBL chemical patent database. This server provides tools for patent search, chemical discovery, structure analysis, and patent intelligence research.
**Developed by [Augmented Nature](https://augmentednature.ai)**
## Overview
SureChEMBL is a large-scale chemical patent database that provides access to chemical structures and their associated patent documents. This MCP server enables seamless integration with SureChEMBL's API, offering powerful tools for:
- **Patent Intelligence**: Search and analyze chemical patents
- **Chemical Discovery**: Find compounds and their patent coverage
- **Prior Art Research**: Identify existing chemical disclosures
- **Competitive Analysis**: Track chemical developments by companies
- **Structure-Activity Analysis**: Correlate chemical structures with patent claims
## Features
### ๐ Document & Patent Search (4 tools)
- `search_patents` - Search patents by text, keywords, or identifiers
- `get_document_content` - Get complete patent document content with chemical annotations
- `get_patent_family` - Get patent family members and relationships
- `search_by_patent_number` - Search by specific patent numbers
### ๐งช Chemical Search & Retrieval (4 tools)
- `search_chemicals_by_name` - Search chemicals by name or synonym
- `get_chemical_by_id` - Get detailed chemical information by SureChEMBL ID
- `search_by_smiles` - Search chemicals by SMILES structure notation
- `search_by_inchi` - Search chemicals by InChI/InChI key
### ๐ผ๏ธ Structure & Visualization (2 tools)
- `get_chemical_image` - Generate chemical structure images
- `get_chemical_properties` - Get molecular properties and descriptors
### ๐ Data Export & Analysis (2 tools)
- `export_chemicals` - Bulk export chemical data (CSV/XML)
- `analyze_patent_chemistry` - Analyze chemical content in patents
### ๐ฌ Advanced Analysis Tools (3 tools)
- `get_chemical_frequency` - Get frequency statistics for chemicals across patent database
- `search_similar_structures` - Find structurally similar chemicals using similarity search
- `get_patent_statistics` - Get statistical overview of chemical content in patents
### ๐ Resource Templates
- `surechembl://document/{doc_id}` - Patent document content
- `surechembl://chemical/{chem_id}` - Chemical compound data
- `surechembl://family/{patent_id}` - Patent family information
- `surechembl://search/{query}` - Search results
## Installation
### Prerequisites
- Node.js 18+
- npm or yarn
### Install Dependencies
```bash
npm install
```
### Build the Server
```bash
npm run build
```
### Development Mode
```bash
npm run watch
```
## Usage
### Running the Server
```bash
npm start
```
### Using with Claude Desktop
Add to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"surechembl-server": {
"command": "node",
"args": ["/path/to/surechembl-server/build/index.js"]
}
}
}
```
### Using with MCP Inspector
```bash
npm run inspector
```
## API Examples
### Search for Chemicals by Name
```typescript
// Search for aspirin-related compounds
await use_mcp_tool({
server_name: "surechembl-server",
tool_name: "search_chemicals_by_name",
arguments: {
name: "aspirin",
limit: 10,
},
});
```
### Get Patent Document Content
```typescript
// Get full patent document with chemical annotations
await use_mcp_tool({
server_name: "surechembl-server",
tool_name: "get_document_content",
arguments: {
document_id: "WO-2020096695-A1",
},
});
```
### Generate Chemical Structure Image
```typescript
// Generate structure image from SMILES
await use_mcp_tool({
server_name: "surechembl-server",
tool_name: "get_chemical_image",
arguments: {
structure: "CC(=O)OC1=CC=CC=C1C(=O)O",
width: 300,
height: 200,
},
});
```
### Analyze Patent Chemistry
```typescript
// Analyze chemical annotations in a patent
await use_mcp_tool({
server_name: "surechembl-server",
tool_name: "analyze_patent_chemistry",
arguments: {
document_id: "US-2021123456-A1",
},
});
```
## Tool Reference
### Document & Patent Search
#### `search_patents`
Search patents by text, keywords, or identifiers.
**Parameters:**
- `query` (string, required): Search query
- `limit` (number, optional): Results limit (1-1000, default: 25)
- `offset` (number, optional): Results offset (default: 0)
#### `get_document_content`
Get complete patent document content with chemical annotations.
**Parameters:**
- `document_id` (string, required): Patent document ID (e.g., WO-2020096695-A1)
#### `get_patent_family`
Get patent family members and relationships.
**Parameters:**
- `patent_id` (string, required): Patent ID to find family members for
#### `search_by_patent_number`
Search for patents by specific patent numbers.
**Parameters:**
- `patent_number` (string, required): Patent or publication number
### Chemical Search & Retrieval
#### `search_chemicals_by_name`
Search for chemicals by name, synonym, or common name.
**Parameters:**
- `name` (string, required): Chemical name or synonym
- `limit` (number, optional): Results limit (1-1000, default: 25)
#### `get_chemical_by_id`
Get detailed chemical information by SureChEMBL chemical ID.
**Parameters:**
- `chemical_id` (string, required): SureChEMBL chemical ID (numeric)
#### `search_by_smiles`
Search for chemicals by SMILES structure notation.
**Parameters:**
- `smiles` (string, required): SMILES string
- `limit` (number, optional): Results limit (1-1000, default: 25)
#### `search_by_inchi`
Search for chemicals by InChI or InChI key.
**Parameters:**
- `inchi` (string, required): InChI string or InChI key
- `limit` (number, optional): Results limit (1-1000, default: 25)
### Structure & Visualization
#### `get_chemical_image`
Generate chemical structure image from SMILES or other structure notation.
**Parameters:**
- `structure` (string, required): SMILES string or structure notation
- `height` (number, optional): Image height in pixels (default: 200)
- `width` (number, optional): Image width in pixels (default: 200)
#### `get_chemical_properties`
Get molecular properties and descriptors for a chemical.
**Parameters:**
- `chemical_id` (string, required): SureChEMBL chemical ID
### Data Export & Analysis
#### `export_chemicals`
Bulk export chemical data in CSV or XML format.
**Parameters:**
- `chemical_ids` (array, required): Array of SureChEMBL chemical IDs (1-100)
- `output_type` (string, optional): Export format - 'csv' or 'xml' (default: csv)
- `kind` (string, optional): ID type - 'cid' or 'smiles' (default: cid)
#### `analyze_patent_chemistry`
Analyze chemical content and annotations in a patent document.
**Parameters:**
- `document_id` (string, required): Patent document ID to analyze
### Advanced Analysis Tools
#### `get_chemical_frequency`
Get frequency statistics for chemicals across the patent database.
**Parameters:**
- `chemical_id` (string, required): SureChEMBL chemical ID
#### `search_similar_structures`
Find structurally similar chemicals using similarity search.
**Parameters:**
- `reference_id` (string, required): Reference chemical ID for similarity search
- `threshold` (number, optional): Similarity threshold (0.0-1.0, default: 0.7)
- `limit` (number, optional): Number of results to return (1-100, default: 25)
#### `get_patent_statistics`
Get statistical overview of chemical content in patents.
**Parameters:**
- `document_id` (string, required): Patent document ID for statistics
- `include_annotations` (boolean, optional): Include detailed annotation statistics (default: true)
## Resource Templates
### Document Resource
```
surechembl://document/{doc_id}
```
Access complete patent document content with chemical annotations.
### Chemical Resource
```
surechembl://chemical/{chem_id}
```
Access chemical compound information and properties.
### Patent Family Resource
```
surechembl://family/{patent_id}
```
Access patent family members and relationships.
### Search Resource
```
surechembl://search/{query}
```
Access chemical search results for a query.
## Error Handling
The server includes comprehensive error handling for:
- Invalid API parameters
- Network timeouts and connection issues
- API rate limiting
- Malformed chemical structures
- Missing documents or chemicals
All errors are returned with descriptive messages and appropriate error codes.
## Rate Limiting
The server respects SureChEMBL's API rate limits:
- 30-second timeout for complex requests
- Respectful request spacing
- Automatic retry logic for transient failures
## Development
### Project Structure
```
surechembl-server/
โโโ src/
โ โโโ index.ts # Main server implementation
โโโ build/ # Compiled JavaScript
โโโ package.json # Dependencies and scripts
โโโ tsconfig.json # TypeScript configuration
โโโ README.md # This file
```
### Available Scripts
- `npm run build` - Compile TypeScript to JavaScript
- `npm run watch` - Watch mode for development
- `npm run inspector` - Run MCP inspector
- `npm start` - Start the server
- `npm run dev` - Development mode with watch
### Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## License
MIT License - see LICENSE file for details.
## Support
For issues and questions:
- GitHub Issues: [Report bugs and feature requests](https://github.com/augmented-nature/surechembl-mcp-server/issues)
- Documentation: [SureChEMBL API Documentation](https://www.surechembl.org/api/)
## Related Projects
- [ChEMBL MCP Server](https://github.com/augmented-nature/chembl-mcp-server) - ChEMBL bioactivity database
- [PubChem MCP Server](https://github.com/augmented-nature/pubchem-mcp-server) - PubChem chemical database
- [UniProt MCP Server](https://github.com/augmented-nature/uniprot-mcp-server) - UniProt protein database
## Citation
If you use this project in your research or publications, please cite it as follows:
```bibtex @misc{surechemblmcp2025,
author = {Moudather Chelbi},
title = {SureChEMBL MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/SureChEMBL-MCP-Server},
note = {Accessed: 2025-06-29}
---
**SureChEMBL MCP Server** - Empowering chemical patent intelligence through the Model Context Protocol.
TDQS
Scored across 15 tools
Each tool has a clearly distinct purpose with no significant overlap. For example, search_by_smiles and search_by_inchi both search chemicals but use different input formats, while get_chemical_by_id retrieves specific records. The descriptions clarify distinct functions like analysis vs. export vs. search.
All tools follow a consistent verb_noun pattern with snake_case, such as get_chemical_by_id, search_by_smiles, and analyze_patent_chemistry. The naming is predictable and readable throughout the set, with verbs like get, search, analyze, and export used appropriately.
With 15 tools, the count is well-scoped for a patent chemistry database server. Each tool earns its place by covering distinct aspects like chemical retrieval, patent search, analysis, and export, without being overwhelming or too sparse for the domain.
The tool set provides complete coverage for the SureChEMBL domain, including CRUD-like operations (e.g., get, search, analyze, export) for both chemicals and patents. There are no obvious gaps; it supports chemical lookup, structure search, patent analysis, and data export, enabling full agent workflows.