Skip to main content
Glama
snow-wind-001

CodeRecoder MCP

CodeRecoder MCP

CodeRecoder Logo

智能代码版本管理系统 - 基于MCP协议的AI增强代码快照与恢复工具

License: MIT TypeScript MCP Protocol Node.js

🌟 项目简介

CodeRecoder是一个基于**Model Context Protocol (MCP)**的智能代码版本管理系统,专为AI辅助编程设计。它提供了类似Cursor编辑器的多轮生成和撤销功能,支持瞬间文件快照、项目级版本控制、智能变更检测和AI增强的代码分析。

✨ 核心特性

  • 🚀 瞬间快照 - 基于直接文件复制的高性能快照系统

  • 🧠 AI增强分析 - 集成Serena代码分析,智能识别代码变更和复杂度

  • 📦 项目级版本控制 - 类似Cursor的增量/全量快照策略

  • 🔍 智能变更检测 - 四重检测机制:Git状态、文件统计、内容哈希、时间戳

  • 🏷️ 快照标签系统 - 用户友好的快照命名和分类

  • 🔗 智能链式恢复 - 增量快照依赖关系自动处理

  • 📊 结构化数据管理 - 项目独立的.CodeRecoder目录结构

  • 🛡️ 安全恢复机制 - 验证快照内容,防止意外数据丢失

Related MCP server: GenCodeDoc

🛠 技术架构

系统组件

CodeRecoder MCP Server
├── 📁 Core Managers
│   ├── ProjectManager        # 项目激活与配置管理
│   ├── FileSnapshotManager   # 单文件快照管理
│   ├── ProjectSnapshotManager# 项目级快照管理
│   └── HistoryManager        # 传统编辑历史管理
├── 🔍 Analysis Services
│   └── AIAnalysisService     # AI代码分析集成
├── 📊 Data Structure
│   └── DataStructureManager  # 结构化数据管理
└── 🌐 MCP Interface
    └── CodeRecoderServer     # MCP协议服务器

数据存储结构

每个项目在其根目录下维护独立的.CodeRecoder目录:

.CodeRecoder/
├── config/                   # 项目配置
│   ├── project.json         # 项目元信息
│   ├── settings.json        # 用户设置
│   └── cache.json          # 缓存配置
├── snapshots/               # 快照存储
│   ├── files/              # 文件快照
│   │   ├── [sessionId]/    # 会话分组
│   │   └── sessions.json   # 会话索引
│   ├── projects/           # 项目快照
│   │   ├── [snapshotId]/   # 完整项目副本
│   │   └── index.json      # 快照索引
│   └── snapshots.json      # 文件快照数据
├── history/                # 编辑历史
│   ├── edits.json         # 编辑记录
│   └── sessions.json      # 会话历史
├── analysis/              # AI分析缓存
│   ├── ai_summaries.json  # AI分析结果
│   └── code_metrics.json # 代码指标
└── logs/                  # 系统日志
    ├── debug.log         # 调试日志
    └── error.log         # 错误日志

🚀 快速开始

环境要求

  • Node.js >= 18.0.0

  • TypeScript >= 5.3.0

  • Git (用于变更检测)

  • MCP兼容的AI助手 (如Claude Desktop、Cline等)

安装步骤

  1. 克隆仓库

git clone https://github.com/yourusername/CodeRecoder.git
cd CodeRecoder
  1. 安装依赖

npm install
  1. 构建项目

npm run build
  1. 配置MCP客户端

在Claude Desktop配置文件中添加:

{
  "mcpServers": {
    "coderecoder": {
      "command": "node",
      "args": ["/path/to/CodeRecoder/dist/index.js"],
      "cwd": "/path/to/CodeRecoder"
    }
  }
}
  1. 启动服务

npm start

快速测试

# 激活项目
activate_project {"projectPath": "/path/to/your/project"}

# 创建文件快照
create_file_snapshot {
  "filePath": "/path/to/file.js",
  "prompt": "添加新功能前的备份"
}

# 创建项目快照
create_project_snapshot {
  "prompt": "功能开发完成",
  "name": "Feature v1.0",
  "tags": ["stable", "feature"]
}

# 列出快照
list_project_snapshots {}

# 恢复快照
restore_project_snapshot {"snapshotId": "your-snapshot-id"}

📖 MCP工具API

项目管理

activate_project

激活项目进行代码跟踪,创建结构化的.CodeRecoder目录。

