RapidAPI MCP Server 使用说明
项目简介
RapidAPI-MCP Server 是一个基于 Python 构建的 MCP 服务器,旨在为大型语言模型(LLM)应用提供专利数据上下文信息。它集成了 RapidAPI Global Patent API,能够检索全球专利数据,并将数据存储在本地 SQLite 数据库中。此外,该服务器还具备专利评分系统,可以对专利进行多维度评估,为 LLM 提供更丰富的专利分析能力。
主要功能点
- 专利数据检索: 连接 RapidAPI Global Patent API,支持关键词、日期范围等多种条件检索专利数据。
- 本地数据存储: 使用 SQLite 数据库存储检索到的专利数据,方便快速访问和管理。
- 专利评分系统: 内置专利评分系统 (pscore, cscore, lscore, tscore),从多个维度评估专利价值。
- 数据格式化: 将 API 返回的原始数据格式化为结构化数据,方便 LLM 应用使用。
- 可扩展性: 项目结构清晰,易于扩展新的数据源或功能模块。
安装步骤
-
克隆仓库
首先,将 RapidAPI-MCP 仓库克隆到本地:
git clone https://github.com/myownipgit/RapidAPI-MCP.git cd RapidAPI-MCP -
创建并激活 Conda 环境 (推荐)
推荐使用 Conda 管理 Python 环境。根据提供的 'environment.yml' 文件创建并激活环境:
conda env create -f environment.yml conda activate rapidapi-mcp或者,您也可以手动创建并配置环境:
conda create -n rapidapi-mcp python=3.11 conda activate rapidapi-mcp conda install -c conda-forge requests aiohttp python-dotenv pytest pip install rapidapi-connect -
配置环境变量
复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入您的 RapidAPI API 密钥。
cp .env.example .env # 编辑 .env 文件,填入 RAPIDAPI_KEY 等信息
服务器配置
MCP 客户端需要配置以下 JSON 格式信息以连接到 RapidAPI-MCP 服务器。由于此仓库提供的实现基于 Python 代码,您需要直接运行 Python 脚本来启动服务器。
{ "serverName": "RapidAPI-MCP Patent Server", "command": "python", "args": [ "-c", "from patent_mcp.server import MCPPatentServer; server = MCPPatentServer(); loop = asyncio.get_event_loop(); search_request = {'command': 'search', 'params': {'query': 'your_query', 'date_range': '2004-2024', 'page': 1, 'per_page': 10}}; results = loop.run_until_complete(server.handle_patent_request(search_request)); print(results)" ], "description": "连接到 RapidAPI-MCP 专利服务器,执行专利数据检索。", "parameters": { "query": { "type": "string", "description": "专利检索关键词,例如:quantum computing" }, "date_range": { "type": "string", "description": "检索日期范围,格式为 YYYY-YYYY,例如:2004-2024" }, "page": { "type": "integer", "description": "检索结果页码" }, "per_page": { "type": "integer", "description": "每页检索结果数量" } } }
配置参数说明:
- 'serverName': 服务器名称,可以自定义。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 传递给 'python' 命令的参数,这里使用 '-c' 参数直接执行 Python 代码。
- 注意: 上述 'args' 示例直接在命令行中模拟了一个 'search' 请求,您需要根据实际 MCP 客户端的通信方式调整服务器启动和请求处理方式。更标准的 MCP 服务器实现会监听特定的端口或协议(如 JSON-RPC over HTTP 或 WebSocket),并接收客户端发送的符合 MCP 协议的请求。此示例为了简化配置,直接在启动命令中包含了请求示例。
- 'description': 服务器功能描述,方便客户端用户理解。
- 'parameters': 定义了服务器可以接受的参数及其类型和描述,用于指导 MCP 客户端构建请求。
更贴合 MCP 客户端的配置 (假设客户端可以发送 JSON-RPC 请求到服务器,但此仓库实际代码并未实现标准 JSON-RPC,以下配置仅为概念示例,需要基于实际服务器代码进行调整或扩展):
由于仓库代码本身没有实现标准的 JSON-RPC 服务器,以下配置是假设如果需要将其改造为更标准的 MCP 服务器,客户端可能需要的配置示例。请注意,以下配置需要仓库代码进行相应的修改才能适配。
假设我们修改 'patent_mcp/server.py',使其监听 HTTP 端口并处理 JSON-RPC 请求。启动命令可能变为:
{ "serverName": "RapidAPI-MCP Patent Server (JSON-RPC)", "command": "python", "args": [ "-m", "patent_mcp.server", // 假设 server.py 可以作为模块运行并启动 HTTP 服务器 "--port", "8080" // 假设 server.py 接受 --port 参数指定端口 ], "description": "连接到 RapidAPI-MCP 专利服务器,通过 JSON-RPC 协议执行专利数据检索。", "protocol": "json-rpc", // 声明使用 JSON-RPC 协议 (假设) "endpoint": "http://localhost:8080/rpc", // JSON-RPC 端点 (假设) "methods": [ // 定义服务器支持的方法 (假设) { "name": "search_patents", "description": "检索专利数据", "parameters": { "query": { "type": "string", "description": "检索关键词" }, "date_range": { "type": "string", "description": "日期范围" }, "page": { "type": "integer", "description": "页码" }, "per_page": { "type": "integer", "description": "每页数量" } } }, // ... 其他可能的方法 ] }
注意: 以上 JSON-RPC 配置仅为示例,实际仓库代码并未实现标准的 JSON-RPC 服务器。 您需要根据 'patent_mcp/server.py' 的实际实现方式,或者修改 'server.py' 以符合 MCP 客户端的通信协议,并据此生成准确的服务器配置。
基本使用方法
-
启动服务器
根据 服务器配置 部分的说明,配置并启动 RapidAPI-MCP 服务器。对于当前仓库提供的代码,您可能需要直接运行 'examples/search_patents.py' 或类似的脚本进行测试和使用。
-
发送 MCP 请求
根据 MCP 客户端的要求,构建符合 MCP 协议的请求,并发送到 RapidAPI-MCP 服务器。
对于当前仓库提供的示例,您可能需要参考 'examples/search_patents.py' 中的请求格式,并使用 Python 代码与服务器进行交互。
例如,使用 'patent_mcp.server.MCPPatentServer' 类直接在 Python 代码中调用服务器功能:
import asyncio from patent_mcp.server import MCPPatentServer async def main(): server = MCPPatentServer() search_request = { 'command': 'search', 'params': { 'query': 'quantum computing', 'date_range': '2004-2024', 'page': 1, 'per_page': 10 } } results = await server.handle_patent_request(search_request) print(results) if __name__ == "__main__": asyncio.run(main())
请务必仔细阅读仓库代码和文档,理解其具体实现方式,并根据您的 MCP 客户端的要求进行适配和配置。 如果需要更标准的 MCP 服务器功能(例如 JSON-RPC 协议支持),您可能需要扩展或修改 'patent_mcp/server.py' 中的代码。
信息
分类
数据库与文件