mcpField
P
Productplan Mcp Server

Productplan Mcp Server

本地服务
github.com生产力32 周前更新

关于 Productplan Mcp Server

Productplan Mcp Server 让 AI 助手通过自然语言查询和管理 ProductPlan 路线图、想法、OKR 与发布计划。产品经理和团队负责人可通过本地进程访问真实数据,并执行经过验证的批量条目修改。

主要功能

  1. 01查询路线图及路线图条目
  2. 02创建、编辑和删除条目
  3. 03管理想法、机会与 OKR
  4. 04查看和管理发布计划及任务
  5. 05支持带验证的批量条目修改

适用场景

  1. 01准备站会,汇总路线图近期变更
  2. 02查看目标进度并整理利益相关方更新
  3. 03筛选待评估的客户想法
  4. 04检查发布计划中的未完成任务

MCP 相关

该本地 MCP 服务将客户端请求转换为 ProductPlan API 调用,并向 AI 助手提供路线图、想法、OKR、发布计划等数据的查询和管理工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
ocighcr.io/olgasafonova/productplan-mcp-server:6.0.0
mcpbproductplan-mcp-server-darwin-arm64.mcpb6.0.0
mcpbproductplan-mcp-server-darwin-amd64.mcpb6.0.0
mcpbproductplan-mcp-server-linux-amd64.mcpb6.0.0
mcpbproductplan-mcp-server-linux-arm64.mcpb6.0.0
mcpbproductplan-mcp-server-windows-amd64.mcpb6.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ProductPlan MCP 服务

CI lint CodeScene Average Code Health

通过 AI 与路线图对话。 使用自然语言与 Claude、Cursor 或其他 AI 助手交流,提出问题、创建创意、查看 OKR 进度并管理发布。

你可以用它做什么?

无需在 ProductPlan 界面中逐页点击,只需提问:

“我们的 Q1 路线图上有什么?”

“显示所有进度落后的目标”

“为移动应用改进创建一个新创意”

“本月有哪些发布计划?”

“列出所有带有 ‘customer-request’ 标签的创意”

“为每个 eFormidling 条形项应用 Customer satisfaction 图例颜色”

“将这十个条形项移到 Platform 泳道,并添加 Q3 标签”

AI 会获取你在 ProductPlan 中的真实数据,并在几秒钟内作出回应。批量修改条形项会通过一次经过验证的调用完成:写入任何内容之前,系统都会检查每个条形项;你也可以先请求试运行。

适用人群

  • 产品经理:希望更快访问路线图数据
  • 团队负责人:需要快速查看状态,无需切换上下文
  • 所有使用 AI 助手的人(Claude、Cursor 等):希望将 ProductPlan 集成到工作流中

无需编写代码。你只需复制一个文件并粘贴一些设置。


快速开始(5 分钟)

步骤 1:获取 ProductPlan API 令牌
  1. 登录 ProductPlan
  2. 前往 Settings → API(或直接访问此链接)
  3. 复制 API 令牌
步骤 2:下载应用

前往 Releases 页面,下载适用于你电脑的文件:

你的电脑下载此文件
Mac(M1、M2、M3、M4)productplan-darwin-arm64
Mac(Intel)productplan-darwin-amd64
Windowsproductplan-windows-amd64.exe
Linuxproductplan-linux-amd64

在 Mac/Linux 上,打开终端并运行以下两条命令(将文件名替换为你下载的文件名):

chmod +x ~/Downloads/productplan-darwin-arm64
sudo mv ~/Downloads/productplan-darwin-arm64 /usr/local/bin/productplan

系统会提示你输入密码,这是正常的。

在 Windows 上:

  1. 为二进制文件创建一个文件夹(如果该文件夹尚不存在):

    mkdir C:\Tools
    
  2. 将下载的 .exe 移到该文件夹,并重命名:

    move %USERPROFILE%\Downloads\productplan-windows-amd64.exe C:\Tools\productplan.exe
    
  3. 在 AI 助手配置中使用完整路径 C:\Tools\productplan.exe(见步骤 3)

