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": "",
"PUBMED_EMAIL": ""
}
}- 在本地启动该功能:
func start- 本地测试:
curl "http://localhost:7071/api/pubmed_mcp?query=cancer"Azure部署
- 登录到Azure:
az login- 创建资源组:
az group create --name --location - 创建存储帐户:
az storage account create --name --location --resource-group --sku Standard_LRS- 创建函数应用程序(Linux,Python 3.11):
az functionapp create --resource-group --consumption-plan-location --runtime python --runtime-version 3.11 --functions-version 4 --name --storage-account --os-type Linux- 发布您的代码:
func azure functionapp publish - 在Azure中设置环境变量:
az functionapp config appsettings set --name --resource-group --settings PUBMED_API_KEY="" PUBMED_EMAIL=""- 测试已部署的功能(无需按键):
curl "https://.azurewebsites.net/api/pubmed_mcp?query=cancer"代理和工具集成
- 该功能与Azure AI Foundry代理和其他基于OpenAPI的工具兼容。
- OpenAPI规范(
openapi.json)描述了代理集成的端点。 - 代理提示示例:
> 查找PubMed最近关于癌症的文章,并返回它们的标题和摘要。
安全
- 不要将您的真实API密钥或敏感信息提交给源代码管理。
- 使用环境变量作为机密。
日志记录
- 该函数将请求、错误和PubMed API响应记录到Azure日志流。
定制
- 您可以扩展MCP服务器以支持更多PubMed功能或自定义端点。
许可证
麻省理工学院
