使用说明
Azure容器应用远程MCP服务器示例
此MCP服务器使用SSE传输,并使用API密钥进行身份验证。
项目概述
此项目是为Azure容器应用程序设计的基于FastAPI的模型上下文协议(MCP)服务器。它通过一个安全的、受API密钥保护的服务器事件(SSE)接口提供与天气相关的工具(如警报和预报)。该服务器旨在与MCP兼容的客户端集成,如Visual Studio Code或自定义脚本。
安装说明
- 克隆存储库:
git clone https://github.com/KRVaghani/Azure-MCP-Server.git cd Azure-MCP-Server - 安装必备组件:
- Python 3.11或更高版本
- 紫外线
- 设置虚拟环境和依赖关系:
uv venv uv sync - 设置API键:
export API_KEYS=devkey # or your chosen key - 运行服务器:
uv run fastapi dev main.py
客户端使用情况
Python客户端示例(model_request_client.py)包含用于命令行交互的:
python model_request_client.py
- 输入API密钥(默认值:devkey)
- 选择工具:
get_alerts(按美国州)或get_forecast(按纬度/经度) - 输入所需参数
- 服务器响应将显示在您的终端中
API终点
/sse(GET):MCP协议通信的主SSE端点。需要x-api-key头球/messages(SSE):内部用于消息流(基于会话)。
卷曲测试示例
curl -H "x-api-key: devkey" http://localhost:8000/sse
故障排除
- 如果你看到
ModuleNotFoundError,确保您的虚拟环境已激活并安装了依赖项。 - 如果客户端挂起,请检查服务器是否正在运行以及API密钥是否匹配。
- 对于venv中的pip问题,运行:
python -m ensurepip --upgrade python -m pip install --upgrade pip
贡献
欢迎拉取请求!请先打开一个问题来讨论重大更改。
许可证
MIT许可证(如果需要,添加许可证文件)
在本地运行
先决条件:
- Python 3.11或更高版本
- 紫外线
在本地运行服务器:
uv venv
uv sync
# linux/macOS
export API_KEYS=<AN_API_KEY>
# windows
set API_KEYS=<AN_API_KEY>
uv run fastapi dev main.py
VS代码MCP配置(MCP.json):
{
"inputs": [
{
"type": "promptString",
"id": "weather-api-key",
"description": "Weather API Key",
"password": true
}
],
"servers": {
"weather-sse": {
"type": "sse",
"url": "http://localhost:8000/sse",
"headers": {
"x-api-key": "${input:weather-api-key}"
}
}
}
}
部署到Azure容器应用程序
az containerapp up -g <RESOURCE_GROUP_NAME> -n weather-mcp --environment mcp -l westus --env-vars API_KEYS=<AN_API_KEY> --source .
如果部署成功,Azure CLI将返回应用程序的URL。您可以使用此URL从Visual Studio代码连接到服务器。
如果部署失败,请在更新CLI和Azure容器应用扩展后重试:
az upgrade
az extension add -n containerapp --upgrade
