使用说明
项目简介
本项目 'mcp-server' 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供丰富的外部信息查询能力。它通过标准化的 MCP 协议与客户端通信,允许 LLM 应用安全、可扩展地访问各种上下文信息和工具。
主要功能点
- 多领域信息查询工具: 提供包括中国法律法规、微软产品许可、天气预报、Azure云服务定价等多种实用信息查询工具。
- LlamaIndex 驱动: 使用 LlamaIndex 框架进行向量搜索和信息检索,优化信息查询效率和相关性。
- Azure OpenAI 集成: 利用 Azure OpenAI 的强大语言模型和嵌入能力,提升信息理解和处理的智能化水平。
- 多种数据存储支持: 支持 MongoDB 和 Azure Cosmos DB 作为数据存储后端,具备良好的可扩展性和灵活性。
- Server-Sent Events (SSE) 通信: 采用 SSE 协议进行 MCP 服务器与客户端之间的实时通信。
- 易于扩展的工具框架: 通过简单的装饰器即可轻松添加新的工具功能。
安装步骤
-
克隆仓库
git clone https://github.com/xuhaoruins/mcp-server cd mcp-server -
创建并激活虚拟环境
python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows -
安装依赖
pip install -r requirements.txt -
配置环境变量 在项目根目录下创建 '.env' 文件,并根据你的实际情况填写以下配置信息:
MONGODB_CONNECTION_STRING="your_mongodb_connection_string" # MongoDB 或 Azure Cosmos DB 连接字符串 AZURE_OPENAI_API_KEY="your_azure_openai_api_key" # Azure OpenAI API 密钥 AZURE_OPENAI_ENDPOINT="your_azure_openai_endpoint" # Azure OpenAI Endpoint AZURE_OPENAI_CHAT_MODEL="gpt-4" # Azure OpenAI Chat 模型名称 (例如 gpt-4, gpt-35-turbo) AZURE_OPENAI_EMBEDDING_MODEL="text-embedding-ada-002" # Azure OpenAI Embedding 模型名称 AZURE_OPENAI_TEMPERATURE="0.1" # Azure OpenAI 温度参数请确保 MongoDB 连接字符串格式正确,Azure OpenAI API 密钥和 Endpoint 填写正确。
-
(可选) Docker 部署 如果你希望使用 Docker 部署,可以执行以下命令:
docker build -t mcp-server . docker run -d -p 8080:8080 --env-file .env mcp-server
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接到此 MCP 服务器:
{ "serverName": "mcp-server", "command": "python", "args": [ "mcp-server.py", "--host", "0.0.0.0", "--port", "8080" ] }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。例如 "mcp-server"。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 启动服务器命令的参数列表。
- '"mcp-server.py"': 指定运行 'mcp-server.py' 文件。
- '"--host"': 指定服务器绑定的主机地址,'0.0.0.0' 表示监听所有网络接口。
- '"0.0.0.0"': '--host' 参数的值,即监听地址。
- '"--port"': 指定服务器监听的端口号。
- '"8080"': '--port' 参数的值,即端口号为 8080。
注意: MCP 客户端需要能够执行 'python' 命令,并访问到 'mcp-server.py' 文件所在的目录。如果使用 Docker 部署,MCP 客户端需要配置访问 Docker 容器网络的方式。
基本使用方法
-
启动服务器 在项目根目录下,使用以下命令启动 MCP 服务器:
python mcp-server.py --host 0.0.0.0 --port 8080服务器成功启动后,会监听在 'http://localhost:8080' (或你指定的 host 和 port)。
-
MCP 客户端连接 配置你的 MCP 客户端,使其连接到运行中的 MCP 服务器。客户端会通过 SSE 或 POST 请求与服务器进行通信,调用服务器提供的工具。
-
工具调用 服务器提供了以下工具,客户端可以通过 MCP 协议调用这些工具来获取信息:
许可信息工具
- 'query_visual_studio_license': 查询 Visual Studio 2022 许可信息
- 'query_sql_server_license': 查询 SQL Server 2022 许可信息
- 'query_windows_server_license': 查询 Windows Server 2022 许可信息
- 'query_m365_license': 查询 Microsoft 365 企业版许可信息
- 'query_dynamics365_license': 查询 Dynamics 365 许可信息
隐私法规工具
- 'query_gdpr': 查询 GDPR (通用数据保护条例) 信息
- 'query_china_pipl': 查询中国个人信息保护法 (PIPL) 信息
法律信息工具
- 'get_article_by_code': 根据条文编号获取中国刑法条文信息
- 'search_by_content': 根据内容搜索中国刑法条文
- 'get_by_article_name': 根据罪名/案由获取法律信息
- 'get_specific_article': 获取中国刑法特定条文的特定款项
- 'get_all_law_contents': 获取中国刑法所有条文内容
天气和实用工具
- 'get_alerts': 获取美国特定州的天气警报
- 'get_forecast': 获取特定地点的天气预报
- 'get_azure_price': 使用 OData 过滤器查询 Azure 云服务定价
- 'count_chinese_characters': 统计文本中中文字符的数量
具体工具的使用方法和参数,请参考 'mcp-server.py' 文件中每个工具函数的文档字符串 (docstring)。
开发新工具
要添加新的工具,只需在 'mcp-server.py' 文件中定义一个新的异步函数,并使用 '@mcp.tool()' 装饰器进行标记。详细步骤请参考 README.md 的 "Development" 部分。
信息
分类
网页与API