🚀 光标伙伴MCP
Cursor Buddy MCP可以将你的AI助手转变为一个具有上下文感知能力的编码伙伴,使其理解项目的标准、规范和历史,为你的项目开发提供有力支持。
光标伙伴MCP
🤖 让AI智能体具备上下文感知能力并保持一致性
将你的AI助手转变为一个能够理解项目标准、规范和历史的上下文感知编码伙伴。
🚀 快速开始 • 📚 详细文档 • 🔧 可用工具 • 💡 使用示例
🎯 为什么选择光标伙伴MCP?
🧠 具备上下文感知能力的AI
你的AI助手能立即了解你的编码标准、架构模式和项目规范。
📚 集中化知识管理
所有项目文档和指南都集中在一个可搜索的位置。
✅ 进度跟踪
自动进行待办事项管理和实现历史跟踪。
|
🔄 实时更新
文件监控确保你的AI始终拥有最新信息。
🚀 零设置摩擦
即插即用的Docker容器,可立即集成MCP。
🔍 智能搜索
能在所有项目上下文中快速提供相关搜索结果。
|
📋 目录
- 🎯 为什么选择光标伙伴MCP?
- 🏗️ 架构
- 🚀 快速开始
- 🔧 可用工具
- 💡 使用示例
- 📚 详细文档
- 📋 规则文件
- 📖 知识文件
- ✅ 待办事项文件
- 🗄️ 数据库文件
- 💎 最佳实践
- 🔧 高级功能
- 🤝 贡献指南
🏗️ 架构
graph TB
A[AI Assistant] --> B[MCP Client]
B --> C[Cursor Buddy MCP Server]
C --> D[.buddy Directory]
D --> E[Rules]
D --> F[Knowledge]
D --> G[Todos]
D --> H[Database]
D --> I[History]
D --> J[Backups]
C --> K[Search Engine]
C --> L[File Monitor]
C --> M[Backup Manager]
style A fill:#e1f5fe
style C fill:#f3e5f5
style K fill:#e8f5e8
该项目基于模型上下文协议(MCP)构建,使用了来自mark3labs/mcp-go的Go SDK。通过JSON - RPC 2.0在标准输入/输出上进行通信,因此与Claude Desktop等MCP客户端兼容。
🎨 特性
属性 |
详情 |
🔧 工具 |
提供6个用于管理项目上下文的交互式工具 |
📊 资源 |
具备完整项目状态的项目上下文资源 |
🔄 标准输入输出传输 |
通过标准输入/输出进行通信 |
⚡ 实时更新 |
文件监控并自动重新加载内容 |
🔍 全文搜索 |
使用Bleve实现对所有内容的快速相关搜索 |
💾 自动备份 |
在修改重要文件前自动创建备份,支持回滚操作 |
🚀 快速开始
1️⃣ 从GitHub仓库拉取镜像
docker pull ghcr.io/omar-haris/cursor-buddy-mcp:latest
2️⃣ 配置光标
添加以下内容到 .cursor/mcp.json
:
⚠️ 重要提示
请将 /path/to/your/project/
替换为你实际的项目目录路径!
{
"mcpServers": {
"cursor-buddy-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/path/to/your/project/.buddy:/home/buddy/.buddy",
"-e", "BUDDY_PATH=/home/buddy/.buddy",
"ghcr.io/omar-haris/cursor-buddy-mcp:latest"
]
}
}
}
示例:
- Linux/macOS:
"/home/user/myproject/.buddy:/home/buddy/.buddy"
- Windows:
"C:/Users/User/myproject/.buddy:/home/buddy/.buddy"
- 当前目录:
"${PWD}/.buddy:/home/buddy/.buddy"
💡 如何查找项目路径:
pwd
3️⃣ 创建 .buddy
目录结构
导航到你的项目目录并运行:
mkdir -p .buddy/{rules,knowledge,todos,database,history,backups}
📁 这将创建以下目录结构:
your-project/
├── .buddy/
│ ├── rules/
│ ├── knowledge/
│ ├── todos/
│ ├── database/
│ ├── history/
│ └── backups/
4️⃣ 添加你的内容
按照下面的详细文档在 .buddy/
文件夹中创建文件。
🔧 可用工具
📋 buddy_get_rules
获取编码标准和指南
🔍 buddy_search_knowledge
搜索项目文档
- 可在所有知识中进行全文搜索
- 支持按类别和标签进行过滤
✅ buddy_manage_todos
列出/更新任务并跟踪进度
|
🗄️ buddy_get_database_info
获取数据库架构信息并验证查询
📚 buddy_history
跟踪实现变更和搜索历史
💾 buddy_backup
创建和管理文件备份
|
💡 使用示例
你可以向你的AI助手提出如下问题:
🎯 类别 |
💬 示例问题 |
📋 编码标准 |
"我们在错误处理方面的编码标准是什么?" |
✅ 项目进度 |
"给我展示认证功能当前的待办事项" |
📖 文档 |
"搜索关于用户端点的API文档" |
🗄️ 数据库 |
"用户表的数据库架构是什么样的?" |
📚 历史 |
"我们上个月是如何实现JWT认证的?" |
🔧 架构 |
"我应该为这个功能使用哪些设计模式?" |
📚 详细文档
📋 规则文件
位置: .buddy/rules/
用途: 定义编码标准、架构模式和指南
📝 格式要求
- ✅ 使用Markdown格式(
.md
)
- ✅ 包含元数据:
category
和 priority
- ✅ 采用清晰的章节和子章节进行组织
🔧 示例:编码标准
点击展开编码标准示例
# 编码标准
- category: coding
- priority: critical
## 概述
项目的核心编码标准和最佳实践。
## Go特定标准
- 遵循Go命名约定(驼峰命名法、帕斯卡命名法)
- 使用 `gofmt` 进行代码格式化
- 显式处理错误,不要忽略
- 使用接口进行抽象
## 错误处理
- 始终检查并处理错误
- 使用结构化错误类型
- 使用 `fmt.Errorf` 包装带有上下文的错误
- 返回有意义的错误消息
## 测试
- 为所有公共函数编写单元测试
- 使用表驱动测试处理多个测试用例
- 实现至少80%的代码覆盖率
🏗️ 示例:架构模式
点击展开架构模式示例
# 架构模式
- category: architecture
- priority: critical
## 设计原则
- **单一职责**:每个组件只有一个变更原因
- **依赖倒置**:依赖抽象,而不是具体实现
## 推荐模式
### 存储库模式
- 封装数据访问逻辑
- 为数据操作提供一致的接口
- 支持使用模拟实现进行轻松测试
### 分层架构
┌─────────────────────┐
│ Presentation │ ← HTTP handlers, CLI
├─────────────────────┤
│ Business Logic │ ← Domain models, use cases
├─────────────────────┤
│ Data Access │ ← Repositories, databases
└─────────────────────┘
📖 知识文件
位置: .buddy/knowledge/
用途: 存储项目文档、API规范和技术信息
📝 格式要求
- ✅ 使用Markdown格式(
.md
)
- ✅ 包含元数据:
category
和可选的 tags
- ✅ 采用清晰的标题和示例进行结构组织
🌐 示例:API文档
点击展开API文档示例
# API文档
- category: architecture
- tags: api, rest, authentication
## 认证端点
### POST /auth/login
**请求:**
```json
{
"email": "user@example.com",
"password": "secure_password"
}
响应:
{
"token": "jwt_token_here",
"user": {
"id": 123,
"email": "user@example.com",
"role": "user"
}
}
GET /auth/me
请求头: Authorization: Bearer <token>
响应:
{
"user": {
"id": 123,
"email": "user@example.com",
"role": "user"
}
}
错误处理
所有端点返回的错误格式如下:
{
"error": "error_code",
"message": "Human readable message"
}
</details>
---
### ✅ 待办事项文件
> **位置:** `.buddy/todos/`
> **用途:** 跟踪任务、功能和项目进度
#### 📝 格式要求
- ✅ 使用Markdown格式(`.md`)
- ✅ 使用复选框语法:`- [ ]`(未完成)或 `- [x]`(已完成)
- ✅ 将相关任务分组在清晰的标题下
- ✅ 为每个任务包含上下文和详细信息
#### 🔐 示例:功能开发
<details>
<summary>点击展开功能开发示例</summary>
```markdown
# 认证功能
## 后端实现
- [x] 设置JWT库
- [x] 创建用户模型和数据库迁移
- [x] 使用bcrypt实现密码哈希
- [ ] 创建登录端点
- [ ] 创建注册端点
- [ ] 添加受保护路由的中间件
- [ ] 为认证服务编写单元测试
- [ ] 为认证端点添加集成测试
## 前端实现
- [ ] 创建登录表单组件
- [ ] 创建注册表单组件
- [ ] 实现JWT令牌存储
- [ ] 添加认证上下文
- [ ] 创建受保护路由包装器
- [ ] 处理令牌刷新逻辑
## 安全与测试
- [ ] 为认证端点添加速率限制
- [ ] 实现失败尝试后账户锁定功能
- [ ] 添加密码强度验证
- [ ] 对认证实现进行安全审计
- [ ] 对认证端点进行负载测试
🗄️ 数据库文件
位置: .buddy/database/
用途: 存储SQL架构定义、迁移脚本和查询示例
📝 示例:架构定义
点击展开数据库架构示例
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
role VARCHAR(50) DEFAULT 'user',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE sessions (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
token_hash VARCHAR(255) UNIQUE NOT NULL,
expires_at TIMESTAMP NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_sessions_token_hash ON sessions(token_hash);
CREATE INDEX idx_sessions_expires_at ON sessions(expires_at);
💎 最佳实践
🎯 实践 |
📝 描述 |
🔍 具体明确 |
包含具体示例和代码片段 |
🔄 及时更新 |
定期审查和更新你的文件 |
📐 格式一致 |
在相似文件中遵循相同的结构 |
💡 提供上下文 |
解释规则或模式存在的原因 |
🔗 关联信息 |
引用相关文件或外部文档 |
📊 版本控制 |
将你的 .buddy 文件夹纳入版本控制 |
🔄 定期审查 |
定期审查你的知识库 |
🔧 高级功能
🔍 文件监控
服务器会自动监控你的 .buddy
目录中的更改,并实时重新加载内容。
🔎 搜索集成
使用Bleve全文搜索引擎,可在所有项目上下文中快速提供相关搜索结果。
💾 备份管理
在修改重要文件之前,会自动创建备份。
🏗️ 可扩展架构
使用Go语言构建,具有高性能,并且易于扩展新的工具和功能。
🤝 贡献指南
我们欢迎大家贡献代码!你可以通过以下方式提供帮助:
- 🐛 报告问题:发现了一个bug?提交一个问题
- 💡 提出功能建议:有新的想法?发起一个讨论
- 🔧 提交拉取请求:准备好编码了吗?分叉仓库、进行开发并提交拉取请求
- 📚 改进文档:帮助我们完善文档
🎉 准备好开始了吗?
现在,你的AI助手将深入了解你的代码库,并能提供一致、有依据的响应。
⬆️ 返回顶部
由开发者为开发者用心打造 ❤️