Skip to main content
Glama
main.py4.65 kB
#!/usr/bin/env python3 """ Genome MCP - 智能基因组数据服务器 版本: 0.2.5 功能: 基因信息查询、同源基因分析、进化研究、语义搜索、批量处理 支持模式: - STDIO: 标准输入输出模式(默认) - HTTP: HTTP服务器模式 - SSE: Server-Sent Events模式 使用示例: # STDIO模式(默认) python -m genome_mcp # HTTP模式 - 本地访问 python -m genome_mcp --port 8080 # HTTP模式 - 外部访问(0.0.0.0) python -m genome_mcp --port 8080 --host 0.0.0.0 # SSE模式 python -m genome_mcp --mode sse --port 8080 更多信息请访问: https://github.com/your-repo/genome-mcp """ import argparse import sys from fastmcp import FastMCP from .core.tools import create_mcp_resources, create_mcp_tools # 创建MCP实例 mcp = FastMCP("Genome MCP", version="0.2.5") # 注册所有资源和工具 create_mcp_resources(mcp) create_mcp_tools(mcp) def create_parser(): """创建命令行参数解析器""" parser = argparse.ArgumentParser( prog="genome-mcp", description="Genome MCP - 智能基因组数据服务器", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" 使用示例: %(prog)s # STDIO模式(默认) %(prog)s --port 8080 # HTTP模式 - 本地访问 %(prog)s --port 8080 --host 0.0.0.0 # HTTP模式 - 外部访问 %(prog)s --mode sse --port 8080 # SSE模式 %(prog)s --help # 显示帮助信息 传输模式说明: STDIO - 标准输入输出模式,适用于本地MCP客户端(如Claude Desktop) HTTP - HTTP服务器模式,支持远程访问和Web客户端 SSE - Server-Sent Events模式,支持实时通信 网络配置说明: --host 127.0.0.1 - 仅本地访问(默认) --host 0.0.0.0 - 允许外部访问,适用于Docker和云部署 --port <端口号> - 指定服务器端口(HTTP/SSE模式需要) 更多信息请访问: https://github.com/your-repo/genome-mcp """, ) parser.add_argument("--port", "-p", type=int, help="指定端口号(HTTP/SSE模式必需)") parser.add_argument( "--host", default="127.0.0.1", help="指定绑定地址(默认: 127.0.0.1,使用0.0.0.0允许外部访问)", ) parser.add_argument( "--mode", "-m", choices=["stdio", "http", "sse"], default="stdio", help="传输模式(默认: stdio)", ) parser.add_argument( "--version", "-v", action="version", version="Genome MCP v0.2.5" ) return parser def main(): """主入口点""" parser = create_parser() args = parser.parse_args() # 确定传输模式 transport_map = {"stdio": "stdio", "http": "streamable-http", "sse": "sse"} transport = transport_map[args.mode] # 验证参数组合 if args.mode in ["http", "sse"] and not args.port: parser.error(f"{args.mode.upper()}模式需要指定端口号 (--port)") if args.mode == "stdio" and args.port: print("⚠️ 警告: STDIO模式忽略--port参数") # 准备启动参数 run_kwargs = {"transport": transport} # 只有非STDIO模式才添加端口和主机参数 if args.mode != "stdio" and args.port: run_kwargs["port"] = args.port if args.host != "127.0.0.1": run_kwargs["host"] = args.host # 只有非STDIO模式才显示启动信息 if args.mode != "stdio": print("\n" + "=" * 60) print(f"🧬 启动Genome MCP服务器 ({args.mode.upper()}模式)") if args.host == "0.0.0.0": print(f"🌐 服务器地址: http://0.0.0.0:{args.port}/mcp") print("🔓 允许外部访问 - 适用于Docker和云部署") else: print(f"🏠 服务器地址: http://{args.host}:{args.port}/mcp") print("🔒 仅本地访问") print(f"📊 传输协议: {transport}") print("🛠️ 工具数量: 6个核心工具") print("📚 资源数量: 3个数据资源") print("🧬 功能: 基因查询 | 同源分析 | 进化研究 | 语义搜索") print("=" * 60) print("🚀 正在启动服务器...\n") # STDIO模式保持静默,避免干扰MCP协议通信 # 启动服务器 try: mcp.run(**run_kwargs) except KeyboardInterrupt: if args.mode != "stdio": print("\n👋 服务器已停止") except Exception as e: if args.mode != "stdio": print(f"❌ 启动失败: {e}") sys.exit(1) if __name__ == "__main__": main()

Implementation Reference

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gqy20/genome-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server