🚀 光標夥伴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助手將深入瞭解你的代碼庫,並能提供一致、有依據的響應。
⬆️ 返回頂部
由開發者為開發者用心打造 ❤️