一、为什么需要 MCP
先看一个对比。
不用 MCP 时
你跟 Cursor 说:"帮我看一下 Notion 里那篇'番茄钟产品需求',然后照着写代码。"
Cursor 说:"我看不到你的 Notion,请把内容复制粘贴给我。"
你打开 Notion → 复制 → 粘贴 → 又打开 Slack 找设计稿 → 复制 → 粘贴…… 人工成了搬运工。
用了 MCP 后
你跟 Cursor 说:"帮我看一下 Notion 里那篇'番茄钟产品需求',然后照着写代码。"
Cursor(通过 Notion MCP):
- 自动搜索你 Notion 工作区里"番茄钟产品需求"。
- 拉取页面内容。
- 读理解后,开始写代码。
你的工作流变成"动嘴"。
MCP 的本质
MCP 是 Anthropic 在 2024 年发布的一个开源协议。它定义了一个"AI 和外部工具如何对话"的标准。
任何工具只要实现了 MCP 协议,Cursor / Claude Desktop / Continue / Cody 等都能"开箱即用"。
类比:MCP 之于 AI 工具,就像 USB 之于硬件——一个统一接口,连接所有东西。
二、MCP 的工作原理(30 秒科普)
不需要懂技术细节,但理解大致流程能帮你排查问题。
你(在 Cursor 里)
↓ 自然语言指令
Cursor(理解你说什么)
↓ 调用 MCP 工具
MCP Server(一个本地或云端的小程序)
↓ 调用真实 API
Notion / Figma / GitHub / Postgres / ...
↓ 返回数据
MCP Server → Cursor → 你
每个 MCP Server 是一个独立小程序,跑在你电脑里(或云端)。
Cursor 通过 mcp.json 知道有哪些 MCP Server 可用。
三、安装 MCP 的两种方式
方式 1:从 Cursor Marketplace 一键装(推荐)
Cursor 3 内置了 Marketplace——一个"MCP 应用商店"。
- 按
Cmd+Shift+P,输入MCP Marketplace。 - 浏览 / 搜索 MCP,比如 "GitHub"。
- 点 "Install"。
- 跟着提示填 token / 配置。
- 装好。
方式 2:手动编辑 mcp.json
进阶玩家用。 位置:
| OS | 路径 |
|---|---|
| macOS | ~/.cursor/mcp.json |
| Windows | %APPDATA%\Cursor\mcp.json |
| Linux | ~/.config/Cursor/mcp.json |
打开后是一个 JSON:
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_API_TOKEN": "你的 Notion Token"
}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "你的 GitHub Token"
}
}
}
}
每个 MCP 一个键,值里写"怎么启动这个 MCP 程序"。
存盘后重启 Cursor,新 MCP 生效。
方式 3:项目级 MCP
把 mcp.json 放在项目根目录的 .cursor/mcp.json,就只对这个项目生效。
适合"这个项目专属的 MCP",比如某个客户的 Postgres 连接。
四、10 个普通人优先装的 MCP
下面是按"普通人友好度"排序的 10 个 MCP。复制配置,跟着装。
MCP 1:Filesystem(文件系统)
用途:让 Agent 操作你电脑上指定文件夹的文件(默认 Cursor 只能看打开的项目)。
安装:
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/me/Desktop",
"/Users/me/Documents"
]
}
把后面两个路径换成你想授权的目录。
使用例子:
读一下我桌面上"会议纪要 2026-04.docx",
帮我提取"待办"那部分,整理成 markdown 列表。
安全提醒:只授权"你愿意 AI 看的"目录。绝不要授权 ~/ 根目录。
MCP 2:GitHub
用途:读 / 写 GitHub 仓库——查 issue、提 PR、看 commit、读 README。
前置:去 GitHub Settings → Tokens 生成一个 Personal Access Token(勾选 repo / read:org 权限)。
安装:
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxx"
}
}
使用例子:
@github 列一下 facebook/react 仓库里 "performance" 标签的 open issues,
按评论数排序,前 10 个。
@github 在我的仓库 my-pomodoro 里,
找上周所有 closed PR,
帮我写一段 changelog。
安全提醒:Token 等于密码,绝不要 commit 到 git。
MCP 3:Notion
用途:读 / 写你的 Notion 工作区。
前置:
- 去 Notion Integrations 创建一个 Internal Integration,拿 Token。
- 在你想让 AI 访问的 Notion 页面右上角"…" → "Connections" → 选你刚建的 Integration。
安装:
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_API_TOKEN": "ntn_xxxxxxxx"
}
}
使用例子:
@notion 找一下我工作区里所有标题含"OKR"的页面,
帮我汇总成一个总表(标题 / 创建日期 / 最近修改)。
@notion 把我刚才写的会议纪要追加到"日记"那个 database 里,
日期填今天。
安全提醒:Notion Integration 只能访问你显式 connect 的页面,所以默认就比较安全。
MCP 4:Postgres / Supabase
用途:让 AI 直接查 / 改你的数据库。
安装(Postgres):
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@localhost:5432/mydb"]
}
安装(Supabase):
"supabase": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server-supabase"],
"env": {
"SUPABASE_URL": "https://xxx.supabase.co",
"SUPABASE_ANON_KEY": "eyJxxxxxx"
}
}
使用例子:
@postgres 查一下 users 表里 created_at > '2026-04-01' 的总数。
@supabase 给 subscriptions 表加一个 paused 字段(boolean,默认 false)。
然后给我看一下迁移 SQL,我确认后再执行。
安全提醒:
- 强烈推荐用只读凭证——AI 一不小心
DROP TABLE你哭都来不及。 - 生产数据库不要直接连。先连本地副本或 staging。
- 每次 schema 变更前先
--dry-run。
MCP 5:Figma
用途:让 AI 读你的 Figma 设计稿,把"设计转代码"。
前置:去 Figma 个人设置生成一个 Personal Access Token。
安装:
"figma": {
"command": "npx",
"args": ["-y", "figma-mcp-server"],
"env": {
"FIGMA_TOKEN": "figd_xxxxxxxx"
}
}
使用例子:
@figma 链接:https://www.figma.com/file/abc/login-page
读这个设计稿,帮我用 Tailwind + React 实现登录页,
保持像素级一致。
强大之处:你不必描述设计——AI 直接看你的 Figma 文件结构、颜色、字号、间距。
MCP 6:Playwright(浏览器自动化)
用途:让 AI 控制浏览器——打开网页、点击、填表、截图、运行测试。
安装:
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
}
第一次启动会下载浏览器(约 200MB)。
使用例子:
@playwright 打开 https://my-pomodoro.vercel.app,
点"开始"按钮,等 3 秒,截图,
然后告诉我有没有视觉异常。
@playwright 帮我写一个 e2e 测试:
访问首页 → 输入用户名密码 → 点登录 → 确认跳转到 /dashboard。
跑一遍确认通过。
适用场景:
- E2E 自动化测试。
- 自动填表 / 数据采集(合规前提下)。
- 视觉回归(截图对比)。
MCP 7:Slack
用途:让 AI 读 / 发 Slack 消息。
前置:去 Slack API 创建一个 App,给它 chat:write / channels:read / im:read 等权限,安装到工作区,拿 Bot Token。
安装:
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-xxxxxxxx",
"SLACK_TEAM_ID": "T01XXXXX"
}
}
使用例子:
@slack 看一下 #engineering 频道今天的所有消息,
帮我整理成一份"今日重点"。
@slack 给 @张三 发条消息:"会议改到 14:00 了。"
安全提醒:Bot Token 能看 / 发它有权限的所有消息,谨慎给权限。
MCP 8:Stripe
用途:查 / 改你的 Stripe 账户——客户、订阅、支付、退款、产品。
前置:在 Stripe Dashboard 拿到 Secret Key(建议先用 test mode 的)。
安装:
"stripe": {
"command": "npx",
"args": ["-y", "@stripe/mcp"],
"env": {
"STRIPE_SECRET_KEY": "sk_test_xxxxxxxx"
}
}
使用例子:
@stripe 给我看一下本月所有失败的 charge,
按金额从大到小,前 20 笔。
告诉我失败原因占比。
@stripe 创建一个新产品 "番茄钟 Pro",月费 ¥19.9。
返回 price_id。
安全提醒:
- test mode 优先:Test key(sk_test_...)在测试环境验证。
- 生产 key 加只读权限:在 Stripe → Developers → API keys → restricted key,只勾"读"权限。
MCP 9:Linear(任务管理)
用途:让 AI 读 / 写 Linear 任务。
前置:Linear → Settings → API → Create personal API key。
安装:
"linear": {
"command": "npx",
"args": ["-y", "@linear/mcp"],
"env": {
"LINEAR_API_KEY": "lin_api_xxxxxxxx"
}
}
使用例子:
@linear 列出本周分配给我的所有 in-progress 任务,按优先级排序。
@linear 把"修番茄钟 Safari 漂移"这个 issue 移到 "In Review",
评论一句"已开 PR #234"。
MCP 10:Browserbase(云端浏览器)
用途:在云端跑浏览器(不占你本地资源),适合 24 小时定时任务。
前置:browserbase.com 注册,拿 API key。
安装:
"browserbase": {
"command": "npx",
"args": ["-y", "@browserbase/mcp"],
"env": {
"BROWSERBASE_API_KEY": "bb_xxxxxxxx",
"BROWSERBASE_PROJECT_ID": "xxx"
}
}
使用例子:
@browserbase 每天早上 9:00 自动打开 https://store.example.com/products/my-item,
检查价格,价格变化时给我发通知。
和本地 Playwright 的区别:
- 本地 Playwright:你电脑要开着、要装 200MB 浏览器、跑得快。
- Browserbase:云端跑、按使用计费、可定时、可在 GitHub Actions 触发。
五、这 10 个 MCP 的"组合配方"
光装单个 MCP 用处一般,组合起来才有威力。下面 6 个组合,每个让你工作效率提升一截。
配方 1:Notion + GitHub
读 Notion 里的 PRD → 在 GitHub 自动开 epic issue → 自动拆子任务
@notion 读"番茄钟 Pro PRD" 这页。
@github 在 my-pomodoro 仓库开一个 epic issue:
- 标题:"番茄钟 Pro 开发"
- body:把 PRD 关键决策列出来
- 然后按 PRD 的功能点拆 5-10 个子任务,全部标 "feature" label
配方 2:Figma + 文件系统
看 Figma 设计 → 直接写代码到本地项目
@figma 链接:https://www.figma.com/file/xxx
@filesystem 在 ~/Code/my-pomodoro/components/
按设计实现 PaymentDialog.tsx,用 Tailwind。
配方 3:Postgres + GitHub
看数据库找慢查询 → 自动开 issue 修
@postgres 跑:
SELECT query, mean_time FROM pg_stat_statements
ORDER BY mean_time DESC LIMIT 10;
@github 把上面 Top 5 慢查询每个开一个 issue,
标 "performance" label,分配给 @张三。
配方 4:Playwright + 文件系统
自动化 e2e 测试 + 截图对比
@playwright 跑 tests/e2e/login.spec.ts。
@filesystem 把每一步截图保存到 ~/Desktop/test-screenshots/2026-04-19/。
配方 5:Slack + Linear + GitHub
早会时让 AI 帮你"汇报站立会"
@slack 我在 #standup 频道。
@linear 我现在 in-progress 的任务有哪些?
@github 我昨天 merge 了哪些 PR?
请把上面三个数据合并成一段 30 秒的"站立会发言"。
配方 6:Stripe + Notion
财务月报自动生成
@stripe 拉本月所有成功的 charge,按客户聚合。
@notion 在 "财务报表" database 里追加一行:
- 月份:2026-04
- 总收入:xxx
- Top 客户:xxx
- 退款数:xxx
六、Marketplace:MCP 的"应用商店"
6.1 怎么打开
按 Cmd+Shift+P → MCP Marketplace。
或者访问网页版 cursor.com/marketplace。
6.2 你能在 Marketplace 找到什么
- 官方 MCP:Cursor / Anthropic 维护的,质量最高。
- 第三方 MCP:社区开发者贡献的,功能花样多。
- Cursor Extensions:不止 MCP,还有"扩展"——比如新的 UI 主题、新的代码片段。
- Subagents:预制的"AI 角色模板",比如"前端架构师 Subagent"、"安全审计 Subagent",调用时让 AI 扮演这个角色。
- Hooks:自定义 Cursor 内部事件钩子(高级)。
- Rules:别人分享的 Cursor Rules,可以一键导入到你的项目。
6.3 怎么挑 MCP
看三个维度:
- 官方与否:Marketplace 上有"Verified"标记的优先。
- 下载数:1k+ 下载的有人用过。
- 更新频率:超过 6 个月没更新的慎用。
七、MCP 的安全清单
MCP 的便利是**"AI 能动你的真实数据"**——这也是它最大的风险。
安全清单(每个都要做)
必做 1:最小权限
- 给 MCP 的 Token 只勾"必须的"权限。
- 比如 GitHub,只读用
read:repo,不要给admin:repo_hook。
必做 2:分环境
- 个人 / 测试用 token:随便用。
- 生产 token:单独管理,且只在云端 Cloud Agent 用,本地不存。
必做 3:不要把 mcp.json 提交到 git
- 默认
~/.cursor/mcp.json不在你项目里。 - 项目级
.cursor/mcp.json要 git ignore。 - 用
mcp.json.example占位,真实 token 用环境变量。
必做 4:定期审查 Token
- 每 3 个月去各服务的 Token 列表看一眼,过期 / 没用的删掉。
- 怀疑泄漏,立刻 revoke + 重建。
必做 5:MCP 的"可疑行为"开 log
- 在 Cursor 设置 → MCP → 打开 "Log all MCP calls"。
- 隔几天翻一下,看有没有"AI 跑了你没指示的操作"。
可选 6:审计开源 MCP 源码
- 装第三方 MCP 前,去 GitHub 看一眼源码(很短,几百行)。
- 看有没有"偷偷上传数据"的逻辑。
- 有疑虑就别装。
八、MCP 故障排查
故障 1:MCP 装了但 Cursor 找不到
- 检查
mcp.json路径对不对。 - 检查 JSON 语法(少逗号 / 多逗号)。
- 重启 Cursor。
故障 2:MCP 启动报错
- 看 Cursor 底部状态栏的"MCP"图标,点开看错误日志。
- 常见原因:node 没装 / npx 找不到 / Token 错了。
故障 3:AI 不会主动用 MCP
- 你直接
@mcp名 ...触发。 - 或者写规则文件让 AI"优先用 MCP 而不是搜索"。
故障 4:MCP 调用报权限错
- 99% 是 Token 权限不够。
- 去对应平台重新生成更高权限的 Token。
故障 5:MCP 调用太慢
- MCP 启动有冷启动开销。
- 第一次调用慢正常,后面应该快。
- 如果一直慢,可能是 MCP 实现差(换一个)。
九、综合实战:给番茄钟 Pro 装一套 MCP
回到 第八章 "个人副业 SaaS 雏形:30 天能上线的产品" 那一节的番茄钟 Pro。 我们给它配一套真正"工程化"的 MCP。
装哪些
- GitHub:管理代码仓库、issues、PR。
- Supabase:数据库(用户、订阅、番茄记录)。
- Stripe:支付。
- Notion:产品规划文档。
- Linear:任务跟踪。
- Playwright:E2E 测试。
- Filesystem:本地脚本。
~/.cursor/mcp.json 完整配置
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/me/Code"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" }
},
"supabase": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server-supabase"],
"env": {
"SUPABASE_URL": "https://xxx.supabase.co",
"SUPABASE_ANON_KEY": "eyJxxx"
}
},
"stripe": {
"command": "npx",
"args": ["-y", "@stripe/mcp"],
"env": { "STRIPE_SECRET_KEY": "sk_test_xxx" }
},
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": { "NOTION_API_TOKEN": "ntn_xxx" }
},
"linear": {
"command": "npx",
"args": ["-y", "@linear/mcp"],
"env": { "LINEAR_API_KEY": "lin_api_xxx" }
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
}
}
}
一段"复合提示词"演示
打开 Composer:
我们今天的目标:上线番茄钟 Pro 的支付功能。
请按下面顺序操作:
1. @notion 读"番茄钟 Pro PRD",找"支付"部分的需求。
2. @stripe(test mode)创建产品"番茄钟 Pro"和价格 $5/月。
3. @supabase 在 subscriptions 表加 stripe_subscription_id 字段。
4. @filesystem 在 ~/Code/pomodoro-pro/ 写支付页面 + webhook 处理代码。
5. @playwright 跑 e2e 测试:模拟用户下单 → 跳转 Stripe → 用测试卡支付 → 回跳成功。
6. @github 给上面所有改动开一个 PR,标题"feat: Stripe 支付集成"。
7. @linear 把 BLT-15 这个任务标记为 "In Review"。
完成后告诉我每一步的结果。如果某一步失败,停下问我。
按回车。
Cursor Agent 会串联使用 7 个 MCP完成全部工作。整个流程你只动嘴。
十、MCP 的未来与你
MCP 协议的发展
- 2024 年 11 月:Anthropic 发布 MCP 协议。
- 2025 年初:Cursor / Continue / Cody 全部接入。
- 2025 年中:MCP 工具数破 1000。
- 2026 年:MCP 成为 AI 工具的"USB"标准,Claude / GPT / Gemini 全部原生支持。
你能做什么
- 使用者:装现成 MCP,组合出你的工作流。
- 进阶:改别人的 MCP,定制功能。
- 高级:自己写 MCP(不到 100 行 Python / TypeScript),分享给社区。
写 MCP 比你想的简单——基本上就是"包一层 API + 暴露给 LLM"。 Anthropic MCP 文档 有详细教程。
本章一图回顾
MCP 是什么
═══════════════════════════════════════════════
Model Context Protocol
让 AI 工具能调用外部世界(Notion、Figma、DB...)
10 个普通人优先装
─────────────
1. Filesystem 本地文件
2. GitHub 代码 / Issue / PR
3. Notion 知识库
4. Postgres/Supabase 数据库
5. Figma 设计稿
6. Playwright 浏览器自动化
7. Slack 沟通
8. Stripe 支付
9. Linear 任务
10. Browserbase 云端浏览器
6 个组合配方
─────────────
Notion + GitHub PRD → 自动开 epic
Figma + Filesystem 设计 → 代码
Postgres + GitHub 慢查询 → 自动开 bug
Playwright + FS 自动化 + 截图
Slack + Linear + GH 站立会发言
Stripe + Notion 财务月报
5 条安全清单
─────────────
1. 最小权限
2. 分环境
3. 不提交 mcp.json
4. 定期审查 Token
5. 开 MCP log
下章预告
到这里你已经能用 Cursor 做"完整的项目"。最后一公里是"上线"——让你的作品真正给别人用上。下一章 第十一章 从作品到上线 教 Vercel 部署、Supabase 数据库、Stripe 收款、买域名、HTTPS、监控告警,外加一份"上线前 30 项检查清单"。