发现优秀的 MCP 服务器
通过 MCP 服务器扩展您的代理能力,拥有 16,434 个能力。
MCP Finder Server
Documentation Hub MCP Server
simple_mcp_server4
RapidAPI MCP Server
以下是将 RapidAPI Global Patent API 集成到 MCP 服务器并使用 SQLite 存储的实现方案: **标题:基于 RapidAPI Global Patent API 的 MCP 服务器实现,并使用 SQLite 存储** **概述:** 本方案描述了如何构建一个 MCP (Minimal Control Protocol) 服务器,该服务器利用 RapidAPI 的 Global Patent API 来检索专利数据,并将检索到的数据存储在 SQLite 数据库中。 该服务器将接收来自客户端的请求,调用 RapidAPI 的 Global Patent API,解析响应,并将结果存储到 SQLite 数据库中。 **组件:** * **MCP 服务器:** 负责监听客户端请求,处理请求,调用 RapidAPI,并将结果返回给客户端。 * **RapidAPI Global Patent API:** 提供专利数据检索服务。 * **SQLite 数据库:** 用于存储检索到的专利数据。 * **客户端:** 发送请求到 MCP 服务器,并接收响应。 **技术栈:** * **编程语言:** Python (推荐,易于使用,拥有丰富的库) * **MCP 框架:** 可以使用现有的 MCP 框架,或者自行实现简单的 MCP 协议处理。 * **RapidAPI 客户端库:** 可以使用 `requests` 库或其他 HTTP 客户端库来调用 RapidAPI。 * **SQLite 数据库库:** `sqlite3` (Python 内置) **实现步骤:** 1. **环境搭建:** * 安装 Python。 * 安装必要的 Python 库:`pip install requests` * 安装 SQLite (通常操作系统自带)。 2. **RapidAPI 密钥获取:** * 在 RapidAPI 注册并订阅 Global Patent API。 * 获取 API 密钥 (通常在 RapidAPI 控制面板中)。 3. **SQLite 数据库设计:** * 设计数据库表结构,用于存储专利数据。 例如: * `patents` 表: * `id` (INTEGER PRIMARY KEY AUTOINCREMENT) * `patent_number` (TEXT UNIQUE) * `title` (TEXT) * `abstract` (TEXT) * `inventors` (TEXT) * `assignees` (TEXT) * `filing_date` (TEXT) * `publication_date` (TEXT) * `raw_data` (TEXT) (存储完整的 API 响应,方便后续处理) * `created_at` (TIMESTAMP DEFAULT CURRENT_TIMESTAMP) * 创建数据库和表。 4. **MCP 服务器实现:** * **监听端口:** 服务器监听指定的端口,等待客户端连接。 * **接收请求:** 接收客户端发送的 MCP 请求。 * **解析请求:** 解析 MCP 请求,提取请求参数 (例如,搜索关键词,专利号等)。 * **调用 RapidAPI:** 使用 RapidAPI 密钥和请求参数,调用 Global Patent API。 * **解析响应:** 解析 RapidAPI 返回的 JSON 响应。 * **存储数据到 SQLite:** 将解析后的专利数据存储到 SQLite 数据库中。 * **返回响应:** 将结果 (例如,成功/失败,专利 ID 等) 封装成 MCP 响应,返回给客户端。 5. **客户端实现 (可选):** * 编写客户端程序,用于发送 MCP 请求到服务器,并接收响应。 **代码示例 (Python):** ```python import sqlite3 import requests import json # RapidAPI 配置 RAPIDAPI_KEY = "YOUR_RAPIDAPI_KEY" # 替换为你的 RapidAPI 密钥 RAPIDAPI_HOST = "global-patent.p.rapidapi.com" RAPIDAPI_ENDPOINT = "/patents/search" # SQLite 数据库配置 DATABASE_FILE = "patents.db" def create_table(): conn = sqlite3.connect(DATABASE_FILE) cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS patents ( id INTEGER PRIMARY KEY AUTOINCREMENT, patent_number TEXT UNIQUE, title TEXT, abstract TEXT, inventors TEXT, assignees TEXT, filing_date TEXT, publication_date TEXT, raw_data TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) """) conn.commit() conn.close() def search_patents(query): url = f"https://{RAPIDAPI_HOST}{RAPIDAPI_ENDPOINT}" headers = { "X-RapidAPI-Key": RAPIDAPI_KEY, "X-RapidAPI-Host": RAPIDAPI_HOST } querystring = {"q": query} response = requests.get(url, headers=headers, params=querystring) if response.status_code == 200: return response.json() else: print(f"Error: {response.status_code} - {response.text}") return None def store_patent_data(patent_data): conn = sqlite3.connect(DATABASE_FILE) cursor = conn.cursor() try: patent_number = patent_data.get("patent_number") title = patent_data.get("title") abstract = patent_data.get("abstract") inventors = ", ".join(patent_data.get("inventors", [])) assignees = ", ".join(patent_data.get("assignees", [])) filing_date = patent_data.get("filing_date") publication_date = patent_data.get("publication_date") raw_data = json.dumps(patent_data) cursor.execute(""" INSERT INTO patents (patent_number, title, abstract, inventors, assignees, filing_date, publication_date, raw_data) VALUES (?, ?, ?, ?, ?, ?, ?, ?) """, (patent_number, title, abstract, inventors, assignees, filing_date, publication_date, raw_data)) conn.commit() print(f"Patent {patent_number} stored successfully.") except sqlite3.IntegrityError: print(f"Patent {patent_number} already exists in the database.") except Exception as e: print(f"Error storing patent data: {e}") conn.rollback() finally: conn.close() # 示例 MCP 服务器 (简化版) def handle_mcp_request(request): # 假设请求格式为 "SEARCH:关键词" if request.startswith("SEARCH:"): query = request[7:] print(f"Searching for: {query}") patent_results = search_patents(query) if patent_results and patent_results.get("results"): for patent in patent_results["results"]: store_patent_data(patent) return "SEARCH_SUCCESS" else: return "SEARCH_FAILED" else: return "INVALID_REQUEST" # 主程序 if __name__ == "__main__": create_table() # 创建数据库表 # 模拟 MCP 请求 mcp_request = "SEARCH:artificial intelligence" response = handle_mcp_request(mcp_request) print(f"MCP Response: {response}") mcp_request = "SEARCH:blockchain technology" response = handle_mcp_request(mcp_request) print(f"MCP Response: {response}") print("Done.") ``` **关键点:** * **错误处理:** 在调用 RapidAPI 和操作 SQLite 数据库时,需要进行充分的错误处理,例如处理网络错误,API 错误,数据库错误等。 * **数据清洗:** RapidAPI 返回的数据可能需要进行清洗和转换,才能更好地存储到数据库中。 * **并发处理:** 如果服务器需要处理大量的并发请求,需要考虑使用多线程或异步编程来提高性能。 * **安全性:** 保护 RapidAPI 密钥,避免泄露。 对客户端请求进行验证,防止恶意请求。 * **MCP 协议:** 根据实际需求,定义合适的 MCP 协议,包括请求格式,响应格式,错误码等。 * **分页处理:** 如果 RapidAPI 返回的结果集很大,需要进行分页处理,避免一次性加载所有数据。 * **速率限制:** 注意 RapidAPI 的速率限制,避免超过限制导致请求失败。 可以实现速率限制机制,例如使用令牌桶算法。 * **数据更新:** 可以定期更新数据库中的专利数据,以保持数据的最新性。 **改进方向:** * **使用更完善的 MCP 框架:** 例如 Twisted, asyncio 等。 * **添加缓存机制:** 使用 Redis 或 Memcached 等缓存数据库,缓存常用的查询结果,提高响应速度。 * **实现更复杂的搜索功能:** 例如,支持按发明人,申请人,申请日期等进行搜索。 * **提供 API 接口:** 将 MCP 服务器封装成 RESTful API,方便其他应用程序调用。 * **使用 ORM:** 使用 SQLAlchemy 等 ORM 框架,简化数据库操作。 **总结:** 本方案提供了一个将 RapidAPI Global Patent API 集成到 MCP 服务器并使用 SQLite 存储的基本框架。 您可以根据实际需求,对该方案进行修改和扩展,以满足您的特定需求。 请务必替换 `YOUR_RAPIDAPI_KEY` 为您自己的 RapidAPI 密钥。 这个示例代码只是一个起点,你需要根据你的具体需求进行修改和完善。
Model Context Protocol(MCP) 编程极速入门
模型上下文协议(MCP)编程快速入门
VoiceStudio MCP Server
flightradar-24-mcp-server
Flightradar24 MCP 服务器 (Flightradar24 MCP fúwùqì)
MCP server for kintone
镜子 (jìng zi)
MCP EV Assistant Server
一个强大的服务器实现,用于管理电动汽车 (EV) 充电站、行程规划和资源管理。该服务器为电动汽车相关服务提供了一套全面的工具和 API。
MCP Community Contributions
这是一个目录仓库,用于存放与 MCP 相关的所有内容——服务器、客户端以及围绕 MCP 的项目。
🌤️ MCP Weather Server (Cursor + Node.js + WSL)
Mcp Memory Bank
一个强大且可用于生产环境的大型语言模型(LLM)上下文管理系统。它基于 ChromaDB 和现代嵌入技术构建,提供持久的、特定于项目的记忆能力,从而增强您 AI 的理解和响应质量。
Simple MCP Server
Serper
MCP Google Custom Search Server
镜子 (jìng zi)
Groq MCP Server
Groq MCP 服务器 (Groq MCP fúwùqì)
MCPServerProject
从 MCP 服务器演示创建。
MCP Server for Hacker News
黑客新闻的 MCP 服务器
mcp-sondehub
一个用于 SondeHub API 的 MCP 服务器,主要用于 MCP 实验。
AFL (Australian Football League) MCP Server
这是一个模型上下文协议 (MCP) 服务器,它提供来自 Squiggle API 的澳式足球联盟 (AFL) 数据。
PrivateGPT MCP Server
镜子 (jìng zi)
golf-course-project-mcp-server
高尔夫球场项目 MCP 服务器
MCP_claude
这是为了演示如何为 Claude Desktop MCP 客户端构建一个 MCP 服务器。
Jewish Library MCP Server
镜子 (jìng zi)
MCP Analyst
MCP Analyst 是一个 MCP 服务器,它使 Claude 能够分析本地 CSV 或 Parquet 文件。
MCP Server: Elasticsearch semantic search tool
镜子 (jìng zi)
MCP-Server
YouTube Transcript API
一个 MCP 服务器可以帮助转录 YouTube 视频。 (Yī gè MCP fúwùqì kěyǐ bāngzhù zhuǎnlù YouTube shìpín.)
ChEMBL-MCP-Server
🔍 通过简单的 MCP 接口,使 AI 助手能够搜索、访问和分析 ChEMBL。
Letta MCP Server
镜子 (jìng zi)