{
  "projectPath": string,     // 项目根目录路径
  "projectName"?: string,    // 可选项目名称
  "language"?: string        // 可选编程语言
}

deactivate_project

停用当前项目并可选择性保存历史记录。

list_projects

列出所有可用项目和当前激活的项目。

get_project_info

获取项目的详细信息。

文件快照管理

create_file_snapshot

为单个文件创建瞬间快照,支持AI分析。

{
  "filePath": string,        // 文件路径
  "prompt": string,          // 快照描述
  "sessionId"?: string,      // 可选会话ID
  "metadata"?: object        // 可选元数据
}

restore_file_snapshot

从快照恢复文件,支持即时恢复。

{
  "snapshotId": string       // 快照ID
}

list_file_snapshots

列出带有AI分析摘要的文件快照。

delete_file_snapshot

删除特定文件快照(不可撤销)。

项目快照管理

create_project_snapshot

创建项目级快照,类似Cursor的工作方式。

{
  "prompt": string,          // 快照描述
  "name"?: string,          // 用户友好名称
  "tags"?: string[],        // 快照标签
  "projectPath"?: string    // 可选项目路径
}

特性:

  • 🔍 智能变更检测(四重检测机制)

  • 📦 增量/全量快照策略

  • 🧠 Serena代码分析集成

  • 🏷️ 标签分类系统

list_project_snapshots

列出所有项目快照,包含详细信息:

输出信息:

  • 📅 快照时间和时间差

  • 🏷️ 快照名称和标签

  • 🤖 AI分析摘要

  • 📁 实际文件数量

  • 🔗 依赖快照关系

  • 📏 快照大小信息

restore_project_snapshot

智能恢复项目快照,支持增量快照链式恢复。

{
  "snapshotId": string       // 快照ID
}

特性:

  • 🔗 自动构建恢复链

  • 🛡️ 安全验证机制

  • 📊 详细恢复进度

传统版本控制

record_edit

记录代码编辑(传统方式,建议使用快照)。

rollback_to_version

回滚到特定版本(传统方式)。

list_history

列出编辑历史记录。

会话管理

create_session

创建新的编辑会话来组织相关变更。

get_current_session

获取当前活动会话的信息。

get_diff

生成两个版本之间的差异比较。

🧠 智能特性

AI增强分析

CodeRecoder集成了先进的AI分析能力:

  • 代码复杂度评估 - 自动评估代码变更的复杂度

  • 变更意图识别 - 智能识别变更类型(功能、修复、重构等)

  • 影响范围分析 - 分析代码变更的潜在影响

  • Serena集成 - 深度代码结构和语义分析

智能变更检测

四重检测机制确保任何文件变更都能被准确捕获:

  1. Git状态检测 - 基于Git的变更状态

  2. 文件统计对比 - 文件大小、修改时间对比

  3. 内容哈希对比 - SHA256内容哈希验证

  4. 时间戳检测 - 最近修改文件扫描

智能快照策略

  • 增量快照 - 只保存变更的文件,节省存储空间

  • 全量快照 - 定期创建完整项目副本作为基线

  • 智能触发 - 基于变更量和时间间隔自动决定快照类型

  • 链式恢复 - 增量快照自动关联依赖,确保完整恢复

🔧 高级配置

项目配置

在项目的.CodeRecoder/config/project.json中可以配置:

{
  "projectName": "MyProject",
  "language": "typescript",
  "features": {
    "fileSnapshots": true,
    "projectSnapshots": true,
    "aiAnalysis": true,
    "autoBackup": false
  },
  "settings": {
    "maxSnapshots": 100,
    "autoCleanup": true,
    "fullSnapshotInterval": 10
  }
}

快照策略配置

{
  "fullSaveInterval": 10,    // 每10次增量保存执行一次全量保存
  "maxSnapshots": 100,       // 最大快照数量
  "autoCleanup": true,       // 自动清理旧快照
  "excludePatterns": [       // 排除文件模式
    "node_modules",
    ".git",
    "*.log"
  ]
}

🛡️ 安全特性

数据安全

  • 内容验证 - 快照恢复前验证文件完整性

  • 备份机制 - 恢复前自动创建当前文件备份

  • 原子操作 - 确保操作的原子性,避免部分失败

  • 路径安全 - 严格的路径验证,防止目录遍历攻击

