使用说明
PubMed MCP Azure功能
该项目是PubMed的基于Python的MCP(模型上下文协议)服务器,作为Azure函数托管,并与Azure AI Foundry集成。
特性
- 通过HTTP请求搜索PubMed文章并返回标题和摘要。
- 使用带有API密钥和电子邮件的PubMed Entrez API进行身份验证。
- 部署在Azure函数(Linux、Python 3.11)上。
- 匿名公共端点(不需要功能密钥)。
- OpenAPI 3.0.1代理/工具集成规范。
设置
先决条件
- Python 3.11
- Azure功能核心工具
- Azure命令行界面
- Azure订阅
- PubMed API密钥和注册电子邮件
地方发展
- 克隆存储库。
- 安装依赖项:
pip install -r requirements.txt - 将您的PubMed API密钥和电子邮件添加到
local.settings.json:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "python", "PUBMED_API_KEY": "<your_pubmed_api_key>", "PUBMED_EMAIL": "<your_email>" } } - 在本地启动该功能:
func start - 本地测试:
curl "http://localhost:7071/api/pubmed_mcp?query=cancer"
Azure部署
- 登录到Azure:
az login - 创建资源组:
az group create --name <ResourceGroup> --location <Region> - 创建存储帐户:
az storage account create --name <StorageAccount> --location <Region> --resource-group <ResourceGroup> --sku Standard_LRS - 创建函数应用程序(Linux,Python 3.11):
az functionapp create --resource-group <ResourceGroup> --consumption-plan-location <Region> --runtime python --runtime-version 3.11 --functions-version 4 --name <FunctionAppName> --storage-account <StorageAccount> --os-type Linux - 发布您的代码:
func azure functionapp publish <FunctionAppName> - 在Azure中设置环境变量:
az functionapp config appsettings set --name <FunctionAppName> --resource-group <ResourceGroup> --settings PUBMED_API_KEY="<your_pubmed_api_key>" PUBMED_EMAIL="<your_email>" - 测试已部署的功能(无需按键):
curl "https://<FunctionAppName>.azurewebsites.net/api/pubmed_mcp?query=cancer"
代理和工具集成
- 该功能与Azure AI Foundry代理和其他基于OpenAPI的工具兼容。
- OpenAPI规范(
openapi.json)描述了代理集成的端点。 - 代理提示示例:
查找PubMed最近关于癌症的文章,并返回它们的标题和摘要。
安全
- 不要将您的真实API密钥或敏感信息提交给源代码管理。
- 使用环境变量作为机密。
日志记录
- 该函数将请求、错误和PubMed API响应记录到Azure日志流。
定制
- 您可以扩展MCP服务器以支持更多PubMed功能或自定义端点。
许可证
麻省理工学院