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
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
search_patents- Search patents by text, keywords, or identifiersget_document_content- Get complete patent document content with chemical annotationsget_patent_family- Get patent family members and relationshipssearch_by_patent_number- Search by specific patent numbers
search_chemicals_by_name- Search chemicals by name or synonymget_chemical_by_id- Get detailed chemical information by SureChEMBL IDsearch_by_smiles- Search chemicals by SMILES structure notationsearch_by_inchi- Search chemicals by InChI/InChI key
get_chemical_image- Generate chemical structure imagesget_chemical_properties- Get molecular properties and descriptors
export_chemicals- Bulk export chemical data (CSV/XML)analyze_patent_chemistry- Analyze chemical content in patents
get_chemical_frequency- Get frequency statistics for chemicals across patent databasesearch_similar_structures- Find structurally similar chemicals using similarity searchget_patent_statistics- Get statistical overview of chemical content in patents
surechembl://document/{doc_id}- Patent document contentsurechembl://chemical/{chem_id}- Chemical compound datasurechembl://family/{patent_id}- Patent family informationsurechembl://search/{query}- Search results
- Node.js 18+
- npm or yarn
npm installnpm run buildnpm run watchnpm startAdd to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"surechembl-server": {
"command": "node",
"args": ["/path/to/surechembl-server/build/index.js"]
}
}
}npm run inspector// 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 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 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 chemical annotations in a patent
await use_mcp_tool({
server_name: "surechembl-server",
tool_name: "analyze_patent_chemistry",
arguments: {
document_id: "US-2021123456-A1",
},
});Search patents by text, keywords, or identifiers.
Parameters:
query(string, required): Search querylimit(number, optional): Results limit (1-1000, default: 25)offset(number, optional): Results offset (default: 0)
Get complete patent document content with chemical annotations.
Parameters:
document_id(string, required): Patent document ID (e.g., WO-2020096695-A1)
Get patent family members and relationships.
Parameters:
patent_id(string, required): Patent ID to find family members for
Search for patents by specific patent numbers.
Parameters:
patent_number(string, required): Patent or publication number
Search for chemicals by name, synonym, or common name.
Parameters:
name(string, required): Chemical name or synonymlimit(number, optional): Results limit (1-1000, default: 25)
Get detailed chemical information by SureChEMBL chemical ID.
Parameters:
chemical_id(string, required): SureChEMBL chemical ID (numeric)
Search for chemicals by SMILES structure notation.
Parameters:
smiles(string, required): SMILES stringlimit(number, optional): Results limit (1-1000, default: 25)
Search for chemicals by InChI or InChI key.
Parameters:
inchi(string, required): InChI string or InChI keylimit(number, optional): Results limit (1-1000, default: 25)
Generate chemical structure image from SMILES or other structure notation.
Parameters:
structure(string, required): SMILES string or structure notationheight(number, optional): Image height in pixels (default: 200)width(number, optional): Image width in pixels (default: 200)
Get molecular properties and descriptors for a chemical.
Parameters:
chemical_id(string, required): SureChEMBL chemical ID
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 chemical content and annotations in a patent document.
Parameters:
document_id(string, required): Patent document ID to analyze
Get frequency statistics for chemicals across the patent database.
Parameters:
chemical_id(string, required): SureChEMBL chemical ID
Find structurally similar chemicals using similarity search.
Parameters:
reference_id(string, required): Reference chemical ID for similarity searchthreshold(number, optional): Similarity threshold (0.0-1.0, default: 0.7)limit(number, optional): Number of results to return (1-100, default: 25)
Get statistical overview of chemical content in patents.
Parameters:
document_id(string, required): Patent document ID for statisticsinclude_annotations(boolean, optional): Include detailed annotation statistics (default: true)
surechembl://document/{doc_id}
Access complete patent document content with chemical annotations.
surechembl://chemical/{chem_id}
Access chemical compound information and properties.
surechembl://family/{patent_id}
Access patent family members and relationships.
surechembl://search/{query}
Access chemical search results for a query.
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.
The server respects SureChEMBL's API rate limits:
- 30-second timeout for complex requests
- Respectful request spacing
- Automatic retry logic for transient failures
surechembl-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
npm run build- Compile TypeScript to JavaScriptnpm run watch- Watch mode for developmentnpm run inspector- Run MCP inspectornpm start- Start the servernpm run dev- Development mode with watch
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details.
For issues and questions:
- GitHub Issues: Report bugs and feature requests
- Documentation: SureChEMBL API Documentation
- ChEMBL MCP Server - ChEMBL bioactivity database
- PubChem MCP Server - PubChem chemical database
- UniProt MCP Server - UniProt protein database
If you use this project in your research or publications, please cite it as follows:
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.