恢复安全

  • 快照验证 - 恢复前检查快照内容和完整性

  • 依赖检查 - 增量快照恢复前验证依赖链完整性

  • 安全模式 - 移除危险的--delete参数,防止意外删除

  • 回滚保护 - 提供多层次的回滚和恢复机制

🚀 性能优化

高性能特性

  • 直接文件复制 - 避免内容分析开销,实现毫秒级快照

  • 增量存储 - 只保存变更文件,大幅减少存储需求

  • 并行处理 - 多文件操作支持并行执行

  • 智能缓存 - 文件哈希和元数据缓存,避免重复计算

性能基准

  • 文件快照 - < 50ms (单文件)

  • 项目快照 - < 2s (100+ 文件项目)

  • 快照恢复 - < 1s (完整项目恢复)

  • 变更检测 - < 500ms (智能四重检测)

🤝 集成指南

与AI助手集成

CodeRecoder专为AI辅助编程设计,完美集成:

  • Claude Desktop - 通过MCP协议原生支持

  • Cline - VS Code扩展直接集成

  • 其他MCP客户端 - 任何支持MCP的AI助手

工作流示例

// 1. 激活项目
await activate_project({projectPath: "/my/project"});

// 2. 开发前创建检查点
await create_project_snapshot({
  prompt: "开始新功能开发",
  name: "开发起点",
  tags: ["checkpoint", "stable"]
});

// 3. 开发过程中创建文件快照
await create_file_snapshot({
  filePath: "/my/project/src/feature.ts",
  prompt: "实现核心逻辑"
});

// 4. 功能完成后创建项目快照
await create_project_snapshot({
  prompt: "新功能开发完成",
  name: "Feature X v1.0",
  tags: ["feature", "complete", "tested"]
});

// 5. 如需回滚
await restore_project_snapshot({
  snapshotId: "checkpoint-snapshot-id"
});

🔄 迁移指南

从其他工具迁移

从Git迁移

# CodeRecoder可以与Git并存
# 激活项目后自动检测Git状态
activate_project {"projectPath": "/existing/git/project"}

从Cursor迁移

CodeRecoder提供类似Cursor的快照功能:

  • 使用create_project_snapshot替代Cursor的项目快照

  • 使用list_project_snapshots查看快照历史

  • 使用restore_project_snapshot恢复到特定状态

🐛 故障排除

常见问题

快照创建失败

# 检查项目是否正确激活
get_project_info {}

# 检查磁盘空间
df -h

# 查看详细日志
tail -f .CodeRecoder/logs/debug.log

恢复失败

# 验证快照完整性
list_project_snapshots {}

# 检查快照文件
ls -la .CodeRecoder/snapshots/projects/[snapshot-id]/

变更检测不工作

# 检查文件基线
# 如果基线为空,会自动重建
create_project_snapshot {"prompt": "重建基线"}

调试模式

启用详细日志:

# 设置环境变量
export DEBUG=coderecoder:*
npm start

🤝 贡献指南

我们欢迎社区贡献!请遵循以下步骤:

开发环境设置

git clone https://github.com/yourusername/CodeRecoder.git
cd CodeRecoder
npm install
npm run build

提交指南

  1. Fork 项目

  2. 创建特性分支 (git checkout -b feature/AmazingFeature)

  3. 提交更改 (git commit -m 'Add some AmazingFeature')

  4. 推送到分支 (git push origin feature/AmazingFeature)

  5. 开启 Pull Request

代码规范

  • 使用 TypeScript 严格模式

  • 遵循 ESLint 配置

  • 添加适当的注释和文档

  • 编写单元测试

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

📊 项目统计

  • 代码行数: ~2,500 行 TypeScript

  • 核心模块: 8 个

  • MCP工具: 18 个

  • 支持的语言: 全部(语言无关)

  • 最低Node版本: 18.0.0

🔗 相关链接


CodeRecoder - 让AI辅助编程更加智能和安全

⭐ 给个Star | 🐛 报告Bug | 💡 功能建议

Available Tools

17 tools
activate_projectA

