超越MCP
是时候超越MCP服务器了。正确的 让我们分解MCP、CLI、文件系统脚本和基于技能的方法之间的实际工程权衡,为您的AI代理构建可重用的工具集。 请点击此处观看完整视频: 超越MCP
本次回购的目的
- MCP服务器是为您的AI代理构建可重用工具集的标准方式。但这不是唯一的办法。
- MCP服务器成本高昂- 即时上下文丢失.
- 当你有一个或几个MCP服务器时,这没什么大不了的。但是,当您扩展到许多代理、许多工具和许多环境时,这种成本很快就会成为一个瓶颈。
- 那么,大型企业正在使用哪些替代方案为他们的人工智能代理构建强大、可重用、上下文保持的工具集呢?
_在这里,我们探讨了该回购中的4种具体方法,所有方法都实现了对Kalshi预测市场数据的访问。_
四种方法
apps/1_mcp_server/ -MCP服务器
apps/2_cli/ -CLI
apps/3_file_system_scripts/ -文件系统脚本
File System Scripts Architecture
apps/4_skill/ -技能
快速开始
1.MCP服务器
cp .mcp.testing .mcp.json
claude --mcp-config .mcp.json
prompt: "kalshi: get exchange status"2.CLI
# or by agent
claude
prompt: "/prime_kalshi_cli_tools"
prompt: "kalshi: Get exchange status"
prompt: "kalshi: List events"
prompt: "kalshi: List events in JSON"
prompt: "kalshi: List events in JSON, limit 100"
# or by hand
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 1003.文件系统脚本
# by agent
claude
prompt: "/prime_file_system_scripts"
prompt: "kalshi: Get exchange status"
prompt: "kalshi: List events"
...
# or by hand
cd apps/3_file_system_scripts/scripts
uv run status.py
uv run *.py4.技能
cd apps/4_skill/
claude
prompt: "kalshi markets: Get exchange status"
prompt: "kalshi markets: search for events about 'best ai'" # Note this will trigger the cache build on first run which will take several minutes
...四种方法详解
apps/1_mcp_server/-MCP服务器apps/2_cli/-CLIapps/3_file_system_scripts/-文件系统脚本apps/4_skill/-技能
1.MCP服务器(apps/1_mcp_server/)
经典模型上下文协议实现
- ✅ 标准化集成 -适用于任何MCP兼容客户端
- ✅ 工具发现 -自动将15个工具暴露给LLM
- ✅ 干净的抽象 -MCP协议处理复杂性
- ❌ 即时上下文丢失 -每次工具调用都会丢失会话上下文
- ❌ 包装机开销 -通过子流程委派到CLI
架构:
Claude/LLM → MCP Protocol → MCP Server → subprocess → CLI → Kalshi API关键文件:
server.py-具有15个工具定义的FastMCP服务器- 将CLI命令封装在MCP工具界面中
- 每个工具调用都是无状态的
何时使用: 为多个LLM客户端构建工具,需要标准化的协议,上下文丢失是可以接受的。
______________________________________________________________________
2.CLI(apps/2_cli/)
通过命令行界面直接访问HTTP API
- ✅ 单一事实来源 -直接调用API,无包装器
- ✅ 双输出模式 -人类可读或纯JSON
- ✅ 智能缓存 -基于Pandas的6小时TTL搜索
- ✅ 最小开销 -直接httpx调用,无需SDK
- ✅ 改进的上下文 -代理读取的上下文大约是MCP服务器的一半
架构:
Claude → subprocess → CLI (13 commands) → Direct HTTP → Kalshi API关键文件:
kalshi_cli/cli.py-全部13个命令(552行)kalshi_cli/modules/client.py-HTTP客户端和搜索缓存kalshi_cli/modules/formatting.py-输出格式化程序
何时使用: 需要直接的API控制,需要CLI和编程访问,缓存很重要,可以处理子流程开销。
______________________________________________________________________
3.文件系统脚本(apps/3_file_system_scripts/)
通过独立脚本逐步披露
- ✅ 渐进式披露 -只加载您需要的脚本(每个脚本约200-300行)
- ✅ 完全隔离 -每个脚本都是完全独立的
- ✅ 零依赖 -每个脚本中都嵌入了HTTP客户端
- ✅ 上下文高效 -代理仅读取相关脚本
- ⚠️ 代码重复 -HTTP客户端在每个脚本中重复
- ⚠️ 无共享状态 -缓存和实用程序重复
架构:
Claude → Read tool → Individual script → Embedded HTTP client → Kalshi API可用脚本(10):
status.py-Exchange操作状态markets.py-使用筛选器浏览市场market.py-详细的市场信息orderbook.py-买卖深度trades.py-最近的交易活动search.py-关键字搜索(带缓存)events.py-列出事件集合event.py-活动详情series_list.py-浏览全部~6900系列series.py-系列信息
何时使用: 上下文保护至关重要,需要渐进式披露,可以接受代码复制,需要独立的可移植性。
______________________________________________________________________
4.技能(apps/4_skill/.claude/skills/kalshi-markets/)
Claude代码代理技能与嵌入式脚本
- ✅ 调用模型 -Claude自主决定何时使用
- ✅ 渐进式披露 -与方法#3相同的脚本
- ✅ 团队共享 -向git提交团队访问权限
- ✅ 发现 -描述触发自动激活
- ✅ 上下文保存 -代理只读取需要的内容
- ⚠️ 克劳德代码特定 -仅适用于Claude Code
- ⚠️ 学习曲线 -需要了解技能体系
架构:
Claude (detects trigger) → Loads SKILL.md → Runs scripts → Kalshi API结构:
.claude/skills/kalshi-markets/
├── SKILL.md (concise description & instructions)
└── scripts/ (copies of all 10 file system scripts)何时使用: 使用Claude Code,需要自动技能发现,通过git进行团队协作,需要通过渐进式披露来保存上下文。
______________________________________________________________________
我的方法(IndyDevDan)
外部工具
- 80%只需使用 MCP服务器别想太多。
- 15% 命令行界面 -如果您需要修改、扩展或控制工具和上下文。
- 5% 脚本或技能 -用于严肃的上下文保护、可移植性或生态系统重用
新工具
- 80%只需使用 命令行界面 +Prime Prompt(为您、您的团队和您的代理人工作)。
- 10%包裹 MCP服务器 当我需要大规模的多个代理时,我不想为我的代理添加“另一件”需要关注的事情。
- 10% 脚本或技能 -用于严肃的上下文保护、可移植性或生态系统重用。
关键技术细节
API访问:
- 基本URL:
https://api.elections.kalshi.com/trade-api/v2 - 无需身份验证(只读公共数据)
- 约6900个市场系列可用
搜索缓存:
Kalshi API没有提供原生搜索端点,这给按关键字查找市场带来了挑战。我们的解决方案:智能本地缓存。
- 问题: 没有API搜索端点意味着我们每次搜索都需要在数千个市场中进行分页
- 解决方案: 只需构建一个完整的本地缓存,然后使用pandas立即搜索
- 第一轮: 2-5分钟即可获取所有约6900个市场并建立缓存
- 后续搜索: 即时(搜索缓存的pandas DataFrame)
- 缓存位置:
.kalshi_cache/在项目根目录下(跨CLI和脚本共享) - TTL: 6小时(过期时自动刷新)
- 搜索范围: 搜索标题、字幕、股票代码、系列名称和描述
为什么延迟很重要:
- 在缓存构建期间,会话中的首次搜索将需要2-5分钟
- 用户将在缓存构建过程中看到进度消息
- 初始构建后,搜索将立即进行6小时
- 这种权衡可以在所有市场上进行全面的关键词搜索,而不仅仅是来自分页API调用的前100-500个结果
路径分辨率:
- 所有脚本都使用绝对路径解析
Path(__file__).resolve() - 从任何目录调用时都能正常工作
- 缓存始终解析为项目根目录
权衡比较
| MCP | CLI | 脚本 | 技能 | |
|---|---|---|---|---|
| 已调用代理 | 是 | 否 | 否 | 是 |
| 上下文窗口消耗 | 高 | 中(取决于) | 低(含) | 低 |
| 可定制的 | 否(除非您拥有) | 是 | 是 | 有 |
| 可移植性 | 低 | 中 | 高 | 高 |
| 可组合性 | 是(MCP提示) | 是,但需要本地提示 | 是,但是需要本地提示 | |
| 简洁 | 高 | 中 | 中 | 中等 |
| 工程投资 | 外部为低,自定义为中 | 中 | 外部为中 | 自定义为中 |
| 功能集 | 工具、资源、提示、启发、完成、采样、记录、授权。等等 | 无论你建造什么 | 无论你创造什么 |
关键见解
上下文窗口消耗:
- MCP和CLI 在每次工具调用中使用完整上下文
- 脚本和技能 使用渐进式披露-只加载需要的内容
已调用代理:
- MCP和技能 由Claude根据上下文自动触发
- CLI和脚本 需要明确的代理决策才能使用
可定制的:
- 主控程序 除非您拥有/分叉服务器,否则将被锁定
- CLI、脚本、技能 完全在你的控制之下
便携性:
- 脚本和技能 是最可移植的(只有Python文件)
- 命令行界面 需要安装,但可以在任何地方工作
- 主控程序 需要MCP兼容的客户端设置
何时使用每种方法
在以下情况下选择MCP服务器:
- 为多个法学硕士客户(不仅仅是克劳德)建造
- 需要标准化的工具协议
- 每次通话的上下文丢失是可以接受的
- 希望跨客户端自动发现工具
- 使用您无法控制的外部MCP服务器
在以下情况下选择CLI:
- 需要人工CLI和程序访问
- 想要API逻辑的单一真相来源
- 直接HTTP控制很重要
- 愿意接受子流程开销
- 构建通用工具
在以下情况下选择文件系统脚本:
- 上下文保护至关重要
- 想要最大的可移植性(仅Python+httpx)
- 需要逐步披露(尽量减少代币使用)
- 可以通过代码复制进行隔离
- 构建一次性集成
在以下情况下选择技能:
- 专门使用Claude Code(和生态系统)
- 想要自主技能发现
- 通过git进行团队协作很重要
- 需要保存上下文+逐步披露
- 构建可重用的团队能力
项目结构
beyond-mcp/
├── apps/
│ ├── 1_mcp_server/ # MCP Server implementation
│ │ ├── server.py # 15 MCP tools wrapping CLI
│ │ └── README.md
│ ├── 2_cli/ # CLI implementation
│ │ ├── kalshi_cli/
│ │ │ ├── cli.py # 13 commands (552 lines)
│ │ │ └── modules/ # HTTP client, cache, formatters
│ │ └── README.md
│ ├── 3_file_system_scripts/ # Progressive disclosure scripts
│ │ ├── scripts/ # 10 standalone scripts
│ │ │ ├── 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 Code Skill
│ └── .claude/skills/kalshi-markets/
│ ├── SKILL.md # Skill description & instructions
│ └── scripts/ # Same 10 scripts as #3
└── .kalshi_cache/ # Shared cache directory (CLI & scripts)资源
大师 代理编码
为软件工程的未来做好准备
学习战术代理编码模式 战术代理编码.
跟随 IndyDevDan YouTube频道 以提高您的代理编码优势。
