患者搜索和创建任务MCP服务器
该项目提供了一个模型上下文协议(MCP)服务器,用于在飞行健康图谱系统中搜索患者并创建新任务。
特性
- V2服务器 (
server-v2.ts):使用Puppeteer实现高级web自动化和更可靠的登录处理
先决条件
- Node.js 18或更高版本
- npm或yarn包管理器
安装
- 克隆存储库:
git clone
cd patient-search-mcp- 安装依赖项:
npm install- 更新凭据
首选 auth.ts 并替换中的电子邮件和密码 LOGIN_CREDENTIALS 凭你的证件。 出于演示目的,这些是硬编码的,因为默认情况下Cursor AI无法访问.env文件(可以通过创建.cursorignore文件并向其中添加!.env来解决这个问题)。
- 构建服务器:
npm build:v2 # only build the V2 server
npm run start # Build and start V2 server配置
用于光标MCP
将以下内容添加到光标 mcp.json 文件(通过光标设置找到):
V2服务器(推荐):
{
"mcpServers": {
"patient-search-v2": {
"command": "node",
"args": ["/path/to/mcp-search-and-create-task/dist/server-v2.js"]
}
}
}用法
可用工具
这两台服务器都提供以下工具:
hello_world
- 描述:测试MCP连接
- 参数:
- name (可选):要问候的姓名
search_patient_v2 (V2服务器)
- 描述:使用Puppeteer网络自动化搜索患者
- 参数:
- patient_name (必填):要搜索的患者姓名 - detailed (可选):是否返回详细信息
create_new_task (V2服务器)
- 描述:创建新任务
- 参数:
- task_type (必填):要创建的任务类型 - task_name (必填):要创建的任务的名称 - description (可选):要添加到任务中的任何描述
示例用法
// Test connection
await callTool("hello_world", { name: "Aakarsh" });
// Search for a patient (V2 server)
await callTool("search_patient_v2", {
patient_name: "John Smith",
detailed: true
});发展
以开发模式运行
npm run dev
### Starting the Server
Latest server
npm start
Testing
You can test the servers directly using JSON-RPC messages:
# Test V2 server initialization
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}}' | node dist/server-v2.js我还创建了一个示例测试文件来测试任务创建,名为 test-task-creation。您可以通过以下命令运行测试 node dist/test-task-creation.js 一旦你构建了服务器。
故障排除
常见问题
- 浏览器启动失败(V2服务器):
- 确保您有足够的系统资源 - 试着用 --no-sandbox 标志(已包含)
- 登录失败:
- 验证凭据是否正确 - 检查Atlas暂存站点是否可访问 - 确保网络连接
- 患者搜索未返回任何结果:
- 验证患者姓名拼写 - 检查您是否登录到正确的环境 - 尝试部分名称匹配
调试模式
两台服务器都将调试信息记录到stderr。监控控制台输出以获取详细的错误消息。 此外,如果您需要清除 /dist 您可以运行的文件夹 npm run clean.
依赖项
@modelcontextprotocol/sdk:MCP TypeScript SDKpuppeteer:Web自动化(V2服务器)dotenv:环境变量管理