Activate a project for code tracking. Creates .CodeRecoder cache directory with structured data.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoOptional programming language (auto-detected if not provided)
projectNameNoOptional custom name for the project
projectPathYesAbsolute path to the project directory

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It does mention the main side effect (creating a cache directory), but it omits details such as idempotency, permissions required, error behavior if the project is already active, or whether existing data is overwritten. This is a moderate level of transparency given the mutation nature of the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the verb, resource, and effect without any filler. It earns its place and is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description is moderately adequate. It explains the core functionality but fails to mention return values, preconditions, or failure scenarios. Given the tool's simplicity and full schema coverage, it's minimally viable but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the description doesn't need to add param details. However, the description also adds no extra meaning about how language or projectName affect the behavior, staying at the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Activate a project') and its purpose ('for code tracking'), and it specifies the tangible effect ('Creates .CodeRecoder cache directory with structured data'). This distinguishes it from sibling tools like deactivate_project or snapshot tools, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used to start code tracking for a project, but it provides no explicit when-to-use or when-not-to-use guidance. It doesn't contrast with alternatives like create_session or create_project_snapshot, so the usage context is only implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_file_snapshotA

Create a file snapshot for instant backup and restore. Much faster than record_edit - uses direct file copying.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesUser prompt or description for this snapshot
filePathYesAbsolute path to the file to snapshot
metadataNoOptional metadata about the generation (model, temperature, etc.)
sessionIdNoOptional session ID to group related snapshots

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'direct file copying' which implies the original file is preserved, and notes speed as a benefit. However, without annotations, it fails to disclose other behavioral aspects such as permissions, storage location, overwrite behavior, or error conditions, leaving ambiguity about the snapshot's side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that immediately state the purpose and a distinguishing advantage. Every word adds value, with no redundancy or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the schema covers all parameters, the description omits critical information about return values (e.g., snapshot ID), storage of snapshots, error handling, and integration with sibling tools like restore_file_snapshot. Without annotations or an output schema, this leaves the tool incompletely specified for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are fully described in the schema (100% coverage), including prompt, filePath, metadata, and sessionId. The description adds no additional parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a file snapshot for backup and restore, and explicitly distinguishes it from record_edit by noting it's faster and uses direct file copying. This specific verb and resource combination makes the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context by comparing to record_edit, indicating this tool is a faster alternative for creating backups. However, it does not explicitly mention when not to use it or enumerate other alternatives like restore_file_snapshot, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_project_snapshotB

Create a project-wide snapshot (like Cursor). Analyzes project changes using Serena and saves incrementally or fully based on save count.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional user-friendly name for the snapshot (e.g., "Feature Complete", "Before Refactor")
tagsNoOptional tags for categorizing snapshots (e.g., ["stable", "feature"])
promptYesDescription of changes being saved
projectPathNoOptional project path. Uses current active project if not provided.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions analyzing changes via 'Serena' and saving incrementally/fully based on 'save count', but these are vague and undefined. It does not disclose side effects, permissions, or return behavior, leaving significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose. However, the second sentence introduces ambiguous terms ('Serena', 'save count') that reduce clarity. Still, it is concise without excessive wordiness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters, no output schema, and no annotations, the description is insufficient. It does not explain what happens after creation, what 'save count' means, who Serena is, or whether existing snapshots are affected. The complexity of a project snapshot tool demands more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific meaning beyond what the schema already provides; it only references an unrelated 'save count' concept.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a project-wide snapshot creation with the verb 'Create' and resource 'project-wide snapshot'. The 'like Cursor' analogy helps, and 'project-wide' distinguishes it from sibling create_file_snapshot, giving it a specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus create_file_snapshot or other alternatives. The description implies project-level snapshots but does not mention exclusions or alternative tools. 'Like Cursor' is an analogy, not a usage directive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sessionA

Create a new editing session to group related changes. Useful for organizing different features or experiments.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the session
descriptionNoOptional description of what this session is for

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention any prerequisites, side effects, or relationship with other session tools like get_current_session or record_edit, only stating its purpose. This leaves the agent unaware of what creation entails beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the first sentence stating the primary action and the second giving a use case. There is no redundant information, and it is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with two optional parameters and no output schema, so the description only needs to convey the core purpose and context. It does that, though it omits details about return values and how the session connects to other editing tools. For a straightforward creation tool, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers both parameters (name and description) with their own descriptions, so the description adds no additional parameter semantics. Baseline 3 is appropriate since schema coverage is 100%, and the description's purpose statement implicitly relates to the session's identity but does not elaborate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new editing session to group related changes,' which is a specific verb and resource. It distinguishes itself from siblings like get_current_session or create_file_snapshot by referring to an 'editing session' rather than a retrieval or snapshot operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes it is 'Useful for organizing different features or experiments,' providing a clear context for when to use it. However, it does not explicitly mention alternatives or when not to use it, such as when you need file snapshots instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deactivate_projectB

