患者搜索与任务创建服务

一个基于Model Context Protocol (MCP)的服务,用于在Flight Health Atlas系统中搜索患者并创建新任务,支持高级网页自动化和可靠登录处理。

  • by Flight-Health
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 flight-health/mcp-search-and-create-task

使用说明

患者搜索和创建任务MCP服务器

该项目提供了一个模型上下文协议(MCP)服务器,用于在飞行健康图谱系统中搜索患者并创建新任务。

特性

  • V2服务器 (server-v2.ts):使用Puppeteer实现高级web自动化和更可靠的登录处理

先决条件

  • Node.js 18或更高版本
  • npm或yarn包管理器

安装

  1. 克隆存储库:
git clone <repository-url>
cd patient-search-mcp
  1. 安装依赖项:
npm install
  1. 更新凭据 首选 auth.ts 并替换中的电子邮件和密码 LOGIN_CREDENTIALS 凭你的证件。 出于演示目的,这些是硬编码的,因为默认情况下Cursor AI无法访问.env文件(可以通过创建.cursorignore文件并向其中添加!.env来解决这个问题)。

  2. 构建服务器:

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

```bash
# Latest server
npm start

### Testing

You can test the servers directly using JSON-RPC messages:

```bash
# 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 一旦你构建了服务器。

故障排除

常见问题

  1. 浏览器启动失败(V2服务器):

    • 确保您有足够的系统资源
    • 试着用 --no-sandbox 标志(已包含)
  2. 登录失败:

    • 验证凭据是否正确
    • 检查Atlas暂存站点是否可访问
    • 确保网络连接
  3. 患者搜索未返回任何结果:

    • 验证患者姓名拼写
    • 检查您是否登录到正确的环境
    • 尝试部分名称匹配

调试模式

两台服务器都将调试信息记录到stderr。监控控制台输出以获取详细的错误消息。 此外,如果您需要清除 /dist 您可以运行的文件夹 npm run clean.

依赖项

  • @modelcontextprotocol/sdk:MCP TypeScript SDK
  • puppeteer:Web自动化(V2服务器)
  • dotenv:环境变量管理