谁该读这篇

  • 用 Claude Code 跑日常开发的 indie hacker
  • 公司有 Notion / Airtable / 自家 Postgres 等私有数据
  • 想让 Claude「能查公司数据」而不是每次手动复制粘贴
  • 走中转 (ANTHROPIC_BASE_URL) 担心 MCP 不兼容

MCP 在你工作流的位置

你的话术 ──► Claude Code
              ├─► (拿数据) MCP Server ──► Notion / DB / API
              └─► (调模型) 中转 baseURL ──► Claude 4.7 / Sonnet 4.6

MCP 在客户端层,跟中转无关。换中转方不影响 MCP——按 MCP 文档(访问于 2026-05-19),任何兼容 Claude Code 的客户端都能用 MCP server,与具体走哪家 API 解耦。

最小 Python MCP server 示例

# my-notion-mcp/server.py
from mcp.server.fastmcp import FastMCP
import requests, os

mcp = FastMCP("notion-readonly")
NOTION_TOKEN = os.environ["NOTION_TOKEN"]
NOTION_DB_ID = os.environ["NOTION_DB_ID"]

@mcp.tool()
def list_recent_feedback(days: int = 7) -> str:
    """列出最近 N 天的客户反馈,默认 7 天"""
    r = requests.post(
        f"https://api.notion.com/v1/databases/{NOTION_DB_ID}/query",
        headers={"Authorization": f"Bearer {NOTION_TOKEN}",
                 "Notion-Version": "2022-06-28"},
        json={"page_size": 50},
    )
    return r.text  # 实际要做过滤 + 格式化

if __name__ == "__main__":
    mcp.run()  # 默认 stdio

依赖 pip install mcp requests,带 NOTION_TOKEN 环境变量启动即可。Claude Code 端编辑 ~/.config/claude/claude_desktop_config.jsonmcpServers.notion-readonly 项,command: pythonargs: [server.py 路径]env: {NOTION_TOKEN, NOTION_DB_ID}。重启 Claude Code 后说「查 Notion 最近 7 天的客户反馈」即自动调 list_recent_feedback

stdio vs HTTP 模式对比

维度stdioHTTP
启动开销低(子进程)高(需 server 跑着)
适合场景本地工具 / 本地数据远程服务 / 多设备共享
跨设备复用代码 commit 到 git,新设备跑部署一次,所有设备连
网络稳定性不需要需要稳定连 server
安全风险低(本地)高(远程暴露需鉴权)
indie 推荐PoC 阶段长期 / 多人团队

MCP 协议文档(访问于 2026-05-19),两种 transport 是平级支持的,server 代码几乎一致,只差 mcp.run(transport="stdio") vs mcp.run(transport="sse", port=8000)

中转兼容性详解

走中转的 indie hacker 经常担心:MCP 是不是 Anthropic 独家协议?MCP 跟中转方完全无关——Claude Code 客户端先调 MCP server 拿数据,把数据放进 prompt 后再调 ANTHROPIC_BASE_URL。中转方收到的就是普通带 context 的请求,不需要知道这些 context 来自 MCP。同一份 .claude/(含 MCP 配置)在「主推 GPT-5.5 / Claude 4.7」的中转、OpenRouter、OneAPI 自托管下都正常工作。

与 Skill / subagent 组合

完整 indie hacker 工作流通常三者都用:

组件职责
MCP server数据访问(查 Notion / DB / API)
Skills领域知识 + 任务流程
subagent并发派发 + 模型分级

例如「分析最近 7 天客户反馈,识别 top 3 投诉点」:MCP server 拉 Notion 数据 → Skill (feedback-analyzer) 指导分析流程 → 主代理跑 Opus 4.7 做最终洞察,subagent 跑 Sonnet 4.6 做单条分类。按 Anthropic Pricing(访问于 2026-05-19)和 2026 年 5 月实测,这种组合比纯主代理跑 Opus 4.7 省 50-60% token。

跨地区使用 / 切换设备

  • stdio 模式:把 MCP server 代码 commit 到 git 私库,新设备 clone 后跑就行。.zshrc / .bashrc 写好环境变量 (NOTION_TOKEN 等)
  • HTTP 模式:把 server 部署到 VPS,新设备只改 claude_desktop_config.json 的 URL
  • 网络稳定性:HTTP 模式需要稳定连 server,跨地区切换时配一条主推 GPT-5.5 / Claude 4.7 的低价 API 中转,Claude Code 调模型 + 调 MCP server 都走同一条线路

常见失败原因

  • MCP server 报错没体现在 Claude Code 里:Claude Code 默认吞掉 server stderr,用 claude --debug 或独立终端先跑通 server 再接 Claude Code
  • 环境变量没传递:Claude Code 启动子进程时不继承全部环境变量,必须在 claude_desktop_config.jsonenv 字段显式写
  • stdio 模式跑了 print 调试:print 到 stdout 会污染 JSON-RPC 协议,调试用 logging 写到 stderr 或文件
  • HTTP 模式没鉴权:server 暴露公网必加 API key / mTLS,我见过 indie 朋友的 MCP server 被脚本扫到批量查询

月预算样例

自建 MCP server 本身免费,增加开销主要在调用 MCP tool 时的额外 token(按月 100 次 MCP 调用、Sonnet 4.6 中转单价):

操作增加 token月成本
tool definition 注入100-300 / 请求¥10-30
MCP 返回数据进上下文500-3000 / 调用¥30-100

相关阅读