genome-mcp
Genome MCP is an intelligent genomic data server providing high-quality gene information, homologous gene analysis, evolutionary research, and pathway enrichment through the MCP protocol, powered by authoritative databases (NCBI Gene, Ensembl, KEGG).
Core Capabilities:
Gene & Protein Data - Smart retrieval with automatic query type recognition (gene symbols, IDs, protein details, chromosomal regions like chr17:7565097-7590856), batch processing with parallel execution, and multiple output formats (simple, detailed, raw)
Intelligent Search - Natural language semantic search with context-awareness (genomics, proteomics, pathway), smart result ranking and filtering
Evolutionary & Comparative Analysis - Cross-species homologous gene queries (253+ species via Ensembl), phylogenetic profiling, conservation scoring, and domain information integration
KEGG Pathway Enrichment - Statistical pathway over-representation analysis with FDR correction, multi-organism support (human, mouse, rat, etc.), and customizable significance thresholds
Advanced Query Features - Complex batch queries with custom strategies (parallel/sequential), flexible filtering, result pagination, and optimized execution paths
Integration & Performance - Multiple transport protocols (STDIO, HTTP, SSE), asynchronous architecture for high-performance processing, compatible with MCP clients (Claude Desktop, Continue.dev, Cursor, Cline, Windsurf), and scientific reliability with no simulated data
Distributed as a Python package through PyPI, providing intelligent genome data services with gene information queries, homolog analysis, and evolutionary research capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@genome-mcpshow me the homologous genes for TP53 in mice"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Genome MCP
🧬 智能基因组数据服务器 - 通过MCP协议提供高质量的基因信息查询、同源基因分析和进化研究功能。可在 Glama MCP平台 发现和快速配置。
1. 🚀 核心特性
🧬 基因信息查询: 基于NCBI Gene数据库的准确基因信息
🔄 同源基因分析: 基于Ensembl API的跨物种同源基因查询(253+ TP53同源基因)
🧬 进化分析: 系统发育关系构建和保守性分析
🔍 语义搜索: 理解查询意图的智能搜索功能
📊 批量处理: 优化的并发查询,支持大规模数据分析
🌐 多传输模式: 支持STDIO、HTTP、SSE传输协议
⚡ 异步架构: 高性能异步处理架构
🔬 科学可靠: 基于权威数据库,无模拟数据,完全科学可信
Related MCP server: GeneOntology MCP Server
2. 安装
推荐使用现代化的 uv 包管理器以获得更快的安装速度:
# 使用uvx直接运行(推荐)
uvx genome-mcp
# 或添加到项目
uv add genome-mcp传统方式安装:
pip install genome-mcp3. 🛠️ MCP 接入配置
3.1 Claude Desktop
编辑配置文件:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
推荐使用 uvx 运行:
{
"mcpServers": {
"genome-mcp": {
"command": "uvx",
"args": ["genome-mcp"],
"env": {}
}
}
}或使用传统方式:
{
"mcpServers": {
"genome-mcp": {
"command": "python",
"args": ["-m", "genome_mcp"],
"env": {}
}
}
}或使用 uv run:
{
"mcpServers": {
"genome-mcp": {
"command": "uv",
"args": ["run", "-m", "genome_mcp"],
"env": {}
}
}
}3.2 Continue.dev
在 VS Code 的 Continue.dev 扩展配置中:
{
"mcpServers": {
"genome-mcp": {
"command": "uvx",
"args": ["genome-mcp"]
}
}
}3.3 Cursor (VS Code 扩展)
在 Cursor 设置中添加:
{
"mcpServers": {
"genome-mcp": {
"command": "uvx",
"args": ["genome-mcp"],
"env": {
"GENOME_MCP_LOG_LEVEL": "info"
}
}
}
}3.4 Cline (Claude for VS Code)
在 Cline 设置文件中:
{
"mcpServers": {
"genome-mcp": {
"command": "uvx",
"args": ["genome-mcp"],
"timeout": 30000
}
}
}3.5 其他支持 MCP 的客户端
Windsurf: 使用与 Claude Desktop 相同的配置格式
OpenHands: 在 config.json 中添加服务器配置
Custom MCP Client: 参考下面的 Python 示例
3.6 自定义 MCP 客户端
使用 stdio 传输:
import subprocess
import json
# 启动 MCP 服务器
process = subprocess.Popen(
["python", "-m", "genome_mcp"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
text=True
)
# 发送初始化消息
init_message = {
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "test-client", "version": "1.0.0"}
}
}
process.stdin.write(json.dumps(init_message) + "\n")
response = process.stdout.readline()
print("Server response:", response)4. 🔧 API 功能
4.1 可用工具
get_data - 智能数据获取
支持基因符号、ID、区域搜索、同源基因查询
自动类型识别和查询优化
批量查询支持
advanced_query - 高级批量查询
复杂查询条件组合
批量处理优化
自定义输出格式
smart_search - 语义搜索
自然语言查询理解
智能结果排序
上下文感知搜索
kegg_pathway_enrichment_tool - KEGG通路富集分析 🆕
基因列表在KEGG通路中的富集分析
超几何分布检验计算统计显著性
FDR多重检验校正
支持人类、小鼠、大鼠等多种模式生物
4.2 使用示例
import asyncio
from genome_mcp import get_data, advanced_query, smart_search
async def main():
# 获取基因信息
gene_info = await get_data("TP53")
print("Gene info:", gene_info)
# 区域搜索
region_data = await get_data("chr17:7565097-7590856", query_type="region")
print("Region data:", region_data)
# 批量查询
batch_results = await get_data(["TP53", "BRCA1", "EGFR"], query_type="gene")
print("Batch results:", batch_results)
# 语义搜索
search_results = await smart_search("tumor suppressor genes involved in cancer")
print("Search results:", search_results)
# 高级查询
advanced_results = await advanced_query(
query="cancer genes",
query_type="search",
database="gene",
max_results=20
)
print("Advanced results:", advanced_results)
# KEGG通路富集分析
kegg_results = await kegg_pathway_enrichment_tool(
gene_list=["7157", "672", "675"], # TP53, BRCA1, BRCA2的Entrez ID
organism="hsa",
pvalue_threshold=0.05,
min_gene_count=2
)
print("KEGG enrichment results:", kegg_results)
asyncio.run(main())5. 📋 响应格式
所有API响应都遵循统一的JSON格式,包含 success、data 和 query_info 字段。
示例响应:
{
"success": true,
"data": {
"gene_info": {
"uid": "7157",
"name": "TP53",
"description": "tumor protein p53"
}
},
"query_info": {
"query": "TP53",
"query_type": "gene"
}
}6. 💻 命令行使用
# 直接运行(推荐)
uvx genome-mcp
# 开发模式运行
uv run -m genome_mcp
# HTTP 服务器模式
uv run -m genome_mcp --port 8080
# 查看帮助
uv run -m genome_mcp --help7. 📋 更新日志
详细的版本更新记录请查看 CHANGELOG.md
8. 📚 依赖
详细的依赖信息和版本要求请查看 pyproject.toml
Python 版本要求:>= 3.11
9. 🏗️ 开发
git clone https://github.com/gqy20/genome-mcp
cd genome-mcp
pip install -e ".[dev]"
make test
make lint9.1 开发命令
make install # 安装开发依赖
make format # 格式化代码
make lint # 代码质量检查
make test # 运行测试
make check # 完整检查
make build # 构建包10. 📄 许可证
本项目采用 MIT License 开源许可证。
© 2025 gqy20
11. 🤝 贡献
欢迎提交 Issue 和 Pull Request!
12. 📞 支持
Genome MCP - 让基因组数据访问更简单、更智能!
Available Tools
6 toolsadvanced_queryA
高级批量查询 - 支持复杂查询策略
Args: queries: 查询列表,每个元素包含 {"query": str, "type": str} strategy: 执行策略(parallel/sequential) delay: 查询间隔(秒)
Returns: 批量查询结果
Examples: advanced_query([ {"query": "TP53", "type": "info"}, {"query": "BRCA1", "type": "info"}, {"query": "cancer", "type": "search"} ])
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes | ||
| strategy | No | parallel | |
| delay | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| strategy | Yes | |
| total_queries | Yes | |
| successful | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It indicates it's a query tool returning results, but does not confirm read-only behavior or disclose any side effects. The example suggests a safe operation, but more detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with sections (Args, Returns, Example) and is concise. It front-loads the purpose and provides necessary details without extraneous text. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 0% schema coverage and no annotations, the description covers parameters adequately with an example. However, it does not detail the output schema or the allowed query types, leaving some ambiguity. Has output schema but not described; could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description is the sole source for parameter meaning. It explains each parameter: queries (list of objects with query and type), strategy (parallel/sequential), and delay (seconds). The example clarifies usage, adding significant value beyond the schema's type-only information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a batch query tool with complex strategies. It lists parameters and provides an example, differentiating from siblings which focus on specific analyses like gene evolution or pathway enrichment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions strategy (parallel/sequential) and delay, implying when to use each, but does not explicitly state when not to use or compare to alternatives. Sibling tools are distinct in purpose, so guidelines are somewhat implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_gene_evolutionB
基因进化分析工具 - MCP接口包装
Args: gene_symbol: 基因符号(如 TP53, BRCA1) target_species: 目标物种列表(如 ["mouse", "rat", "zebrafish"]) analysis_level: 分析层级(如 Eukaryota, Metazoa, Vertebrata) include_sequence_info: 是否包含序列信息
Returns: 进化分析结果
Examples: # 分析 TP53 在哺乳动物中的进化 analyze_gene_evolution("TP53", ["human", "mouse", "rat", "dog"])
| Name | Required | Description | Default |
|---|---|---|---|
| gene_symbol | Yes | ||
| target_species | No | ||
| analysis_level | No | Eukaryota | |
| include_sequence_info | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| target_gene | Yes | |
| orthologs | Yes | |
| analysis_info | Yes | |
| conservation_scores | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only describes parameters and returns, but does not mention side effects, read-only nature, permissions, or other important behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args, Returns, and an Example section. It is concise and front-loaded with the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description provides only vague return information ('进化分析结果'). It lacks guidance on when to use among siblings and does not cover error cases or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, but the description provides Chinese explanations for all 4 parameters with examples, adding meaningful semantic context beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a gene evolution analysis tool and lists parameters, but does not differentiate from sibling tools like build_phylogenetic_profile or kegg_pathway_enrichment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description lacks any when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_phylogenetic_profileB
系统发育图谱构建工具 - MCP接口包装
Args: gene_symbols: 基因符号列表 species_set: 物种集合(默认包含常用模式生物) include_domain_info: 是否包含结构域信息
Returns: 系统发育图谱数据
Examples: # 分析p53家族在脊椎动物中的分布 build_phylogenetic_profile(["TP53", "TP63", "TP73"], ["human", "mouse", "zebrafish"])
| Name | Required | Description | Default |
|---|---|---|---|
| gene_symbols | Yes | ||
| species_set | No | ||
| include_domain_info | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| query_genes | Yes | |
| phylogenetic_data | Yes | |
| domain_info | Yes | |
| profile_metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes inputs and outputs but does not mention side effects, destructive actions, rate limits, or any limitations (e.g., number of genes allowed). The tool is implied to be read-only, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a title, arguments, returns, and an example. It is front-loaded with the purpose and efficiently conveys the essential information. However, the mix of Chinese and English may slightly reduce clarity for English-only agents, but the content is concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description adequately summarizes return value as '系统发育图谱数据'. It provides parameter hints and an example, but lacks details on input constraints (e.g., valid species names) or error scenarios. It covers the basics but leaves some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining each parameter in the docstring. 'gene_symbols' is described as a list of gene symbols, 'species_set' includes a default set of common model organisms, and 'include_domain_info' is a boolean for domain information. The example provides concrete usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '系统发育图谱构建工具' (phylogenetic profile construction tool) and provides a detailed docstring with arguments, returns, and an example. It differentiates from sibling tools like 'analyze_gene_evolution' by focusing specifically on building phylogenetic profiles from gene symbols and species sets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus the sibling tools. No conditions, prerequisites, or exclusions are mentioned. The example only shows a typical use case but does not explain when to choose this over 'analyze_gene_evolution' or 'kegg_pathway_enrichment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dataA
智能数据获取接口 - 统一处理所有查询类型
自动识别查询类型:
"TP53" → 基因信息查询
"P04637" → 蛋白质详细信息查询
"cancer" → 基因搜索
"protein kinase" → 蛋白质功能搜索
"chr17:7565097-7590856" → 区域搜索
"TP53, BRCA1" → 批量基因信息
"breast cancer genes" → 智能搜索
"TP53 homologs" → 同源基因查询
"evolutionary conservation" → 进化分析查询
Args: query: 查询内容(可以是基因ID、蛋白质ID、搜索词、区域、ID列表、进化相关查询) query_type: 查询类型(auto/info/search/region/protein/gene_protein/ortholog/evolution) data_type: 数据类型(gene/protein/gene_protein/ortholog/evolution) format: 返回格式(simple/detailed/raw) species: 物种(默认:human,支持9606/human/mouse/rat等) max_results: 最大结果数(默认:20)
Returns: 查询结果字典,包含基因和/或蛋白质信息
Examples: # 基因信息查询 get_data("TP53") get_data("TP53", format="detailed")
# 批量查询
get_data(["TP53", "BRCA1", "BRCA2"])
# 区域搜索
get_data("chr17:7565097-7590856")
# 蛋白质查询
get_data("P04637", data_type="protein")
# 基因-蛋白质整合查询
get_data("TP53", data_type="gene_protein")
# 蛋白质功能搜索
get_data("tumor suppressor", data_type="protein")| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| query_type | No | auto | |
| data_type | No | gene | |
| format | No | simple | |
| species | No | human | |
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | Yes | |
| data | Yes | |
| error | Yes | |
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully explains the tool's behavior, including auto-detection of query types and parameter effects. It lacks information on authentication or rate limits, but for a read-only tool, the disclosure is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and examples, though it is somewhat lengthy. The key purpose is front-loaded, and each example adds value, but some redundancy exists (e.g., repeated query_type explanations).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, output schema exists), the description covers usage patterns comprehensively. It lacks details on error handling or performance, but for typical use cases it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates fully by listing all parameters, their defaults, and allowed values. It also provides context-specific examples (e.g., 'query' can be a string or array), adding substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a unified data retrieval tool that handles various query types (gene, protein, region, etc.). It provides extensive examples and distinguishes itself from siblings by being a general-purpose query interface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers numerous examples showing when to use different query types and parameters, effectively guiding the agent. However, it does not explicitly contrast with sibling tools like advanced_query or smart_search, leaving some ambiguity about when to choose alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kegg_pathway_enrichmentA
KEGG通路富集分析工具 - MVP版本
分析基因列表在KEGG通路中的富集情况,识别显著相关的生物学通路
Args: gene_list: 基因列表(如 ["TP53", "BRCA1", "BRCA2"]) organism: 生物体代码(默认 "hsa" 人类) pvalue_threshold: p值显著性阈值(默认 0.05) min_gene_count: 通路中最小基因数量(默认 2)
Returns: 通路富集分析结果,包含: - 显著富集的通路列表 - p值和FDR校正后的统计显著性 - 富集倍数和基因数量信息 - 分析参数和元数据
Examples: # 分析癌症相关基因的通路富集 kegg_pathway_enrichment(["TP53", "BRCA1", "BRCA2", "EGFR"])
# 分析小鼠基因的通路富集
kegg_pathway_enrichment(["Trp53", "Brca1"], organism="mmu")
# 使用更严格的显著性阈值
kegg_pathway_enrichment(["TP53", "BRCA1"], pvalue_threshold=0.01)| Name | Required | Description | Default |
|---|---|---|---|
| gene_list | Yes | ||
| organism | No | hsa | |
| pvalue_threshold | No | ||
| min_gene_count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| query_genes | Yes | |
| enriched_pathways | Yes | |
| analysis_metadata | Yes | |
| query_info | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the purpose, inputs, and outputs, but does not disclose potential side effects (e.g., external API calls, computational cost, rate limits, or behavior under edge cases like empty gene lists). The behavioral transparency is adequate but not deep.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for Args, Returns, and Examples, making it easy to scan. However, it is longer than necessary due to mixed Chinese/English, and the first line repeats the tool's purpose. It could be more concise without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all parameters and the structure of the return value, which is sufficient given that an output schema exists (mentioned in context). It lacks some details like valid organism codes and edge-case handling, but overall it provides a complete picture for an enrichment analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by explaining each parameter's role and default values. It clarifies that gene_list expects strings like 'TP53', organism defaults to 'hsa', and pvalue_threshold/min_gene_count have defaults. However, it does not provide valid ranges or examples for all parameters (e.g., organism codes), leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs KEGG pathway enrichment analysis on a gene list, specifying the resource (KEGG pathways) and the action (enrichment analysis). The title 'MVP版本' and examples distinguish it from sibling tools like advanced_query or smart_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage examples for different scenarios (cancer genes, mouse genes, stricter threshold), implying typical use cases. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusion criteria or guidance for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smart_searchB
智能语义搜索 - 理解自然语言描述并执行相应查询
语义理解示例:
"breast cancer genes on chromosome 17" → 查找17号染色体上的乳腺癌基因
"TP53 protein interactions" → 查找TP53蛋白相互作用
"tumor suppressor genes" → 查找肿瘤抑制基因
"genes related to DNA repair" → 查找DNA修复相关基因
Args: description: 自然语言描述 context: 搜索上下文(genomics/proteomics/pathway) filters: 过滤条件 max_results: 最大结果数
Returns: 智能搜索结果
Examples: smart_search("breast cancer genes on chromosome 17") smart_search("TP53 protein interactions", context="proteomics") smart_search("DNA repair genes", filters={"species": "human"})
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| context | No | genomics | |
| filters | No | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes | |
| total_count | Yes | |
| search_metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose whether the tool is read-only, whether it modifies data, or any special behaviors like rate limits or authentication. The examples hint at querying, but explicit behavioral disclosure is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for introduction, examples, args, returns, and additional examples. It is not overly verbose, though some redundancy exists (e.g., examples in both intro and dedicated section). The bilingual content is acceptable but could be streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (though not shown), the description doesn't need to detail return values. However, it only vaguely states '智能搜索结果'. It lacks details on error handling, pagination, or ambiguous query behavior. For a moderately complex tool, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining each parameter: 'description' as natural language, 'context' with allowed values (genomics/proteomics/pathway), 'filters' as filter conditions with an example, and 'max_results' as maximum result count. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs intelligent semantic search by understanding natural language descriptions and executing queries. The examples illustrate the purpose well, but it does not explicitly differentiate from sibling tools like 'advanced_query' or 'get_data'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for natural language queries through examples, but it lacks explicit guidance on when to use this tool versus alternatives (e.g., 'advanced_query' for structured queries). No when-not-to-use or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
advanced_query - First observed
analyze_gene_evolution - First observed
build_phylogenetic_profile - First observed
get_data - First observed
kegg_pathway_enrichment - First observed
smart_search
TDQS
Scored across 6 tools
Significant overlap exists: get_data is a super-tool that handles batch queries (like advanced_query), semantic search (like smart_search), and even evolution queries (overlapping with analyze_gene_evolution). This makes it difficult for an agent to know which tool to use.
Names are all lowercase with underscores, but some are verb_noun (analyze_gene_evolution, get_data) while others are adjective+noun (advanced_query, smart_search) or noun phrases (kegg_pathway_enrichment). The pattern is inconsistent.
6 tools is well-scoped for a genomics data server covering querying, evolution, and pathway enrichment. Each tool has a clear purpose despite overlaps.
The toolset covers data retrieval and some analysis (evolution, enrichment), but lacks common genomics operations like sequence alignment, variant analysis, or expression analysis. Gaps exist but core data access is handled.
Maintenance
Related MCP Connectors
MyGene.info — gene annotation joining NCBI/Ensembl/UniProt/KEGG/OMIM
Bioinformatics MCP for genomic variant interpretation, gene-disease evidence and literature.
MCP server for querying BrainKB, a knowledge base for neuroscience knowledge graphs.
QuickGO (EBI) MCP — Gene Ontology browser.
Related MCP Servers
- FlicenseAqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server that provides access to the Ensembl REST API for genomic data, comparative genomics, and biological annotations.193-
- AlicenseBqualityDmaintenanceA comprehensive Model Context Protocol server for accessing Gene Ontology (GO) data, enabling AI systems to perform ontology-based analysis, gene annotation research, and functional enrichment studies.49 npm8MIT
- AlicenseBqualityDmaintenanceMCP server that interfaces with the NCBI Entrez API to fetch detailed information about genes and proteins, enabling gene searches, gene/protein metadata retrieval, and symbol searching with organism filtering.1843MIT
- AlicenseNot gradedqualityFmaintenanceAn MCP server for the gget bioinformatics library that enables AI assistants to perform complex genomics queries, including gene sequence retrieval, BLAST alignments, and protein structure predictions.31MIT