项目简介
Multi-Agent AI医疗系统中的MCP服务器,专门负责托管医生数据并提供高效的搜索工具。它通过标准的JSON-RPC协议响应客户端请求,特别是用于查找特定州内的医生信息,作为LLM客户端获取医疗上下文的能力层。
主要功能点
- 医生信息托管: 存储并管理详细的医生信息,包括姓名、专科、地址、联系方式、经验、认证及所属医院等。
- 按州搜索医生: 提供一个名为“doctor_search”的工具,允许MCP客户端根据美国两字母州代码来查询该州的所有医生。
- 标准化API通信: 通过HTTP上的JSON-RPC协议进行通信,确保与兼容的LLM客户端或其他服务集成。
- 能力声明: 能够响应客户端关于其可用工具(例如“doctor_search”)的查询,并提供工具的结构化描述。
安装步骤
- 克隆仓库: 使用 Git 克隆此项目到您的本地机器。
git clone https://github.com/schmouli/multi-agent-ai.git cd multi-agent-ai - 设置OpenAI API密钥: 在项目根目录创建一个 '.env' 文件,并添加您的OpenAI API密钥。
注意:尽管MCP服务器本身在此示例中没有直接使用OpenAI API,但系统中的其他服务(如保险代理)可能需要。为确保整个系统运行,建议配置。echo "OPENAI_API_KEY=您的_OPENAI_API_密钥_在此处" > .env - 使用Docker Compose启动: 确保您已安装 Docker 和 Docker Compose。在项目根目录运行以下命令以构建并启动所有服务,包括MCP服务器:
这将在后台启动所有服务。MCP服务器将在端口 '8333' 上运行。docker-compose up --build -d - 本地Python运行 (可选): 如果您希望在本地环境中直接运行MCP服务器,请先安装Python依赖,然后执行:
MCP服务器将在 'http://0.0.0.0:8333' 上运行。# 假设您已经在一个虚拟环境中 uv sync # 安装项目所有依赖 python server/mcpserver.py
服务器配置 (供MCP客户端集成参考)
您的MCP客户端可以配置通过HTTP协议连接到MCP服务器。以下是典型的配置信息,请根据您的实际部署环境调整 'host' 和 'port':
{ "server_name": "doctor-search-server", "command": "python", "args": ["server/mcpserver.py"], "protocol": "http", "host": "localhost", "port": 8333, "description": "提供医生搜索功能的MCP服务器,通过JSON-RPC协议调用其'doctor_search'工具,用于根据州代码查找医生信息。" }
注释:
- 'server_name': 服务器的唯一标识符,应与MCP服务器自身声明的名称一致。
- 'command': 启动MCP服务器所使用的命令(例如 'python')。
- 'args': 传递给 'command' 的参数,通常是MCP服务器脚本的路径。
- 'protocol': 服务器支持的通信协议,此处为 'http'。
- 'host': MCP服务器的IP地址或域名。
- 'port': MCP服务器监听的端口号。
- 'description': 对MCP服务器功能的简要描述,方便客户端理解其用途。
基本使用方法
一旦MCP服务器启动并运行在 'http://localhost:8333',您可以使用 'curl' 命令或您的MCP客户端进行交互:
-
获取服务器信息:
curl http://localhost:8333/这将返回服务器的基本元数据,如名称和版本。
-
列出可用工具:
curl -X POST http://localhost:8333/ \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'服务器将返回一个 JSON-RPC 响应,其中包含所有已注册工具的列表及其描述和输入模式。
-
调用医生搜索工具 (例如:搜索加州的医生):
curl -X POST http://localhost:8333/ \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "doctor_search", "arguments": {"state": "CA"}}}'服务器将返回一个 JSON-RPC 响应,其中包含加利福尼亚州的所有医生信息。您可以将 'state' 参数更改为其他美国州代码(例如 'GA'、'TX')以获取不同州的医生。
信息
分类
AI与计算