Codevira MCP
Codevira MCP
为 AI 编码代理提供的持久化自适应记忆 —— 从每一次会话中学习,与每一个工具协作,跨越每一个项目进行记忆。
兼容: Claude Code · Cursor · Windsurf · Google Antigravity · 任何支持 MCP 的 AI 工具
问题所在
每当你开始一个新的 AI 编码会话时,你的代理总是从零开始。
它会重新读取之前看过的文件。它会重新发现已经建立的模式。它会做出与上周决策相矛盾的决定。它根本不知道项目处于什么阶段、已经尝试过什么,或者为什么某些文件是禁止访问的。
结果就是,你在每一个会话中都要花费数千个 Token 进行“重新发现”。
Codevira 解决了这个问题。
功能特性
Codevira 是一个可以放入任何项目的 Model Context Protocol 服务器。它为每一个处理你代码库的 AI 代理提供了一个共享的、持久化的记忆:
功能 | 含义 |
实时自动监控 | 后台文件监控器在每次保存时自动重新索引 —— 无需手动触发或 git 提交 |
上下文图谱 | 每个源文件都有一个节点:包含角色、规则、依赖关系、稳定性、 |
语义代码搜索 | 跨代码库的自然语言搜索 —— 无需 grep,无需读取文件 |
路线图 | 基于阶段的跟踪器,让代理始终知道你处于什么阶段以及下一步要做什么 |
变更集跟踪 | 原子化跟踪多文件变更;中断后会话可无缝恢复 |
决策日志 | 每个会话都会写入结构化日志;过去的决策可供任何未来的代理搜索 |
自适应学习 | 结果跟踪、置信度评分、开发者偏好学习和自动规则推断 —— 记忆会随着时间推移变得更聪明 |
跨工具连续性 | 单个“帮我回顾”调用,可在 Cursor、Claude Code、Windsurf 和 Antigravity 之间无缝切换 |
代理角色 | 七种角色定义(规划者、开发者、审查者、测试者、构建者、文档编写者、编排者),具有明确的协议 |
结果: 每个会话的开销约为 1,400 个 Token,而不是 15,000+ 个 Token 的重新发现开销。
工作原理
代理会话生命周期
flowchart TB
Start([Start Session])
subgraph Orientation
A[Check Open Changesets]
B[Get Project Roadmap]
C[Search Past Decisions]
D[Load Graph Context\nget_node • get_impact]
end
subgraph Execution
E[Plan Task]
F[Implement Code]
G[Run Tests / Validation]
end
subgraph Completion
H[Update Graph Metadata]
I[Write Session Log]
J[Complete Changeset]
end
Start --> A
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
G --> H
H --> I
I --> J代码智能模型
flowchart TB
A[Source Code]
subgraph Structural Analysis
B[AST Parser]
C[Function / Class Extraction]
D[Dependency Analysis]
end
subgraph Knowledge Stores
E[(Semantic Index<br/>ChromaDB)]
F[(Context Graph<br/>SQLite DB)]
end
subgraph Runtime Access
G[MCP Query Layer<br/>search_codebase • get_node • get_impact]
end
H[AI Coding Agent<br/>Claude Code • Cursor]
A --> B
B --> C
C --> E
B --> D
D --> F
E --> G
F --> G
G --> H快速入门
1. 安装
pip install codevira-mcp2. 在你的项目中初始化
cd your-project
codevira init这个单一命令:
创建包含配置、图谱和日志目录的
.codevira/将
.codevira/添加到.gitignore(索引会自动重新生成,无需提交)提示输入项目名称、语言、源目录(逗号分隔)和文件扩展名
使用 SHA-256 内容哈希构建完整的代码索引(仅重新索引已更改的文件)
为所有源文件自动生成图谱存根
从 git 历史记录引导
.codevira/roadmap.yaml安装用于自动重新索引的
post-commitgit 钩子打印出要粘贴到 AI 工具中的 MCP 配置块
实时自动监控: 当 MCP 服务器启动时,它会自动启动一个后台文件监控器。每次你保存源文件时,索引都会在 2 秒内更新 —— 无需手动命令。
post-commit钩子和codevira indexCLI 仍然可以作为替代方案使用。
3. 连接到你的 AI 工具
根据你的 IDE 和环境,codevira-mcp 可能不会自动出现在你的 PATH 中。
你可以使用 uvx(最简单的选项)或提供 Python 虚拟环境的绝对路径。
选项 A:使用 uvx(推荐用于所有未本地安装的 IDE)
如果你使用 uv,你可以无缝运行 MCP 服务器,而无需为每个项目管理虚拟环境。
Claude Code (.claude/settings.json),Cursor / Windsurf (设置 → MCP):
{
"mcpServers": {
"codevira": {
"command": "uvx",
"args": ["codevira-mcp", "--project-dir", "/path/to/your-project"]
}
}
}选项 B:使用本地 Venv(推荐,适用于任何地方)
将你的 AI 工具直接指向安装了 codevira-mcp 的 .venv 中的 Python 运行时。
Claude Code (.claude/settings.json) 或 Cursor / Windsurf (设置 → MCP):
{
"mcpServers": {
"codevira": {
"command": "/path/to/your-project/.venv/bin/python",
"args": ["-m", "mcp_server", "--project-dir", "/path/to/your-project"]
}
}
}Google Antigravity — 添加到 ~/.gemini/antigravity/mcp_config.json:
{
"mcpServers": {
"codevira": {
"$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
"command": "/path/to/your-project/.venv/bin/python",
"args": ["-m", "mcp_server", "--project-dir", "/path/to/your-project"]
}
}
}⚠️ 重要:在多个项目中使用全局客户端(Antigravity / Claude Desktop)
与 Cursor(自动为每个项目启动隔离的 MCP 服务器)不同,像 Antigravity 这样的全局客户端在所有打开的项目中共享一个
mcp_config.json。如果你为
Project A配置了codevira,然后询问关于Project B的问题,代理将从Project A读取图谱和路线图。解决方法: 你必须在全局配置中为每个项目注册命名唯一的服务器。AI 将根据你的对话上下文动态选择正确的工具前缀:
{ "mcpServers": { "codevira-project-a": { "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate", "command": "uvx", "args": ["codevira-mcp", "--project-dir", "/path/to/project-a"] }, "codevira-project-b": { "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate", "command": "uvx", "args": ["codevira-mcp", "--project-dir", "/path/to/project-b"] } } }
4. 验证
让你的代理调用 get_roadmap() —— 它应该返回你当前的阶段和下一步行动。
初始化后的项目结构
your-project/
├── src/ ← your code (indexed)
├── .codevira/ ← Codevira data directory (git-ignored)
│ ├── config.yaml ← project configuration
│ ├── roadmap.yaml ← project roadmap (auto-generated, human-enrichable)
│ ├── codeindex/ ← ChromaDB index (auto-regenerated)
│ └── graph/ ← context graph and session memory
│ ├── graph.db ← SQLite database for nodes, edges, logs, and decisions
│ └── changesets/ ← active multi-file change records
└── requirements.txt ← add: codevira-mcp>=1.0.0路线图生命周期: 路线图在初始化期间自动生成,并由代理通过 MCP 工具调用进行更新。有关完整的生命周期指南、手动编辑步骤和故障排除,请参阅 docs/roadmap.md。
会话协议
每个代理会话都遵循一个简单的协议。在代理的系统提示词中设置一次 —— 然后你的代理就会处理剩下的事情。
会话开始(强制):
list_open_changesets() → resume any unfinished work first
get_roadmap() → current phase, next action
search_decisions("topic") → check what's already been decided
get_node("src/service.py") → read rules before touching a file
get_impact("src/service.py") → check blast radius会话结束(强制):
complete_changeset(id, decisions=[...])
update_node(file_path, changes)
update_next_action("what the next agent should do")
write_session_log(...)这个循环使每个会话都保持快速、专注且可恢复。
33 个 MCP 工具
图谱工具
工具 | 描述 |
| 任何文件的元数据、规则、连接、陈旧度 |
| BFS 影响范围 —— 哪些文件依赖于此文件(由真实的导入边驱动) |
| 按属性查询节点 |
| 在图谱中注册一个新文件 |
| 追加规则、连接、key_functions |
| 为未注册的文件自动生成存根 |
| 在 ChromaDB 中重新嵌入特定文件 |
| 将依赖图导出为 Mermaid 或 DOT 图表 |
| 显示 git 引用之间已更改的节点、稳定性标志和影响范围 |
路线图工具
工具 | 描述 |
| 当前阶段、下一步行动、打开的变更集 |
| 完整历史:所有阶段、决策、已推迟的 |
| 按编号获取任何阶段的完整详细信息 |
| 设置下一个代理应该做什么 |
| 标记阶段为 in_progress / blocked |
| 将新的即将到来的工作加入队列 |
| 标记完成,自动推进到下一个 |
| 将阶段移动到推迟列表 |
变更集工具
工具 | 描述 |
| 所有进行中的变更集 |
| 完整详情:已完成的文件、待处理的文件、阻塞者 |
| 打开一个多文件变更集 |
| 关闭并记录决策 |
| 会话中检查点 |
搜索工具
工具 | 描述 |
| 源代码的语义搜索 |
| 搜索所有过去的会话决策;可选择过滤到特定会话 |
| 所有触及过该文件的会话 |
| 写入结构化会话记录 |
自适应学习工具 (v1.4)
工具 | 描述 |
| 基于结果的可靠性评分 —— 过去的决策被保留与被撤销的频率 |
| 从编辑后的修正中学习到的开发者风格偏好 |
| 从观察到的模式中自动生成的规则(测试配对、导入热点、共同变更) |
| 结合会话、覆盖率、置信度、规则、偏好的 0–100 智能评分 |
| 用于跨工具连续性的单个“帮我回顾”调用 (Cursor ↔ Claude Code ↔ Antigravity) |
代码阅读工具
工具 | 描述 |
| 所有公共符号、签名、行号 |
| 一个函数或类的完整源代码 |
剧本工具
工具 | 描述 |
| 任务的精选规则: |
代理角色
agents/ 中的七种角色定义告诉每个代理具体做什么以及何时做:
代理 | 调用时机 | 关键职责 |
| 每个会话开始 | 分类任务,选择流水线 |
| 大型或模糊的任务 | 分解为有序步骤 |
| 所有代码更改 | 在图谱规则内编写代码 |
|
| 标记规则违规 |
| 每次代码更改后 | 运行测试套件 |
| 测试通过后 | Lint,类型检查 |
| 每个会话结束 | 更新图谱、路线图、日志 |
项目结构
.agents/
├── PROTOCOL.md # Session protocol — read this first
├── config.example.yaml # Config template
├── config.yaml # Your config (git-ignored)
├── roadmap.yaml # Phase tracker (auto-created, git-ignored)
├── mcp-server/
│ ├── server.py # MCP server entry point
│ └── tools/
│ ├── graph.py
│ ├── roadmap.py
│ ├── changesets.py
│ ├── search.py
│ ├── playbook.py
│ └── code_reader.py
├── indexer/
│ ├── index_codebase.py # Build/update ChromaDB index + background file watcher
│ ├── chunker.py # AST-based code chunker
│ ├── treesitter_parser.py # Multi-language AST parsing (16+ languages)
│ ├── sqlite_graph.py # SQLite graph database backend
│ └── graph_generator.py # Auto-generate graph stubs
├── requirements.txt # Python dependencies
├── agents/ # Role definitions
│ ├── orchestrator.md
│ ├── planner.md
│ ├── developer.md
│ ├── reviewer.md
│ ├── tester.md
│ ├── builder.md
│ └── documenter.md
├── rules/ # Engineering standards
│ ├── master_rule.md
│ ├── coding-standards.md
│ ├── testing-standards.md
│ └── ...13 more
├── graph/
│ ├── graph.db # SQLite Context Graph and Session Memory (git-ignored)
│ └── changesets/
├── hooks/
│ └── install-hooks.sh
└── codeindex/ # ChromaDB files (git-ignored)语言支持
功能 | Python | TypeScript | Go | Rust | 10+ 其他 (Java, C#, Ruby, PHP, C++) |
语义代码搜索 | ✅ | ✅ | ✅ | ✅ | ✅ |
上下文图谱 + 影响范围 | ✅ | ✅ | ✅ | ✅ | ✅ |
路线图 + 变更集 | ✅ | ✅ | ✅ | ✅ | ✅ |
会话日志 + 决策搜索 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | |
自动生成的图谱存根 | ✅ | ✅ | ✅ | ✅ | |
基于 AST 的分块 | ✅ | ✅ | ✅ | ✅ |
所有会话管理、图谱、路线图和搜索功能适用于任何语言。代码解析和提取(搜索、图谱生成、签名读取)由强大的 AST 和 Tree-Sitter 集成提供支持。
要求
Python 3.10+
ChromaDB
sentence-transformers
PyYAML
pip install -r .agents/requirements.txt背景
想了解构建此工具背后的完整故事、设计决策、哪些方法无效,以及它与生态系统中其他工具的比较吗?
阅读完整文章:我们如何将 AI 编码代理的 Token 使用量减少了 92%
贡献
欢迎贡献 —— 这是一个早期的开源项目,还有很大的发展空间。
阅读 CONTRIBUTING.md 获取完整指南:fork、分支命名、提交格式和 PR 流程。
好的切入点:
图谱可视化导出 (Dot/Mermaid)
常见任务类型的额外剧本条目
IDE 特定设置指南
Bug 报告和边缘情况修复
报告 Bug? → 打开一个 Bug 报告
请求功能? → 打开一个功能请求
发现安全问题? → 阅读 SECURITY.md —— 请不要在公共 Issue 中提交漏洞。
在提交大型 PR 之前,请先打开一个 Issue,以便我们先讨论方案。
常见问题解答
关于设置、使用、架构和故障排除的常见问题 —— 请参阅 FAQ.md。
路线图
查看已构建的内容、接下来的计划以及正在考虑的内容 —— 请参阅 ROADMAP.md。
想影响优先级?打开一个功能请求 或为现有的请求点赞。
行为准则
本项目遵循 Contributor Covenant 行为准则。 参与即表示你同意维护一个尊重和友好的环境。
许可证
MIT —— 可自由使用、修改和分发。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/sachinshelke/codevira'
If you have feedback or need assistance with the MCP directory API, please join our Discord server