Deactivate the current project and optionally save history.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveHistoryNoWhether to save current history before deactivating

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose side effects, but it only states 'deactivate' and 'optionally save history'. It does not explain what deactivation entails (e.g., closing a session, irreversibility, impact on current state) or what happens to history when saveHistory is false. This is insufficient for a state-changing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant words. It communicates the core action and the optional parameter efficiently, earning its place without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's mutating nature and lack of annotations/output schema, the description is too sparse. It does not explain the practical implications of deactivation, whether it is reversible, how it interacts with the current session, or why saveHistory might be necessary. The presence of activate_project as a sibling only implies the inverse, but the tool still needs more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a clear description for saveHistory ('Whether to save current history before deactivating'), and schema coverage is 100%. The tool description's mention of 'optionally save history' paraphrases the schema without adding new meaning, so it does not elevate beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'deactivate' and identifies the resource 'current project', clearly distinguishing it from siblings like activate_project. It also mentions the optional saveHistory behavior, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (deactivate the current project) but does not explicitly state when to use it versus alternatives such as activate_project or snapshot tools. There is no mention of prerequisites, such as requiring an active session, or when one might choose not to save history.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_file_snapshotA

Delete a specific file snapshot and its associated files. Use with caution as this operation cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshotIdYesID of the snapshot to delete

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It clearly states that the operation 'cannot be undone' and that it deletes 'associated files,' which is important destructive-behavior context. However, it does not mention permissions, side effects on history, or whether the deletion is permanent across sessions, so it falls short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, both essential. The first sentence states the action and scope, the second adds an important warning. It is succinct and well-structured, with no filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one required parameter and no output schema, the description covers the core purpose, the scope (including associated files), and the irreversible nature. It is reasonably complete, though it could benefit from mentioning permission requirements or the effect on related snapshots. Given the tool's simplicity, the description is mostly adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema describes snapshotId as 'ID of the snapshot to delete,' providing 100% coverage. The description does not add any semantic detail beyond the schema, simply referring to 'a specific file snapshot.' With full schema coverage, the baseline is 3, and no extra context is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Delete') and identifies the exact resource ('a specific file snapshot and its associated files'). This clearly distinguishes it from sibling tools like restore_file_snapshot, create_file_snapshot, and list_file_snapshots, which have different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It includes a caution about irreversibility but does not mention any conditions for use or suggest an alternative (e.g., restore_file_snapshot) for recovering deleted content. There is no explicit 'when to use' context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_sessionA

Get information about the current active session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get information' but does not explicitly state that this is a read-only operation, nor does it describe what happens if no active session exists, whether errors are returned, or what the response format looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler words. It front-loads the verb and resource, making it immediately clear what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with zero parameters, but there is no output schema and the description does not explain what 'information' is returned. In the context of sibling tools, an agent might need to know whether this returns session ID, timestamps, or status, which is missing. However, the core purpose is clear enough for basic selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema fully covers this aspect. The baseline of 4 applies because there is nothing to explain beyond the absence of parameters; the description adds no parameter-specific semantics, but none are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Get') and resource ('current active session'). It distinguishes itself from sibling tools like create_session or list_history by focusing on the current session rather than creating or listing history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention that this should be used to retrieve current session info instead of other session-related tools, nor does it provide any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_diffA

Generate a diff between two edit versions to see what changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
toEditIdYesID of the second edit
fromEditIdYesID of the first edit

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states that a diff is generated, implying a read-only operation, but does not explicitly confirm non-destructiveness, mention any permissions, describe the output format, or note edge cases. This is insufficient for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that gets straight to the point. It is front-loaded with the action and resource, with no filler or redundant information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with only two parameters, both fully documented in the schema, and no output schema. The description sufficiently explains the core functionality for a diff tool. However, it does not mention the return value or any limitations (e.g., only works within the same session), which could be considered a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the two parameters, with each having a clear description ('ID of the first edit' and 'ID of the second edit'). The description adds no additional meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Generate a diff' with a clear resource ('two edit versions') and states the purpose ('to see what changed'). This clearly distinguishes it from sibling tools like rollback_to_version or restore_file_snapshot, which perform state changes rather than comparisons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for comparing edit versions but does not explicitly state when to use this tool over alternatives or provide any exclusion criteria. The purpose makes it obvious for diff scenarios, but there is no context about prerequisites or what distinguishes it from related list/history tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_infoB

