Azure MCP Server

Azure MCP Server

🚀 Azure容器应用程序远程MCP服务器示例

本项目是一个基于FastAPI的模型上下文协议(MCP)服务器,专为Azure容器应用设计。它借助安全的、受API密钥保护的Server-Sent事件(SSE)接口,提供天气相关工具(如警报和预报),能与MCP兼容客户端(如Visual Studio Code或自定义脚本)集成。

🚀 快速开始

此MCP服务器使用SSE传输并使用API密钥进行身份验证。下面为你介绍如何快速搭建和使用该服务器。

✨ 主要特性

  • 基于FastAPI构建,专为Azure容器应用设计。
  • 通过安全的、受API密钥保护的Server-Sent事件(SSE)接口提供服务。
  • 提供天气相关工具,如警报和预报。
  • 可与MCP兼容客户端集成,例如Visual Studio Code或自定义脚本。

📦 安装指南

克隆仓库

git clone https://github.com/KRVaghani/Azure-MCP-Server.git
cd Azure-MCP-Server

安装先决条件

  • Python 3.11或更高版本
  • uv

设置虚拟环境和依赖项

uv venv
uv sync

设置API密钥

export API_KEYS=devkey  # 或您选择的密钥

运行服务器

uv run fastapi dev main.py

💻 使用示例

基础用法

本项目包含一个用于命令行交互的示例Python客户端(model_request_client.py),你可以按以下步骤操作:

python model_request_client.py
  • 输入您的API密钥(默认为devkey)
  • 选择工具:get_alerts(按美国州)或get_forecast(按纬度/经度)
  • 输入所需的参数
  • 服务器响应将在终端中显示

高级用法

你可以使用curl命令进行测试:

curl -H "x-api-key: devkey" http://localhost:8000/sse

📚 详细文档

API端点

  • /sse(GET):主要的SSE端点,用于MCP协议通信。需要x-api-key头。
  • /messages(SSE):内部使用的消息流端点(基于会话)。

🔧 技术细节

本项目是一个基于FastAPI的MCP服务器,通过Server-Sent事件(SSE)接口提供服务。SSE是一种允许服务器向客户端发送实时更新的技术,非常适合需要实时数据的应用场景。服务器使用API密钥进行身份验证,确保只有授权的客户端可以访问服务。

📄 许可证

本项目采用MIT许可证(如需添加LICENSE文件)。

本地运行

前提条件

  • Python 3.11或更高版本
  • uv

运行步骤

uv venv
uv sync

# Linux/macOS
export API_KEYS=
# Windows
set API_KEYS=

uv run fastapi dev main.py

VS Code 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  -n weather-mcp --environment mcp -l westus --env

故障排除

  • 如果看到ModuleNotFoundError,请确保激活了虚拟环境并且安装了依赖项。
  • 如果客户端挂起,请检查服务器是否在运行且API密钥匹配。
  • 对于venv中的pip问题,运行:
    python -m ensurepip --upgrade
    python -m pip install --upgrade pip
    

贡献

欢迎拉取请求!请先打开问题讨论主要更改。

  • 0 关注
  • 0 收藏,19 浏览
  • system 提出于 2025-10-01 12:51

相似服务问题

相关AI产品