使用说明
卡西尼MCP vs CLI——人工智能接地实验
问题: 为AI代理提供结构化的MCP服务器是否比让它直接通过CLI工具查询SQLite数据库产生更好的答案?这个仓库是测试台。
这 卡西尼-惠更斯任务 在土星系统周围进行了13年精心策划的观测。它的总体规划——数万次预定观测——现在是一个SQLite数据库。它足够丰富、真实和领域特定,以至于模型无法通过它来伪造。这使它成为比较两种将人工智能代理置于结构化数据中的方法的理想主题。
此回购中有什么
| Path | 它是什么 |
|---|---|
cassini.db |
卡西尼号任务数据的SQLite数据库 |
mcp/ |
MCP服务器将卡西尼数据作为工具公开 |
cli/ |
用于直接查询卡西尼数据的CLI工具 |
loop/ |
The agentloop 构建此项目的编排器 |
prd.json |
推动构建的产品需求 |
.claude/agents/ |
代理定义(测试编写者、构建者、审阅者等) |
数据集: cassini.db
两张桌子。所有真实数据。
master_plan --61873行
卡西尼号轨道之旅期间计划的每一次观测,从2005年4月到2016年9月15日的大结局。
| 列 | 说明 |
|---|---|
id |
自动递增主键 |
start_time_utc |
观察开始时间 |
duration |
观察时长(格式: DDDThh:mm:ss) |
date |
日历日期(例如。 15-Jan-05) |
team |
仪器团队(CIRS、UVIS、ISS、VIMS、INMS等) |
spass_type |
观测子类型分类 |
target |
目标天体(土星、土卫六、土卫二、光环等) |
request_name |
短内部标识符 |
title |
人类可读的观察标题 |
description |
完整的科学描述 |
按观察次数排列的首要目标: 土星(16958)、土卫六(9503)、环(5808)、土卫二(1626)、土卫五(964)、土卫四(780)、土卫八(682)。
顶尖乐器团队: CIRS(11969),UVIS(9208),ISS(8989),VIMS(6376),INMS(4747)。
planets --6排
卡西尼号访问的土星系统天体的参考数据。
| 列 | 说明 |
|---|---|
name |
天体名称(土星、土卫六、土卫二、土卫八、土卫五、土卫一) |
type |
planet 或 moon |
parent_body |
母体(土星代表所有卫星) |
radius_km |
平均半径(单位:千米) |
mass_kg |
质量(千克) |
orbital_period_days |
轨道周期 |
discoverer |
谁发现的 |
discovered_date |
发现日期 |
notes |
显著特征 |
设置
先决条件
MCP服务器
MCP服务器将卡西尼数据作为AI代理在对话中可以调用的可调用工具公开。
cd mcp
bun install
bun run dev # development mode with --watch
bun run build # compile to dist/cassini-mcp
在克劳德桌面注册(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"cassini": {
"command": "bun",
"args": ["run", "/path/to/session-7/mcp/src/index.ts"]
}
}
}
重新启动克劳德桌面。卡西尼工具将出现在工具选择器中。
CLI工具
CLI工具允许模型(或人类)直接从命令行查询数据库。
cd cli
bun install
bun run dev --help # see available commands
bun run build # compile to dist/cassini-cli
基本用法:
# Ask a question in plain language
./cassini-cli ask "How many times did Cassini observe Enceladus?"
# Query a specific target
./cassini-cli target enceladus --limit 10
# Summarise a moon
./cassini-cli moon titan
示例问题
这些问题可以从实际数据中回答 cassini.db。对这两种实现进行尝试。
1.有多少观测以土卫二为目标,由哪个仪器小组领导?
土卫二在年出现1626次
master_plan.知道哪些团队占主导地位,以及观察结果的名称,告诉你每次飞越的科学重点。
2.卡西尼号在总决赛前一周观测到了什么?
任务于2016年9月15日结束。这
master_plan记录一直持续到那个日期。在最后几天会出现什么目标、持续时间和团队?
3.哪颗卫星的观测次数最多,与它的半径相比如何?
泰坦(9503次观测,半径2574公里)与土卫二(1626次观测,直径252公里)。这
planets表格提供了身体统计数据;master_plan供应计数。
4.哪个仪器团队的观察时间最长,他们的主要目标是什么?
CIRS以11969次预定观测领先。归纳
duration并按以下方式分组team和target展示了科学时间是如何分配的。
5.将乔瓦尼·卡西尼发现的卫星与威廉·赫歇尔发现的卫星进行比较——它们的观测计数是什么样子的?
土卫八和土卫五(均为卡西尼,1671-1672)与土卫二和土卫二(均为赫歇尔,1789)。十字
planets.discoverer随着master_plan目标计数。
如何比较
目标不是对原始查询速度进行基准测试,而是了解界面如何影响人工智能推理的质量。
观察内容
| 维度 | MCP | CLI |
|---|---|---|
| 工具透明度 | 代理显式调用命名工具;您可以看到每次调用 | 代理都会写入和运行SQL;意图不太明显 |
| 错误处理 | 工具架构在执行前强制执行有效输入 | 运行时出现SQL错误 |
| 后续问题 | Agent可以在一个回合内链接工具调用 | 每个问题都可能需要一个新的调用 |
| 快速工程 | 工具说明指导代理 | 系统提示和示例完成工作 |
| 幻觉表面 | 受工具输出约束 | 受查询结果约束 |
建议的工作流程
- 从上述五个示例问题中选择一个。
- 在MCP服务器处于活动状态时,在Claude Desktop中询问。注意所调用的工具、中间步骤和最终答案。
- 通过CLI工具运行相同的问题(或要求模型使用CLI)。注意生成的SQL和答案。
- 比较:哪个答案更准确?哪条路更透明?哪种错误更容易纠正?
没有正确的答案——实验才是关键。
关于 agentloop
该项目由 agentloop,一个轻量级的Claude驱动的构建编排器,生活在 loop/ 目录。上面写着 prd.json,启动专业代理(测试编写者、后端构建者、代码审查者、git提交者),并驱动他们完成审查周期,直到工作交付。您正在阅读的README是由后端构建器代理在第一个sprint期间编写的。
看 ORCHESTRATION.md 管道的工作原理,以及 .claude/agents/ 对于代理定义。
进一步阅读
- 模型上下文协议规范 --为MCP服务器供电的协议
- 用于TypeScript的MCP SDK —
@modelcontextprotocol/sdk - 卡西尼号任务档案 --原始数据的来源
- 土星观测活动 --喷气推进实验室任务概述
