Planet MCP Server

使用说明内容(Markdown格式)

项目简介

  • 这是一个本地 MCP 服务器实现,搭建在 Planet SDK 之上,允许 AI 代理/聊天系统通过标准的 MCP(JSON-RPC)协议与 Planet API 进行交互,注册并执行工具、检索资源、以及渲染提示模板等能力。服务器以 FastMCP 作为核心框架,支持将多个“子服务器”聚合到一个 MCP 服务中。

主要功能点

  • 实现 MCP 协议的核心能力:处理工具调用、资源访问与提示等请求,并返回标准的 JSON-RPC 响应。
  • 行业级工具集成:基于 Planet SDK 暴露的工具集合(如 data、features、orders、mosaics、destinations 等),并对部分工具签名进行适配与简化,方便 LLM 使用。
  • 服务组合与挂载:支持将多个子服务器(如 sdk、tiles、search 等)挂载到同一个 MCP 服务实例中,形成统一的对外访问点。
  • 可扩展的传输与会话管理:默认通过 stdio 传输启动,并通过 FastMCP 管理会话、生命周期和能力声明,便于接入不同的前端/代理。
  • 安全与治理:在实现中包含了对 Captain 级别工具的过滤与签名转换,提升与 LLM 的交互稳定性。

安装步骤

  • 运行环境要求:Python 3.11 及以上。
  • 安装命令(推荐):pip install planet-mcp
  • 认证与权限:在使用 Local MCP 服务器前,需进行 Planet 账号认证,执行 planet auth login。
  • 启动方式(两种常用方式):
    • 直接运行本地 CLI:planet-mcp
    • 通过开发/测试工具链运行(如 uv/fastmcp inspector),请参考 README 的本地开发说明,确保工作环境具备 uv、node、inspector 等依赖。

服务器配置(MCP 客户端需要的最小信息)

以下配置用于 MCP 客户端建立与 Planet MCP 服务器的连接。注:客户端不需要修改服务器端代码,仅需知道如何启动和连接即可。

  • server_name: planet
  • command: planet-mcp
  • args:
    • --include-tags=data,tiles,orders,destinations,mosaics,features
    • --exclude-tags=
    • --servers=
    • --no-banner

说明:

  • server_name 表示在 MCP 客户端中对该服务器的标识名称,便于在多服务器环境中区分。
  • command 指定用于启动服务器的可执行程序,在本仓库中通常是 planet-mcp,运行后会启动本地 MCP 服务。
  • args 为启动参数,用于控制包含的工具标签、禁用的工具、要启用的服务器等。默认包括数据、瓦片、订单、目的地、 mosaics、features 等工具集,具体可根据需要调整。

基本使用方法

  • 启动服务器后,客户端(LLM 代理、Copilot、Claude 等)通过 MCP 协议向服务器请求工具执行、资源读取与提示渲染等能力。
  • 常见交互路径包括:
    • 通过 sdk_* 开头的工具调用 Planet SDK 提供的能力(如数据搜索、特征数据获取等)。
    • 使用数据/搜索等工具组合完成对 Planet 数据的查询与处理。
    • 按需调整 include_tags/exclude_tags,精简或扩展可用工具集合。
  • 兼容性与问题排查:若遇到 ENOENT 等启动/路径问题,请确保 planet-mcp 已在当前使用的 Python 环境中正确安装并在 PATH 中可执行。可参考 README 的本地开发与 Troubleshooting 部分进行排错。

进阶说明

  • 该实现通过一个名为 PlanetContext 的上下文对象提供运行时上下文,并通过 lifespan 将该上下文注入到 FastMCP 服务中,方便在工具执行时访问全局状态或共享资源。
  • 服务器内部还对 Planet 的 SDK 工具进行了包装与改写(如参数类型简化、返回类型包装等),以提升与 LLM 的交互稳定性和可用性。

服务器信息