哦,我的KEGG MCP
用于访问KEGG(Kyoto Encyclopedia of Genes and Genomes)数据库的Model Context Protocol(MCP)服务器。(unofficial)
主要功能
- 30个KEGG工具:搜索和分析各种生物学数据,包括路径、基因、化合物、反应、酶、疾病、药物等。
- 可流式HTTP传输:Web环境中可用的基于HTTP的通信
- LangChain集成:与LangChain Agent完全集成,LLM可以利用KEGG数据
- Ollama支持:可与本地LLM模型一起使用
安装
1.安装必需的软件包
pip install -r requirements.txt2.设置环境变量
.env.example 请参见文件 .env 创建文件:
cp .env.example .env.env 编辑文件以设置所需的值:
# OpenAI API 키 (OpenAI 모델 사용 시 필요)
# Ollama 사용 시에는 설정하지 않아도 됩니다
OPENAI_API_KEY=your_openai_api_key
# MCP 서버 URL (클라이언트에서 사용)
# 서버가 다른 호스트/포트에서 실행되는 경우 변경
KEGG_MCP_SERVER_URL=http://localhost:3000/mcp
# MCP 서버 설정 (서버 실행 시 사용, 선택사항)
# 기본값이 설정되어 있어 변경하지 않아도 됩니다
MCP_HOST=localhost
MCP_PORT=3000
MCP_PATH=/mcp
# Ollama 설정 (선택사항)
# Ollama가 다른 호스트/포트에서 실행되는 경우 변경
# OLLAMA_HOST=http://localhost:11434参考:
- 使用Ollama时:
OPENAI_API_KEY不需要设置。当前代码使用Ollama作为缺省模型。 - 使用OpenAI时:
OPENAI_API_KEY在中设置实际的API密钥。langchain_integration.py在ChatOpenAI必须更改为使用。 - 服务器设置:
MCP_HOST,MCP_PORT,MCP_PATH用于运行服务器,并设置了默认值,无需更改。 - Ollama主机:Ollama在非默认端口(11434)上运行。
OLLAMA_HOST可以设置。
使用方法
1.运行服务器
# 기본 설정으로 실행 (localhost:3000/mcp)
python kegg_mcp_server.py
# 또는 환경 변수로 설정
MCP_HOST=localhost MCP_PORT=3000 MCP_PATH=/mcp python kegg_mcp_server.py服务器运行时会显示以下消息:
Starting KEGG MCP Server on http://localhost:3000/mcp
Transport: Streamable HTTP2.运行客户端
# 기본 실행 (Streamable HTTP 사용)
python langchain_integration.py
# Ollama 연결 테스트만 실행
python langchain_integration.py --test
# stdio 사용 (선택사항, 별도 TypeScript 서버 필요)
# langchain_integration.py에서 use_http=False로 변경
# 참고: 현재는 Streamable HTTP 방식만 제공됩니다可用工具
数据库信息与统计(2개)
get_database_info-查询数据库信息和统计信息list_organisms-查看所有KEGG生物体列表
路径分析(3개)
search_pathways-搜索路径get_pathway_info-路径详细信息get_pathway_genes-路径的基因列表
Gene Analysis(2个)
search_genes-基因搜索get_gene_info-基因详细信息(包括序列选项)
化合物分析(2개)
search_compounds-化合物搜索get_compound_info-化合物详细信息
反应和酶分析(4개)
search_reactions-搜索响应get_reaction_info-反应详细信息search_enzymes-酶搜索get_enzyme_info-酶详细信息
疾病与药物分析(5개)
search_diseases-疾病搜索get_disease_info-疾病详细信息search_drugs-药物搜索get_drug_info-药物详细信息get_drug_interactions-查看药物相互作用
Module&Orthology Analysis(4个)
search_modules-搜索模块get_module_info-模块详细信息search_ko_entries-搜索KO条目get_ko_info-KO详细信息
Glycan Analysis(2个)
search_glycans-搜索格力坎get_glycan_info-格力坎详细信息
BRITE层次分析(2개)
search_brite-搜索BRITE层get_brite_info-BRITE详细信息
高级分析工具(5개)
get_pathway_compounds-路径中的化合物列表get_pathway_reactions-路径的响应列表get_compound_reactions-化合物的反应列表get_gene_orthologs-寻找基因直系同族batch_entry_lookup-查看放置条目
交叉引用和整合(2개)
convert_identifiers-在数据库之间转换标识符find_related_entries-查找相关条目
示例
基本使用示例
import asyncio
from langchain_integration import create_kegg_client, load_and_display_tools, create_default_model, run_agent_query
from langchain.agents import create_agent
async def main():
# 클라이언트 생성 (Streamable HTTP)
client = create_kegg_client()
try:
# 도구 로드
tools = await load_and_display_tools(client)
# 모델 및 Agent 생성
model = create_default_model()
agent = create_agent(model=model, tools=tools)
# 쿼리 실행
await run_agent_query(
agent,
"인간의 당분해(glycolysis) 경로를 찾아주세요.",
"당분해 경로 검색"
)
finally:
if hasattr(client, 'close'):
try:
await client.close()
except:
pass
if __name__ == "__main__":
asyncio.run(main())项目结构
kegg-mcp-test/
├── kegg_mcp_server.py # Python MCP 서버 (Streamable HTTP)
├── langchain_integration.py # LangChain 통합 클라이언트
├── requirements.txt # Python 패키지 의존성
├── .env.example # 환경 변수 예제 파일
├── .gitignore # Git 무시 파일 목록
├── LICENSE # MIT 라이선스
└── README.md # 프로젝트 문서 (이 파일)通信方式
Streamable HTTP(推荐)
- 优点:Web环境支持,可扩展性好,标准HTTP协议
- 使用:Python服务器(
kegg_mcp_server.py) - 港口:默认3000(可更改为环境变量)
stdio(仅本地,可选)
- 优点:最高的安全性、低开销、简单的设置
- 使用:
langchain_integration.py在use_http=False设置为时可用 - 限制:只能本地运行,需要单独的TypeScript服务器
故障排除
如果服务器无法启动
- 验证端口是否已在使用中:
lsof -i :3000 - 验证是否已安装所需的软件包:
pip install -r requirements.txt - 验证python:需要python3.11或更高版本
客户端连接失败
- 验证服务器是否正在运行
- 验证服务器URL是否正确:
KEGG_MCP_SERVER_URL环境变量 - 检查防火墙设置
Ollama连接失败
- 确认Ollama正在运行:
ollama serve - 验证是否已安装型号:
ollama list - 下载型号:
ollama pull gemma3:4b(或要使用的型号)
许可证
MIT许可证
