分布式MCP Server

分布式MCP Server

MCP Server 是一个 Microsoft Copilot 插件,通过 API 端点提供法律文档、Microsoft 许可证、天气数据和 Azure 价格查询工具。

简介

Model Context Protocol (MCP) 服务器提供多种工具接口,包括法律信息查询、天气数据、Azure价格查询以及实用工具等功能,可与 Microsoft Copilot 或其他支持 MCP 协议的 AI 助手集成。

功能概述

  • 法律信息工具:查询中国刑法条款、关键词搜索、条款名称查询
  • 天气工具:获取天气预警和预报
  • 其他工具:Azure价格查询、中文字数统计

快速开始

安装

git clone <repository-url>
cd mcp-server

# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

启动服务器

python mcp-server.py --host 0.0.0.0 --port 8080

服务器将在 http://localhost:8080 上运行。

使用示例

通过集成的 AI 助手调用工具:

# 查询法律条款
请帮我查询刑法第133条的内容。

# 查询天气信息
纽约现在有什么天气预警吗?

# 计算中文字数
这段文字有多少个汉字:人工智能正在改变我们的生活方式。

Docker 部署

# 构建镜像
docker build -t mcp-server .

# 运行容器
docker run -p 8080:8080 --env-file .env mcp-server

Azure 部署

1. 部署到 Azure Container Apps

# 创建环境
az containerapp env create --name my-environment --resource-group myResourceGroup --location eastasia

# 创建容器应用
az containerapp create \
  --name mcp-server-app \
  --resource-group myResourceGroup \
  --environment my-environment \
  --image myacrregistry.azurecr.io/mcp-server:latest \
  --target-port 8080 \
  --ingress external

添加新工具

@mcp.tool()
async def my_new_tool(param1: str, param2: int = None) -> str:
    """Tool description that will be shown to the user.
  
    Args:
        param1: Description of parameter 1
        param2: Description of parameter 2
    """
    try:
        # 实现功能逻辑
        return "结果数据"
    except Exception as e:
        return f"Error: {str(e)}"

故障排除

  • 检查数据库连接字符串格式是否正确
  • 验证 API 密钥和端点是否有效
  • 查看日志:az containerapp logs show --name mcp-server-app --resource-group myResourceGroup

参考资料