使用说明
项目简介
本项目是一个基于Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 提供访问外部数据源的能力。具体而言,此服务器连接到一个GraphQL API,该API提供对策略 (policies) 数据的访问。通过此MCP服务器,LLM客户端可以调用预定义的工具来查询和检索策略信息,从而增强LLM在策略相关任务中的上下文理解和处理能力。
主要功能点
- 连接GraphQL API: 服务器可以连接到预配置的GraphQL API端点,并获取其Schema信息。
- 动态生成GraphQL查询: 根据用户描述和GraphQL Schema,服务器可以辅助生成用于查询策略数据的GraphQL查询语句。
- 执行GraphQL查询: 服务器可以执行生成的或用户提供的GraphQL查询,并返回从GraphQL API获取的策略数据。
- BMI计算工具 (示例): 包含一个简单的BMI计算工具,展示了工具注册和执行的基本功能(尽管与核心GraphQL功能关联不大,但作为示例存在)。
安装步骤
-
克隆仓库:
git clone https://github.com/Ad-Veritas/mcp-server-trueRAG.git cd mcp-server-trueRAG -
安装 'uv' (如果尚未安装): 按照仓库 'README.md' 中的指引安装 'uv' 包管理器。'uv' 用于管理Python环境和依赖。
-
配置环境变量: 在项目根目录下创建 '.env' 文件,并填入GraphQL API的密钥和端点信息。
GRAPHQL_API_KEY = "{your_api_key}" GRAPHQL_ENDPOINT = "{your_graphql_endpoint}"请替换 '{your_api_key}' 和 '{your_graphql_endpoint}' 为您实际的API密钥和端点。
-
运行MCP服务器: 在项目根目录下,使用 'uv' 运行 'server.py' 文件启动MCP服务器。
uv run fastmcp run server.py服务器默认监听标准输入/输出 (stdio) 进行通信。
服务器配置
要将此MCP服务器配置到MCP客户端(例如Claude Desktop),您需要提供以下JSON配置信息给客户端。配置信息定义了一个名为 "shipping-policies" 的服务器,客户端将使用此名称来引用该服务器提供的工具。
{ "shipping-policies": { "command": "uv", // 启动服务器的命令,这里使用 uv "args": [ // 命令的参数列表 "--directory", // 指定工作目录 "{path_to_mcp_server}/mcp-server-trueRAG", // MCP服务器代码所在的目录,请替换为实际路径 "run", // uv 的子命令,表示运行 Python 脚本 "fastmcp", // 运行 fastmcp "run", // 再次运行 run 子命令 "server.py" // 要运行的服务器脚本 ] } }
请务必将 '{path_to_mcp_server}/mcp-server-trueRAG' 替换为 'mcp-server-trueRAG' 仓库在您本地文件系统中的实际路径。 例如,如果您的仓库位于 '/Users/yourname/Documents/mcp-server-trueRAG',则应替换为 '/Users/yourname/Documents/mcp-server-trueRAG'。
将上述JSON配置添加到您的MCP客户端配置文件中(例如Claude Desktop的 'claude_desktop_config.json' 文件)。
基本使用方法
- 启动MCP服务器后,在MCP客户端中配置并连接到该服务器。
- 客户端可以使用服务器提供的工具。例如,客户端可以指示LLM调用 'shipping-policies.connect_graphql' 工具来连接GraphQL API。
- LLM 可以调用 'shipping-policies.generate_query' 工具,并提供自然语言描述,请求服务器生成GraphQL查询语句。
- LLM 可以调用 'shipping-policies.execute_graphql' 工具,并提供GraphQL查询语句(以及可选的变量),执行查询并获取策略数据。
- LLM 还可以调用 'shipping-policies.calculate_bmi' 工具进行BMI计算(示例工具)。
通过这些工具,LLM可以与GraphQL API交互,获取所需的策略数据,从而在对话或任务中利用这些信息。
信息
分类
网页与API