drugbank-mcp-server

drugbank-mcp-server

Model Context Protocol server providing access to the comprehensive DB pharmaceutical database with 17,430+ drugs, supporting search, drug details, interactions, and more.

Category
访问服务器

README

Unofficial DB MCP Server

Model Context Protocol (MCP) server providing access to the comprehensive DB pharmaceutical database (17,430+ drugs).

Features

  • Single unified tool with 16 methods
  • High-performance SQLite backend: <10ms queries, ~50-100MB memory usage
  • Access to 17,430 drug records (13,166 small molecules + 4,264 biotech)
  • Comprehensive pharmaceutical data including:
    • Drug names, descriptions, classifications
    • Clinical indications and mechanisms of action
    • Chemical structures (SMILES, InChI)
    • Drug interactions and contraindications
    • Target proteins, enzymes, carriers, transporters
    • Metabolic pathways
    • Market products and regulatory information
    • Pharmacokinetics (half-life search) and toxicity data
    • Salt forms and external database identifiers
    • Drug similarity search

Installation

# Clone and install dependencies
cd drugbank-mcp-server
npm install

Obtain the DB database:

  1. Download the full database ZIP from your DB account
  2. Extract the XML and place it at data/full database.xml
# Build the SQLite database and copy source files
npm run build

Usage

{
  "mcpServers": {
    "db-mcp-server": {
      "command": "node",
      "args": ["/path/to/db-mcp-server/build/index.js"]
    }
  }
}

Tool

Single unified tool with multiple methods accessed via the method parameter.

Methods

1. search_by_name

Search drugs by name (supports partial matching).

Note: DB uses chemical names as primary identifiers. Search for "Acetylsalicylic" to find aspirin, "Ibuprofen" not "Advil", etc.

{
  "method": "search_by_name",
  "query": "Acetylsalicylic",
  "limit": 20
}

2. get_drug_details

Get complete drug information by DB ID.

{
  "method": "get_drug_details",
  "drugbank_id": "EXPT00475"
}

Returns full drug record including:

  • All identifiers (DB ID, CAS, UNII)
  • Clinical information (indication, mechanism, toxicity)
  • Pharmacokinetics (absorption, metabolism, half-life)
  • Chemical properties
  • Interactions (drug-drug, food)
  • Targets and enzymes

3. search_by_indication

Find drugs by medical indication.

{
  "method": "search_by_indication",
  "query": "pain",
  "limit": 20
}

4. search_by_target

Find drugs by target protein/enzyme.

{
  "method": "search_by_target",
  "target": "COX-2",
  "limit": 20
}

5. get_drug_interactions

Get all drug-drug interactions for a specific drug.

{
  "method": "get_drug_interactions",
  "drugbank_id": "DB00945"
}

6. search_by_atc_code

Search by ATC (Anatomical Therapeutic Chemical) classification code.

{
  "method": "search_by_atc_code",
  "code": "N02BA",
  "limit": 20
}

7. get_pathways

Get metabolic pathways for a drug.

{
  "method": "get_pathways",
  "drugbank_id": "DB00945"
}

8. search_by_structure

Search by chemical structure (SMILES or InChI).

{
  "method": "search_by_structure",
  "smiles": "CC(=O)Oc1ccccc1C(=O)O",
  "limit": 20
}

9. get_products

Get market products for a drug (brand names, manufacturers).

{
  "method": "get_products",
  "drugbank_id": "DB00945",
  "country": "US"
}

10. search_by_category

Search drugs by therapeutic category.

{
  "method": "search_by_category",
  "category": "Anti-inflammatory",
  "limit": 20
}

11. get_external_identifiers

Get cross-database identifiers (PubChem, ChEMBL, KEGG, RxCUI, etc.) and structure identifiers.

{
  "method": "get_external_identifiers",
  "drugbank_id": "DB02351"
}

12. search_by_halflife

Find drugs by elimination half-life range (in hours). Useful for dosing considerations.

{
  "method": "search_by_halflife",
  "min_hours": 12,
  "max_hours": 48,
  "limit": 20
}

13. get_similar_drugs

Find drugs similar to a reference drug based on shared targets, categories, and ATC codes. Uses Jaccard similarity scoring.

{
  "method": "get_similar_drugs",
  "drugbank_id": "APRD00003",
  "limit": 20
}

Returns similarity scores with breakdown by:

  • target_similarity: Shared protein/enzyme targets (50% weight)
  • category_similarity: Shared therapeutic categories (30% weight)
  • atc_similarity: Shared ATC classification codes (20% weight)

14. search_by_carrier

Find drugs by carrier protein (proteins that transport drugs in the body, like albumin).

{
  "method": "search_by_carrier",
  "carrier": "Albumin",
  "limit": 20
}

15. search_by_transporter

Find drugs by transporter protein (membrane proteins that move drugs across cell membranes).

{
  "method": "search_by_transporter",
  "transporter": "P-glycoprotein",
  "limit": 20
}

16. get_salts

Get salt forms for a drug (different chemical forms like hydrochloride, sulfate).

{
  "method": "get_salts",
  "drugbank_id": "DB00007"
}

Example Queries with Claude

Once configured, you can ask Claude:

  • "Find information about acetylsalicylic acid using DB" (aspirin's chemical name)
  • "Search DB for drugs containing ibuprofen"
  • "What drugs interact with warfarin?"
  • "Show me all drugs that target COX-2"
  • "Find drugs used for treating hypertension"
  • "What are the metabolic pathways for acetylsalicylic acid?"
  • "Find drugs similar to Nelfinavir" (HIV protease inhibitor)
  • "What are the external identifiers for Bivalirudin?"
  • "Find drugs with a half-life between 12 and 24 hours"
  • "What drugs are carried by albumin?"
  • "Find drugs transported by P-glycoprotein"
  • "What salt forms are available for leuprolide?"

Note: Use chemical/generic names (acetylsalicylic acid, ibuprofen, acetaminophen) rather than brand names (Aspirin, Advil, Tylenol) for best results.

Performance

SQLite Mode (Default)

  • All queries: <10ms
  • Memory usage: ~50-100MB
  • Database size: 31.1MB (98% reduction from 1.5GB XML)
  • FTS5 full-text search: Fast name/indication lookups

XML Fallback Mode

  • First query: ~30-60 seconds (loads entire 1.5GB XML into memory)
  • Subsequent queries: <500ms (cached in memory)
  • Memory usage: ~2-3GB when database is loaded

Data Source

  • Database: DB (Full Database)
  • Records: 17,430 drugs (13,166 small molecules + 4,264 biotech)

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选