Get detailed information about a project or the current active project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathNoOptional project path. If not provided, returns current project info.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions potential behavior ('current active project') but fails to disclose what 'detailed information' includes, whether the operation is read-only, or any potential side effects. This lack of behavioral detail is a gap for a tool dealing with project data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the essential purpose. Every word contributes meaning, with no redundancy or filler. It is appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional parameter), but there is no output schema, and the description does not specify what information is returned. The context is incomplete for an AI agent trying to understand what 'detailed information' means or how to interpret the result. More detail on return value would be needed for full clarity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description fully covers the single parameter 'projectPath', including the optional behavior when omitted. The tool description only restates this with slightly different wording ('current active project' vs 'current project'), adding no meaningful extra meaning. With 100% schema coverage, the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: retrieving detailed project information, with an option to target the current active project. It is specific about the action ('get') and resource ('project'), though it does not explicitly differentiate from sibling tools like 'get_current_session' or 'list_projects'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need project details, and specifically mentions the behavior when no path is given (returns current project). However, it does not provide explicit guidance on when to use it over alternatives, such as using 'get_current_session' for session-level info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_file_snapshotsA

List AI-enhanced file snapshots with intelligent summaries for easy rollback selection. Shows snapshot time, modified files, and AI-generated summaries.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional limit on number of results (default 20 for better readability)
formatNoOutput format: "detailed" (default) shows full info, "compact" shows summary only
filePathNoOptional file path to filter snapshots
sessionIdNoOptional session ID to filter snapshots

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool shows snapshot time, modified files, and AI summaries, but does not explicitly state it is read-only or describe any side effects. The verb 'list' implicitly signals a safe operation, but additional behavioral detail (e.g., no modifications, return format) would strengthen transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and key differentiators (AI-enhanced, easy rollback selection). It adds relevant detail without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no output schema, the description adequately covers the core behavior and the content of the returned data. It could mention the default limit or the availability of filters, but those are already in the schema, so the description is sufficiently complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for all four parameters (limit, format, filePath, sessionId), so the baseline is 3. The description does not add any parameter-specific meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ('List AI-enhanced file snapshots') and adds purpose context ('for easy rollback selection'). It clearly distinguishes from sibling tools like list_project_snapshots and restore_file_snapshot by focusing on the listing behavior for file snapshots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a clear use case: when you need to select a file snapshot for rollback. It does not explicitly name alternatives or exclusions, but the context of 'rollback selection' is concrete enough to guide an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_historyA

Legacy: List edit history for debugging. Note: list_file_snapshots is much faster.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional limit on number of results
filePathNoOptional file path to filter history
sessionIdNoOptional session ID to filter history

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry behavioral disclosure. It adds the legacy status and performance comparison, which is useful context. However, it does not specify whether the operation is read-only, what it returns, or any error or authorization details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that conveys all necessary information without redundancy. The note about the faster sibling is valuable and succinctly placed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with three optional parameters and no output schema, the description gives the core purpose and an important performance caveat. It lacks details on return value structure, pagination behavior, or legacy-specific caveats, which would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have full schema descriptions (limit, filePath, sessionId), so the schema already covers semantics. The description adds no additional parameter-specific guidance, keeping this at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function ('List edit history'), its purpose ('for debugging'), and its legacy status. It also distinguishes itself from the sibling tool by noting that list_file_snapshots is much faster, effectively differentiating it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear alternative ('list_file_snapshots is much faster') and implies that this tool is for debugging scenarios. It does not explicitly say when not to use it, but the legacy label and performance note offer practical guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsA

List all available projects and show current active project.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden. It discloses the extra behavior of showing the active project but does not explicitly state that it is read-only, nor does it mention any permissions or side effects. The verb 'list' implies safety, but explicit disclosure is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, no filler, front-loaded with the action and object. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no output schema, the description gives a reasonable hint of the output: a list of available projects and the current active project. It does not specify ordering or pagination, but these are not expected for such a lightweight listing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is trivially 100%. The baseline for zero parameters is 4, and the description does not need to add parameter details. Nothing is missing here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'list' with a clear resource 'projects' and also mentions showing the current active project, which adds precision. It distinguishes itself from mutations like activate_project/deactivate_project by focusing on read-only listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_project_info or list_project_snapshots. The description does not mention any exclusions or context where another tool would be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_snapshotsA

