是时候超越MCP服务器了...对吗?
让我们来分析一下在构建可重用工具集时,MCP、CLI、文件系统脚本以及基于技能的方法之间的实际工程权衡。
点击观看完整视频解析:超越MCP
在这里,我们将探索本仓库中的四种具体方法,所有这些方法都实现了访问Kalshi预测市场数据的功能。

apps/1_mcp_server/ - MCP服务器
apps/2_cli/ - CLI
apps/3_file_system_scripts/ - 文件系统脚本
apps/4_skill/ - 技能
cp .mcp.testing .mcp.json
claude --mcp-config .mcp.json
prompt: "kalshi: 获取交易所状态"
# 或通过代理
claude
prompt: "/prime_kalshi_cli_tools"
prompt: "kalshi: 获取交易所状态"
prompt: "kalshi: 列出事件"
prompt: "kalshi: 以JSON格式列出事件"
prompt: "kalshi: 以JSON格式列出事件,限制100条"
# 或手动操作
cd apps/2_cli
uv sync
uv run kalshi status
uv run kalshi events
uv run kalshi events --json
uv run kalshi events --json --limit 100
# 通过代理
claude
prompt: "/prime_file_system_scripts"
prompt: "kalshi: 获取交易所状态"
prompt: "kalshi: 列出事件"
...
# 或手动操作
cd apps/3_file_system_scripts/scripts
uv run status.py
uv run *.py
cd apps/4_skill/
claude
prompt: "kalshi markets: 获取交易所状态"
prompt: "kalshi markets: 搜索关于'最佳AI'的事件" # 注意,首次运行会触发缓存构建,可能需要几分钟时间
...
apps/1_mcp_server/ - MCP服务器apps/2_cli/ - CLIapps/3_file_system_scripts/ - 文件系统脚本apps/4_skill/ - 技能apps/1_mcp_server/)经典模型上下文协议实现
架构:
Claude/LLM → MCP协议 → MCP服务器 → 子进程 → CLI → Kalshi API
关键文件:
server.py - 包含15个工具定义的FastMCP服务器何时使用: 构建适用于多个LLM客户端的工具,需要标准化协议,可以接受上下文丢失。
apps/2_cli/)通过命令行界面直接访问HTTP API
架构:
Claude → 子进程 → CLI(13个命令)→ 直接HTTP → Kalshi API
关键文件:
kalshi_cli/cli.py - 所有13个命令(552行)kalshi_cli/modules/client.py - HTTP客户端及搜索缓存kalshi_cli/modules/formatting.py - 输出格式化程序何时使用: 需要直接控制API,希望同时拥有CLI和编程访问,缓存重要,可以接受子进程开销。
apps/3_file_system_scripts/)通过独立脚本逐步披露
架构:
Claude → 读取工具 → 单独脚本 → 嵌入式HTTP客户端 → Kalshi API
可用脚本(10个):
status.py - 交易所运营状态markets.py - 浏览市场(带过滤器)market.py - 详细市场信息orderbook.py - 买入/卖出深度trades.py - 最近交易活动search.py - 关键词搜索(带缓存)events.py - 列出事件集合event.py - 事件详情series_list.py - 浏览所有约6900个系列series.py - 系列信息何时使用: 上下文保存至关重要,希望逐步披露,可以接受代码重复,需要独立便携性。
apps/4_skill/.claude/skills/kalshi-markets/)Claude代码代理技能,嵌入脚本
架构:
Claude(检测触发)→ 加载SKILL.md → 运行脚本 → Kalshi API
结构:
.claude/skills/kalshi-markets/
├── SKILL.md(简洁描述及说明)
└── scripts/(所有10个文件系统脚本的副本)
何时使用: 使用Claude代码,希望自动技能发现,通过git进行团队协作,需要上下文保存和逐步披露。
API访问:
https://api.elections.kalshi.com/trade-api/v2搜索缓存:
Kalshi API没有提供原生搜索端点,这使得按关键词查找市场成为一个挑战。我们的解决方案:智能本地缓存。
.kalshi_cache/(CLI和脚本共享)延迟为什么重要:
路径解析:
Path(__file__).resolve()使用绝对路径解析| MCP | CLI | 脚本 | 技能 | |
|---|---|---|---|---|
| 代理调用 | 是 | 否 | 否 | 是 |
| 上下文窗口消耗 | 高 | 中等(取决于情况) | 低(随增量) | 低(随增量) |
| 可定制 | 否(除非你拥有) | 是 | 是 | 是 |
| 便携性 | 低 | 中等 | 高 | 高 |
| 组合性 | 是(MCP提示) | 是但需要本地提示 | 是但需要本地提示 | 是但需要本地提示 |
| 简易性 | 高 | 中等 | 中等 | 中等 |
| 工程投入 | 如果外部则低,如果自定义则中等 | 中等 | 中等 | 如果外部则低,如果自定义则中等 |
| 功能集 | 工具、资源、提示、引诱、完成、采样、日志记录、认证等 | 你可以构建的任何东西 | 你可以构建的任何东西 | 你可以构建的任何东西 |
上下文窗口消耗:
代理调用:
可定制:
便携性:
beyond-mcp/
├── apps/
│ ├── 1_mcp_server/ # MCP服务器实现
│ │ ├── server.py # 包装CLI的15个MCP工具
│ │ └── README.md
│ ├── 2_cli/ # CLI实现
│ │ ├── kalshi_cli/
│ │ │ ├── cli.py # 13个命令(552行)
│ │ │ └── modules/ # HTTP客户端、缓存、格式化程序
│ │ └── README.md
│ ├── 3_file_system_scripts/ # 逐步披露脚本
│ │ ├── scripts/ # 10个独立脚本
│ │ │ ├── status.py
│ │ │ ├── markets.py
│ │ │ ├── market.py
│ │ │ ├── orderbook.py
│ │ │ ├── trades.py
│ │ │ ├── search.py
│ │ │ ├── events.py
│ │ │ ├── event.py
│ │ │ ├── series_list.py
│ │ │ └── series.py
│ │ └── README.md
│ └── 4_skill/ # Claude代码技能
│ └── .claude/skills/kalshi-markets/
│ ├── SKILL.md # 技能描述及说明
│ └── scripts/ # 与#3相同的10个脚本
└── .kalshi_cache/ # 共享缓存目录(CLI和脚本)
准备迎接软件工程的未来
通过Tactical Agentic Coding学习战术代理编码模式。
关注IndyDevDan YouTube频道,提升你的代理编码优势。