Contoso提供者目录MCP服务器
一种模型上下文协议(MCP)服务器,它公开了一个基于Contoso的提供者目录。该服务器设计用于使用标准FHIR R4 API,专门为UHC Public API配置,但可适用于其他应用程序。
特性
- 符合QUICR4标准:与标准Contoso资源交互。
- 提供商目录焦点:用于搜索从业者、组织、地点和保险计划的专业工具。
- FastMCP:基于高效
fastmcp框架。 - 类型安全参数:使用Pydantic的
Annotated和Field用于参数验证和记录。
设置
先决条件
- Python 3.13+
uv(推荐)或pip
安装
- 克隆存储库。
- 安装依赖项:
uv sync配置
服务器使用环境变量进行配置。提供了默认值,但您可以通过创建 .env 根目录中的文件:
FHIR_SERVER_URL=https://flex.optum.com/fhirpublic/R4可用工具
search_practitioner
在目录中搜索从业者。
- 参数:
- identifier:从业者的标识符(例如NPI)。 - family:姓氏。 - given:名字(名字)。 - address_state:从业者地址的状态。 - limit:要返回的结果数(1-1000,默认值:25)。
search_practitioner_role
搜索从业者在某个地点的组织中扮演的角色。
- 参数:
- practitioner:提及从业者(例如,“从业者/123”或简称“123”)。 - organization:提及该组织。 - location:参考位置。 - specialty:专业代码。 - limit:要返回的结果数(1-1000,默认值:100)。
search_location
搜索物理位置(例如诊所、医院)。
- 参数:
- name:位置名称或别名的一部分。 - address:地址部分的一部分。 - city:地址中指定的城市。 - state:地址中指定的州。 - postal_code:地址中指定的邮政编码。 - usage:位置使用代码。 - status:位置状态(active, suspended,或 inactive). - limit:要返回的结果数(1-1000,默认值:50)。
search_organization
搜索组织(如医院、保险公司)。
- 参数:
- name:该组织名称的一部分。 - type:组织类型的代码(例如。, prov, dept, ins, pay). - partof:指上级组织。 - limit:要返回的结果数(1-1000,默认值:25)。
search_organization_affiliation
搜索组织之间的关系。
- 参数:
- primary_organization:指主要组织。 - participating_organization:提及参与组织。 - role:参与组织所起作用的定义。 - specialty:参与组织在角色背景下的具体专长。 - location:角色出现的位置。 - limit:要返回的结果数(1-1000,默认值:100)。
search_healthcare_service
搜索某个地点的组织提供的特定服务。
- 参数:
- organization:提供此医疗服务的组织。 - location:提供此医疗服务的地点。 - name:医疗保健服务名称的一部分。 - category:医疗服务的服务类别。 - type:医疗服务的服务类型的代码或名称。 - specialty:所提供服务的专业性。 - limit:要返回的结果数(1-1000,默认值:25)。
search_insurance_plan
搜索保险产品。
- 参数:
- name:保险计划名称的一部分。 - type:计划类型(例如。, medical, dental, mental). - administered_by:产品管理员(组织)。 - owned_by:产品发行人(组织)。 - coverage_area:产品的覆盖区域(位置)。 - limit:要返回的结果数(1-1000,默认值:25)。
read_resource
按类型和ID读取特定的Contoso资源。
- 参数:
- resource_type:资源的类型(例如。, Practitioner, Organization, Location, HealthcareService, InsurancePlan, PractitionerRole, OrganizationAffiliation). - id:资源的逻辑ID。
发展
在本地运行服务器进行开发/测试:
uv run src/fhir_provider_directory_mcp/server.py与MCP客户端一起使用
要将此服务器与MCP客户端(如Claude Desktop)一起使用,请将以下配置添加到您的 mcp_config.json 或 claude_desktop_config.json:
{
"mcpServers": {
"fhir-provider-directory": {
"command": "uv",
"args": [
"run",
"src/fhir_provider_directory_mcp/server.py"
],
"env": {
"FHIR_SERVER_URL": "https://flex.optum.com/fhirpublic/R4"
}
}
}
}备注:您可能需要提供到的绝对路径 src/fhir_provider_directory_mcp/server.py 和 uv 如果客户端从其他目录运行。例如:
{
"mcpServers": {
"fhir-provider-directory": {
"command": "/path/to/uv",
"args": [
"run",
"/absolute/path/to/fhir-provider-directory-mcp/src/fhir_provider_directory_mcp/server.py"
],
"env": {
"FHIR_SERVER_URL": "https://flex.optum.com/fhirpublic/R4"
}
}
}
}