注意:你可以跳过将其添加到 PATH 的步骤。在配置中使用完整文件路径即可。

第 3 步:连接到 AI 助手

选择你使用的工具:

Claude Desktop(点击展开)
  1. 找到配置文件:

    • Mac:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  2. 用任意文本编辑器打开文件并添加以下内容(将 your-token 替换为你的实际 API 令牌):

Mac/Linux:

{
  "mcpServers": {
    "productplan": {
      "command": "/usr/local/bin/productplan",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "productplan": {
      "command": "C:\\Tools\\productplan.exe",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  }
}
  1. 重启 Claude Desktop
Claude Code (Terminal)

添加到配置文件:

  • Mac/Linux:~/.claude.json
  • Windows:%USERPROFILE%\.claude.json

Mac/Linux:

{
  "mcpServers": {
    "productplan": {
      "command": "/usr/local/bin/productplan",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "productplan": {
      "command": "C:\\Tools\\productplan.exe",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  }
}
Cursor
  1. 打开 Cursor
  2. 转到 设置 → MCP 服务
  3. 添加以下配置:

Mac/Linux:

{
  "productplan": {
    "command": "/usr/local/bin/productplan",
    "env": {
      "PRODUCTPLAN_API_TOKEN": "your-token"
    }
  }
}

Windows:

{
  "productplan": {
    "command": "C:\\Tools\\productplan.exe",
    "env": {
      "PRODUCTPLAN_API_TOKEN": "your-token"
    }
  }
}

Windows 用户:路径中使用双反斜杠(\\)。这是必需的,因为在 JSON 中,反斜杠是转义字符。

VS Code + Cline
  1. 安装 Cline 扩展
  2. 打开 VS Code 设置(JSON)并添加:

Mac/Linux:

{
  "cline.mcpServers": {
    "productplan": {
      "command": "/usr/local/bin/productplan",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  }
}

Windows:

{
  "cline.mcpServers": {
    "productplan": {
      "command": "C:\\Tools\\productplan.exe",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  }
}
VS Code + Continue
  1. 安装 Continue 扩展
  2. 添加到配置文件:
    • Mac/Linux:~/.continue/config.json
    • Windows:%USERPROFILE%\.continue\config.json

Mac/Linux:

{
  "mcpServers": [
    {
      "name": "productplan",
      "command": "/usr/local/bin/productplan",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  ]
}

Windows:

{
  "mcpServers": [
    {
      "name": "productplan",
      "command": "C:\\Tools\\productplan.exe",
      "env": {
        "PRODUCTPLAN_API_TOKEN": "your-token"
      }
    }
  ]
}
n8n(工作流自动化)
  1. 在 n8n 实例上设置环境变量:
    N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
    
  2. 在工作流中添加一个 MCP 客户端节点
  3. 配置:
    • 命令:
      • Mac/Linux:/usr/local/bin/productplan
      • Windows:C:\Tools\productplan.exe
    • 环境变量:PRODUCTPLAN_API_TOKEN=your-token
  4. 连接到 AI Agent 节点

工作流示例:Slack Trigger → AI Agent (with MCP Client) → Slack Response

第 4 步:开始提问

打开 AI 助手并尝试询问:

  • “列出我的 ProductPlan 路线图”
  • “路线图 [name] 上有哪些条目?”
  • “显示我们的 OKR”
  • “探索阶段有哪些想法?”

实际应用场景

每日站会准备

“总结一下上周我们的 Product Roadmap 有哪些变化”

利益相关方更新

“列出所有 Q1 目标及其进展”

想法筛选

“显示所有带有 ‘enterprise’ 标签但尚未设置优先级的想法”

发布协调

“1 月发布还有哪些任务未完成?”

快速查询

“‘Mobile App v2’ 计划何时开始?”


可以访问哪些 ProductPlan 数据?

功能查看创建编辑删除
路线图是---
路线图评论是---
条目(路线图项目)是是是是
批量编辑条目(每次最多 100 个)-是是是
条目评论是---
条目关联是是-是
条目链接是是-是
泳道(类别)是是是是
图例(条目颜色)是-分配给条目-
里程碑是是是是
创意(Discovery)是是是-
创意客户是---
创意标签是---
机会是是是-
创意表单是---
目标(OKR)是是是是
关键结果是是是是
发布是是是是
发布分区是是是是
发布任务是是是是
用户是---
团队是---

列表工具支持筛选条件,因此你可以精准获取所需内容:按名称、日期、泳道、图例或标签筛选条目,按名称或状态筛选创意、机会、发布和路线图。

ProductPlan API 本身不支持某些操作,因此没有任何工具可以执行:创建图例、设置泳道颜色、撰写评论、在条目嵌套后将其从容器中移除,以及创建 Azure DevOps 或 Jira 集成链接(通过 API 创建的链接只是普通网页链接)。


工作原理

┌─────────────────┐      spawns       ┌─────────────────┐      API calls     ┌─────────────────┐
│   AI Assistant  │ ───────────────── │   MCP Server    │ ─────────────────▶ │   ProductPlan   │
│ (Claude, Cursor)│ ◀───────────────▶ │   (this binary) │ ◀───────────────── │      API        │
└─────────────────┘   stdin/stdout    └─────────────────┘     JSON data      └─────────────────┘
      your computer                        your computer                         cloud

为什么必须在你的电脑上运行?

MCP(Model Context Protocol)通过子进程模型运行。你的 AI 助手不会连接到远程服务;它会将二进制文件作为本地进程启动,并通过 stdin/stdout 与其通信。这种架构意味着:

  1. 二进制文件必须存在于本地,因为你的 AI 助手会将其作为子进程运行
  2. 你的 API 令牌保留在你的电脑上,绝不会经过第三方服务
  3. 实时同步通信,AI 与 MCP 服务之间没有网络延迟
  4. 缓存数据可离线使用(但调用 ProductPlan API 仍需要联网)

当你询问“我们的 Q1 路线图上有什么?”时,会发生以下情况:

  1. 你的 AI 助手识别出需要 ProductPlan 数据
  2. 它向 MCP 服务进程发送结构化请求
  3. 二进制文件将其转换为 ProductPlan API 调用
  4. ProductPlan 返回 JSON 数据
  5. 二进制文件整理结果并返回给你的 AI
  6. 你的 AI 用自然语言呈现答案

Agent 技能

预先构建的工作流指南,帮助 AI 助手掌握如何有效使用 ProductPlan 工具。每项技能都面向特定角色,并提供量身定制的工作流。

技能适用对象重点
productplan-workflows通用核心模式和工具参考
productplan-pm产品经理全套工具:路线图、OKR、创意、发布
productplan-leadership高管产品组合健康状况、跨路线图视图
productplan-customer-facing销售和 CS面向客户的路线图时间线
共享原则

所有技能都遵循以下输出规范:

  • 不输出原始 JSON - 将回复格式化为易读的文本和表格
  • 使用易读的日期 - 使用“March 2025”或“Q1 2025”,而不是“2025-03-15”
  • 概述较长的列表 - 不要用 50 个条目让人应接不暇;可以提出展开说明

不同角色的专属差异:

  • PM 会为后续操作包含 bar_id
  • 领导层 会先给出执行摘要,隐藏实现细节
  • 面向客户 的内容完全省略内部 ID、泳道名称和 OKR

使用技能的方法:将 SKILL.md 文件复制到你的 Claude Code 技能目录:

# Copy a skill (example: PM skill)
cp skills/productplan-pm/SKILL.md ~/.claude/skills/productplan-pm.md

或者在提示词中直接引用技能:

“使用 productplan-pm 工作流向我展示我们的 Q1 路线图”


故障排查

“Command not found”或“spawn ENOENT”

AI 助手找不到二进制文件。这意味着:

  • Mac/Linux:文件不在 /usr/local/bin/productplan,或者你忘记运行 chmod +x
  • Windows:配置中的路径与保存 .exe 文件的位置不一致

解决方法:确认二进制文件位于配置指定的路径。运行 ls -la /usr/local/bin/productplan(Mac/Linux),或检查 C:\Tools\productplan.exe 是否存在(Windows)。

Windows 路径问题

Windows 上的常见错误:

错误正确
/usr/local/bin/productplanC:\\Tools\\productplan.exe
C:\Tools\productplan.exe(JSON 中使用单反斜杠)C:\\Tools\\productplan.exe
productplan(没有路径)C:\\Tools\\productplan.exe
缺少 .exe 扩展名在路径中包含 .exe

Windows 使用反斜杠(\)表示路径,但 JSON 会将反斜杠视为转义字符。你必须在配置文件中将反斜杠加倍(\\)。

“Invalid API token”

请在 ProductPlan Settings → API 中仔细检查你的令牌。令牌可能已过期或重新生成。确保复制了完整令牌,且没有多余空格。

“No roadmaps found”

你的 API 令牌只能访问你在 ProductPlan 中有权限查看的数据。请确认你的账户有权访问你要查找的路线图。

AI 助手看不到 ProductPlan 工具

MCP 服务会在 AI 助手启动时加载,而不是在配置更改时加载。编辑配置文件后,请完全退出并重启应用程序。在 Mac 上,请使用 Cmd+Q(不要只关闭窗口)。

泳道颜色未更改

颜色由图例 名称(例如“Committed”)设置,而不是由 ID 设置。请让助手先列出路线图的图例。6.0.0 之前的版本会发送 legend_id,ProductPlan 会将其视为“移除颜色”;如果颜色持续消失,请升级。

“unknown argument”错误

从 6.0.0 起,服务会拒绝工具不支持的参数,并建议最接近的有效参数(“你是不是想用 legend?”)。这通常意味着助手猜错了参数名称;它可以根据建议重试。

Mac/Linux 上出现“Permission denied”

二进制文件需要执行权限。运行:

chmod +x /usr/local/bin/productplan

命令行(可选)

你也可以在终端中直接使用此工具,无需 AI 助手:

# First, set your token
export PRODUCTPLAN_API_TOKEN="your-token"

# Then run commands
productplan status           # Check connection
productplan roadmaps         # List all roadmaps
productplan bars 12345       # List bars in roadmap #12345
productplan objectives       # List all OKRs
productplan ideas            # List all ideas
productplan opportunities    # List all opportunities
productplan launches         # List all launches

可选设置: PRODUCTPLAN_CACHE_TTL 控制读取结果在内存中的缓存时长(默认值为 60s;设置为 0 可关闭缓存)。通过服务进行的任何更改都会立即清除缓存。


背景信息

什么是 MCP?

Model Context Protocol (MCP) 是一项开放标准,可让 AI 助手连接外部工具。该协议由 Anthropic 创建,其他 AI 提供商也正在采用。此服务实现了 MCP,因此 AI 助手可以读取和写入 ProductPlan 数据。

什么是 ProductPlan?

ProductPlan 是一款路线图软件,供 4,000 多个产品团队使用。它可用于管理路线图、OKR、创意探索和发布协调。


面向开发者

项目结构
productplan-mcp-server/
├── cmd/productplan/main.go      # Entry point: token check, then MCP server or CLI
├── internal/
│   ├── api/                     # ProductPlan API client
│   │   ├── client.go            # HTTP client: auth, rate limiting, error wrapping
│   │   ├── transport.go         # Tuned HTTP transport
│   │   ├── cache.go             # In-process TTL read cache (singleflight, write invalidation)
│   │   ├── list.go              # Paged collection GETs and Ransack query encoding
│   │   ├── ids.go               # Typed resource IDs (BarID, RoadmapID, ...), each validated into a path segment
│   │   ├── path.go              # Routes and request paths built only from typed IDs
│   │   ├── safeseg.go           # Path-segment validation for user-supplied IDs
│   │   ├── endpoints*.go        # Endpoint methods (roadmaps, bars, ideas, launches, OKRs)
│   │   ├── bars_read.go         # Roadmap bars with lane enrichment and client-side filters
│   │   ├── bar_schema.go        # Roadmap legends/lanes/custom fields for bar writes
│   │   └── formatters.go        # Response projection for AI
│   ├── mcp/                     # MCP wiring over the official go-sdk
│   │   ├── sdk_server.go        # Serves the registry via go-sdk (stdio)
│   │   ├── sdk.go               # Converts local Tool -> SDK tool
│   │   ├── handler.go           # Registry: dispatch and panic recovery
│   │   ├── argkeys.go           # Rejects undeclared argument keys (did-you-mean)
│   │   ├── editdistance.go      # Levenshtein distance for suggestions
│   │   └── types.go             # Tool-authoring types
│   ├── tools/                   # Tool definitions and handlers
│   │   ├── registry.go          # Tool registration (name -> handler)
│   │   ├── definitions*.go      # Tool schemas and descriptions
│   │   ├── helpers.go           # typedHandler, manage-action dispatch
│   │   ├── filters.go           # List-tool filters -> Ransack predicates
│   │   ├── formatter.go         # List/item/action response summaries
│   │   ├── item_type.go         # Item nouns for summaries
│   │   ├── bar_planner.go       # Validates bar writes against the roadmap
│   │   ├── bar_names.go         # Legend/lane/custom field name resolution
│   │   ├── bulk_bars.go         # bulk_update/create/delete_bars
│   │   ├── roadmaps.go, bars.go, ideas.go, objectives.go, launches.go, utility.go  # handlers
│   │   └── types*.go            # Typed argument structs for handlers
│   ├── cli/                     # CLI commands (status, roadmaps, etc.)
│   │   └── cli.go
│   └── logging/                 # slog JSON handler setup (ts/level/msg)
│       └── logger.go
├── pkg/productplan/             # Reusable utilities
│   ├── retry.go                 # Exponential backoff with jitter
│   ├── ratelimit.go             # Adaptive rate limiting
│   ├── batch.go                 # Batched operations
│   ├── health.go                # Health reporting
│   ├── requestid.go             # Request tracing
│   ├── validation.go            # ID validation (Field.RequireID)
│   └── errors.go                # APIError and error suggestions
└── evals/                       # LLM evaluation test suite
    ├── runner.go, types.go
    ├── tool_selection.json
    ├── confusion_pairs.json
    └── argument_correctness.json
从源代码构建

需要 Go 1.26 或更高版本。

git clone https://github.com/olgasafonova/productplan-mcp-server.git
cd productplan-mcp-server
go build -o productplan ./cmd/productplan

为所有平台构建:

# macOS Apple Silicon
GOOS=darwin GOARCH=arm64 go build -o dist/productplan-darwin-arm64 ./cmd/productplan

# macOS Intel
GOOS=darwin GOARCH=amd64 go build -o dist/productplan-darwin-amd64 ./cmd/productplan

# Linux
GOOS=linux GOARCH=amd64 go build -o dist/productplan-linux-amd64 ./cmd/productplan

# Windows
GOOS=windows GOARCH=amd64 go build -o dist/productplan-windows-amd64.exe ./cmd/productplan
测试

运行所有测试:

go test ./...

运行并生成覆盖率报告:

go test ./... -cover

运行基准测试:

go test ./internal/... -bench=. -benchmem

运行评估套件:

./scripts/run-evals.sh

覆盖率(于 24-09-2026 测量,go test ./... -cover):

包覆盖率
internal/logging100%
pkg/productplan94.5%
internal/mcp92.5%
internal/cli92.3%
evals89.5%
internal/api87.4%
internal/tools82.3%
cmd/productplan34.9%

所有生产文件在 CodeScene Code Health 中均获得 10.0 分(其中两个仅包含类型的文件无法评分)。

MCP 工具参考

共有 50 个工具可用:35 个读取工具和 15 个写入工具(12 个基于操作的 manage_* 工具,以及 3 个 bulk_* 进度条工具):

读取工具:

  • 路线图:list_roadmaps、get_roadmap、get_roadmap_bars、get_roadmap_lanes、get_roadmap_milestones、get_roadmap_legends、get_roadmap_comments、get_roadmap_complete
  • 进度条:get_bar、get_bar_children、get_bar_comments、get_bar_connections、get_bar_links
  • OKR:list_objectives、get_objective、list_key_results、get_key_result
  • 发现:list_ideas、get_idea、list_all_customers、list_all_tags、list_opportunities、get_opportunity、list_idea_forms、get_idea_form
  • 发布:list_launches、get_launch、get_launch_sections、get_launch_section、get_launch_tasks、get_launch_task
  • 管理:check_status、health_check、list_users、list_teams

写入工具:

  • 路线图:manage_bar、manage_lane、manage_milestone
  • 进度条关系:manage_bar_connection、manage_bar_link
  • 批量进度条:bulk_update_bars、bulk_create_bars、bulk_delete_bars(每次调用最多 100 个进度条,会预先验证,支持 dry_run)
  • OKR:manage_objective、manage_key_result
  • 发现:manage_idea、manage_opportunity
  • 发布:manage_launch、manage_launch_section、manage_launch_task

示例:

{"tool": "list_roadmaps", "arguments": {}}
{"tool": "manage_bar", "arguments": {"action": "create", "roadmap_id": "123", "lane": "Backend", "name": "New feature", "legend": "Committed"}}
{"tool": "bulk_update_bars", "arguments": {"set": {"legend": "Committed"}, "items": [{"bar_id": "901"}, {"bar_id": "902"}], "dry_run": true}}
{"tool": "manage_idea", "arguments": {"action": "create", "name": "Mobile app improvements"}}
架构

该服务采用清晰的分层架构:

┌──────────────────────────────────────────────────────────────┐
│                        cmd/productplan                        │
│                     (entry point, DI)                         │
└──────────────────────────────────────────────────────────────┘
                              │
        ┌─────────────────────┼─────────────────────┐
        ▼                     ▼                     ▼
┌───────────────┐    ┌───────────────┐    ┌───────────────┐
│  internal/cli │    │  internal/mcp │    │internal/tools │
│  (CLI cmds)   │    │  (MCP / SDK)  │    │  (handlers)   │
└───────────────┘    └───────────────┘    └───────────────┘
                              │                     │
                              └──────────┬──────────┘
                                         ▼
                              ┌───────────────────┐
                              │   internal/api    │
                              │  (HTTP client)    │
                              └───────────────────┘
                                         │
                                         ▼
                              ┌───────────────────┐
                              │  ProductPlan API  │
                              └───────────────────┘

关键接口:

// Tool handler interface (internal/mcp)
type Handler interface {
    Handle(ctx context.Context, args map[string]any) (json.RawMessage, error)
}

// Logging (internal/logging): a *slog.Logger with a JSON handler on stderr
logger := logging.New(slog.LevelInfo)

日志格式:

{"ts":"2026-09-24T10:30:00.123456789Z","level":"debug","msg":"API response","endpoint":"/roadmaps/5","status_code":200,"dur_ms":245}

更新日志

请参阅 CHANGELOG.md,了解版本发布历史和详细变更。


喜欢这个项目吗?

如果这个服务为你节省了时间,不妨在 GitHub 上点个 ⭐。这有助于其他人发现这个项目。


更多 MCP 服务

看看我的其他 MCP 服务:

服务描述Stars
gleif-mcp-server访问 GLEIF LEI 数据库。查询企业身份并验证法人实体。GitHub stars
mediawiki-mcp-server将 AI 连接到任何 MediaWiki wiki。搜索、阅读和编辑 wiki 内容。GitHub stars
miro-mcp-server使用 AI 控制 Miro 白板。创建看板、图表、思维导图等。GitHub stars
nordic-registry-mcp-server访问北欧商业登记信息。查询挪威、丹麦、芬兰和瑞典的企业。GitHub stars
tilbudstrolden-mcp搜寻北欧超市优惠。查找特价、规划膳食并追踪支出。GitHub stars

License

MIT License - see LICENSE

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。