List all project snapshots with save numbers, types (incremental/full), and Serena analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format: "detailed" (default) or "compact" for Cline

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. While 'List' implies a read-only operation, the description does not explicitly state that it is non-destructive, nor does it clarify the scope of 'all project snapshots' (e.g., current project vs. all projects). It also lacks any mention of side effects, permissions, or context requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that efficiently conveys the core purpose and expected output. There is no wasted wording or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no required parameters and no output schema. The description lists the output fields, which is helpful, but it leaves ambiguity about the project scope and does not explain what 'Serena analysis' entails. These gaps make it incomplete for an agent to fully anticipate behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100% (the single 'format' parameter is fully described). The description adds no extra meaning to the parameter itself, but the baseline of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('List'), resource ('project snapshots'), and the key output fields ('save numbers, types (incremental/full), and Serena analysis'). This distinguishes it from sibling tools like list_file_snapshots or create_project_snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you need to list project snapshots) but does not explicitly differentiate from alternative tools such as list_file_snapshots or provide when-not-to-use guidance. The context is clear from the name and sibling list, but no explicit exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_editB

Legacy: Record a code edit for version history tracking. Note: create_file_snapshot is much faster.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesUser prompt that led to this edit
endLineYesEnding line number (1-based) of the edit
filePathYesAbsolute path to the file being edited
metadataNoOptional metadata about the generation (model, temperature, etc.)
sessionIdNoOptional session ID to group related edits
startLineYesStarting line number (1-based) of the edit
newContentYesNew content that replaced the original
oldContentYesOriginal content that was replaced

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing side effects. It only says 'Record a code edit for version history tracking,' but does not explain what recording entails (e.g., whether it writes to a persistent store, whether it modifies files, or if any permissions are needed). This is a significant gap for a tool that likely has mutation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using two short sentences to convey the legacy status and a performance comparison. It is front-loaded with the 'Legacy' warning. However, it may be too brief for a tool with eight parameters, lacking necessary elaboration for safe use, but the conciseness itself is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has eight parameters and no output schema, the description is incomplete. It does not explain the tool's behavior beyond recording an edit, nor does it mention any prerequisites, side effects, or edge cases. The 'Legacy' note is helpful but not sufficient for full contextual understanding, leaving significant gaps for an agent deciding whether to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all eight parameters having explicit descriptions in the schema. The tool description adds no parameter-specific information, so it does not enhance the semantic understanding beyond the schema. Baseline of 3 is appropriate given the schema's completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Record a code edit') and its purpose ('for version history tracking'). While it doesn't explicitly differentiate from all sibling tools, the 'Legacy' label and the note about create_file_snapshot provide some distinction, making the purpose understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage guidance by labeling the tool as 'Legacy' and explicitly noting that 'create_file_snapshot is much faster.' This implies prefer the alternative while still allowing this tool for older workflows, giving a concrete comparison and implicit when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_file_snapshotA

Restore a file from a snapshot. Instant file restore using direct file copying.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshotIdYesSnapshot ID to restore from

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It mentions 'instant' and 'direct file copying', but critically omits that restoring may overwrite the current file or be irreversible. For a state-modifying operation, this lack of safety/effect disclosure is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with zero redundancy. The first sentence states the action, and the second adds a meaningful detail about the method. The description is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter, the core operation is described, but the description does not explain return values, potential side effects (e.g., overwriting the file), or prerequisites (snapshot must exist). Given no output schema and no annotations, this is only minimally complete for an AI agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a complete description for the only parameter ('Snapshot ID to restore from'). The tool-level description adds no additional parameter semantics, but with 100% schema coverage the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Restore') and specific resource ('a file from a snapshot'), distinguishing it from project-snapshot restore. The phrase 'Instant file restore using direct file copying' adds a concrete behavioral detail that reinforces the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied (use this tool to restore a file) but no explicit when-to-use or when-not-to-use guidance is given. The description does not mention alternatives like 'rollback_to_version' or 'restore_project_snapshot', leaving it to inference from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_project_snapshotA

