AppStoresMCP
使用说明(Markdown 格式)
项目简介
AppStoresMCP 是一个基于 Model Context Protocol 的后端服务,旨在为大型语言模型(LLM)提供结构化的应用商店上下文信息、数据资源以及对外部功能的调用能力。服务器通过 JSON-RPC 与客户端通信,支持多种传输协议(HTTP、SSE、以及标准化的 stdio 桥接等),并对 Google Play 与 Apple App Store 的数据提供完整的工具入口。
主要功能点
- MCP 协议核心处理:接收、解析并返回符合 MCP 规范的 JSON-RPC 请求/响应。
- 资源、工具、提示模板管理:托管数据资源,注册并执行工具,定义和渲染提示模板,支持可定制的交互模式。
- 多传输协议支持:HTTP 流式传输、SSE 传输、以及与客户端对接的 stdio 桥等,确保兼容不同的 MCP 客户端。
- 数据保真与可配置性:提供原始数据模型(fullDetail=true 时),并配有响应过滤与速率限制等安全特性。
- App Store 数据能力:内置对 Google Play 和 Apple App Store 的 19 种 MCP 工具,覆盖应用详情、评测、搜索、列表、开发者等多样场景,并提供本地化参数(语言与区域)。
- 健康检查与容器化部署:健康端点、日志、错误处理、Docker 友好等生产就绪特性。
安装步骤
- 先决条件:Node.js 18 及以上,NPM 或 Yarn。
- 克隆仓库并安装依赖。
- 构建项目并启动服务器。
- 通过健康接口 http://localhost:3000/health 验证运行状态。
服务器配置
以下为 MCP 服务器的配置示例说明(以 JSON 形式描述,供 MCP 客户端使用信息示例,不是直接代码): { "serverName": "app-store-mcp-server", "command": "npm start", "args": [ "--port", "3000" ], "environment": { "PORT": "3000", "ENABLE_HTTP_TRANSPORT": "true", "ENABLE_SSE_TRANSPORT": "true", "SCRAPING_TIMEOUT": "30000", "SCRAPING_RETRIES": "3", "ENABLED_TOOLS": "google-play-search,google-play-app-details,google-play-app-reviews,app-store-search,app-store-app-details,app-store-app-reviews", "DISABLED_TOOLS": "" } } 说明
- serverName 指明服务器对外标识名称,用于客户端配置与健康查询。
- command 与 args 指示启动命令及参数,环境变量可按需扩展,例如禁用某些工具、设定并发与超时等。
- ENABLED_TOOLS/DISABLED_TOOLS 及 ENABLE_TOOL_/DISABLE_TOOL_ 等变量用于精细化控制暴露的工具集合,具体按仓库实现中的优先级规则生效。
基本使用方法
- 通过 HTTP 传输向 /mcp 发送 JSON-RPC 请求,获取工具列表、调用工具等。
- 通过 SSE 传输建立连接,初始化后即可接收服务器能力、日志、以及工具调用结果的事件通知。
- MCP客户端需要对接服务器的入口地址(如 http://localhost:3000/mcp)以及相关配置参数,具体实现和参数以 MCP 客户端文档为准。
维护与扩展
- 支持自行添加新工具:实现一个符合 MCPTool 接口的工具类,注册到工具注册表中。
- 提供单元测试与集成测试覆盖 MCP 协议、传输层及工具执行流程,确保稳定性与向后兼容。
- 使用 Docker 进行部署,支持多阶段构建以减小镜像体积。
小结
AppStoresMCP 已实现基于 MCP 的服务器端能力,具备资源、工具、提示模板的标准化管理能力,且通过 HTTP/ SSE 等传输协议与 MCP 客户端进行交互,满足“以标准化方式向 LLM 客户端提供上下文信息和功能”的核心目标。仓库中包含丰富的工具实现、传输层实现、以及对 MCP 协议的全面测试,属于较为完整的 MCP 服务端实现。