Restore entire project to a specific snapshot state.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshotIdYesID of the snapshot to restore

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description must disclose behavioral traits. It only says 'Restore entire project,' which implies overwriting but does not mention irreversible changes, required permissions, or whether the restore can be undone. This insufficient disclosure for a mutation tool merits a 2.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 8 words: 'Restore entire project to a specific snapshot state.' It is front-loaded and contains no fluff, achieving a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and no output schema, the description is minimal. However, as a project-level mutation, it lacks context about consequences, such as whether current changes are lost or if it creates a new history entry. This is a gap, but the simplicity of the tool keeps it at a 3.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides a 100% description of the single parameter snapshotId. The description adds no new information beyond what the schema already says, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states, 'Restore entire project to a specific snapshot state.' The verb 'Restore' is specific, and 'entire project' clearly scopes the operation to project-level, distinguishing it from sibling restore_file_snapshot. This matches a 5 for purpose clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not mention when to use this tool versus restore_file_snapshot or rollback_to_version. It only implies project-level use via 'entire project,' but lacks explicit alternatives or exclusions. This is implied usage, so a 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rollback_to_versionA

Legacy: Rollback files to a previous version. Note: restore_file_snapshot is much faster.

ParametersJSON Schema
NameRequiredDescriptionDefault
editIdNoOptional specific edit ID to rollback to. If not provided, rollback to session start.
sessionIdYesSession ID to rollback within

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only mentions legacy status and speed comparison. It does not explain side effects, whether the operation is destructive, permissions required, or what happens to current files, leaving significant behavioral ambiguity for a rollback operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise at two sentences, with the 'Legacy' warning and alternative reference each earning their place. Information is front-loaded, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the simple two-parameter schema, this is a mutation tool with no output schema and no annotation support. The description fails to convey behavioral impact, return values, or prerequisites, leaving the overall context incomplete for an agent deciding to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both sessionId and editId already described meaningfully in the schema. The tool description adds no additional parameter context, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Rollback' with a clear resource 'files to a previous version,' making the tool's function immediately understandable. It also distinguishes itself from siblings by labeling it 'Legacy' and explicitly referencing the faster alternative 'restore_file_snapshot.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by marking the tool as 'Legacy' and noting that 'restore_file_snapshot is much faster,' which steers users toward the alternative. However, it does not explicitly state any exclusions or specific scenarios where rollback_to_version should still be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 17 tool updatesv1.1.0
    • First observedactivate_project
    • First observedcreate_file_snapshot
    • First observedcreate_project_snapshot
    • First observedcreate_session
    • First observeddeactivate_project
    • First observeddelete_file_snapshot
    • First observedget_current_session
    • First observedget_diff
    • First observedget_project_info
    • First observedlist_file_snapshots
    • First observedlist_history
    • First observedlist_project_snapshots
    • First observedlist_projects
    • First observedrecord_edit
    • First observedrestore_file_snapshot
    • First observedrestore_project_snapshot
    • First observedrollback_to_version

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there is overlap between legacy tools (record_edit, rollback_to_version, list_history) and their faster counterparts (create_file_snapshot, restore_file_snapshot, list_file_snapshots). The descriptions explicitly mark legacy tools and point to alternatives, reducing confusion, but the redundancy still creates potential for misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_current_session, create_file_snapshot, list_projects). Variations like rollback_to_version still fit the verb-based pattern, making the naming predictable and easy to navigate.

Tool Count4/5

17 tools is slightly above the ideal 3-15 range but reasonable for the scope covering sessions, projects, file snapshots, and project snapshots. The count is inflated by three legacy tools that duplicate functionality; removing them would bring it to a more optimal 14 tools.

Completeness4/5

Core workflows for snapshots (create, list, restore, delete) and project management are covered, along with session and diff utilities. Minor gaps exist, such as the lack of a delete_project_snapshot operation and no way to get details of a single file snapshot beyond the list, but agents can still accomplish primary tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server providing persistent memory for AI coding assistants by storing and searching architectural decisions, patterns, and solutions. It also includes tools for git automation and mapping codebase expertise based on project history.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Smart documentation generator and intelligent versioning system with full MCP support, enabling AI assistants like Claude and Gemini to manage project snapshots, generate docs, and control versioning via 26 MCP tools.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI coding agents and hosts to enforce deterministic repository boundaries via MCP, providing structured reads, supervised edits, snapshots, audits, and recovery with machine-readable evidence.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/snow-wind-001/CodeRecoder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server