Skip to main content
Glama

Mnemosyne MCP

by MumuTW
mvp_sprint.md14.6 kB
# Mnemosyne MCP - MVP Sprint 計劃 v2.0 **文件版本**: 2.0 (戰術性微調) **狀態**: 最終版 (Final) **更新日期**: 2025年7月15日 **架構師**: AI Assistant & Project Lead ## 總體策略:從「戰略性大改」到「戰術性微調」 原有的 Sprint 2 和 3 的目標是完全正確的,但我們根據 Sprint 1 的成果,對其核心任務的順序和粒度進行優化,使其更平滑、風險更低。 ### 為什麼這個順序更好? 1. **風險隔離**: 將「向量搜索」和「圖遍歷」的實現拆分到兩個 Sprint,可以讓我們獨立地驗證和除錯每一部分,降低了 Sprint 2 的技術風險。 2. **價值更平滑**: Sprint 2 結束時,我們就有了一個可用的「智能搜索」功能。Sprint 3 結束時,這個功能會變得「更智能」。這比在一個 Sprint 裡交付一個大而全的功能,反饋迴圈更短,價值曲線更平滑。 3. **故事線更清晰**: 這個順序構成了一個完美的產品故事:「我們先讓機器能看懂你的程式碼(S1),然後讓它能聽懂你的話(S2),接著讓它能理解程式碼的脈絡(S3),最後我們教它遵守規則(S4)。」 ## 優化後的 Sprint 計劃概覽 | Sprint | 核心主題 | 關鍵交付物 | |--------|---------|-----------| | Sprint 0 | 基礎設施 | 可運行的空殼服務 | | Sprint 1 | 數據管線與視覺化 | 程式碼 → 可視化圖譜 | | Sprint 2 | AI 核心:語義理解 | 純向量搜索 API (Search v1) | | Sprint 3 | 智能核心:上下文融合 | 混合檢索 API (Search v2) + 影響力分析 API | | Sprint 4 | 治理核心:安全護欄 | 約束與鎖定 API + CI/CD 檢查 CLI | --- ## Sprint 0: 基礎設施搭建 ✅ **[已完成]** ### 目標 建立一個可工作的、可擴展的基礎設施,為後續的功能開發提供堅實的基礎。 ### 核心任務 - ✅ **Docker Compose 環境**: 實現 MCP 服務 + FalkorDB 的一鍵啟動 - ✅ **gRPC-First 架構**: 完成 gRPC 服務骨架和 REST Gateway - ✅ **抽象層設計**: 完成 `GraphStoreClient` 抽象介面 - ✅ **FalkorDB 驅動**: 實現基本的圖資料庫操作 - ✅ **健康檢查**: 提供 `/health` 端點確保服務狀態可監控 - ✅ **CLI 工具**: 基礎的 `mnemo` 命令行工具 - ✅ **開發工具鏈**: 完整的 lint, test, format 工具鏈 ### 關鍵創新點 - **Seed 腳本**: 讓新用戶能立即在 Browser 中看到東西,極大提升了第一印象 - **Cypher Trace log**: 這是為未來的可觀測性埋下的重要伏筆 ### 交付成果 一個可運行的、架構清晰的 MCP 服務,具備了進行功能開發的所有基礎設施。 --- ## Sprint 1: ECL 管線與知識圖譜 ✅ **[已完成]** ### 目標 實現 ECL (Extract → Cognify → Load) 管線,將程式碼轉換為可視化的知識圖譜。 ### 核心任務 - ✅ **Extract 階段**: 實現 Git 和檔案系統的程式碼提取 - ✅ **Cognify 階段**: 實現 Python AST 解析器,提取函數和呼叫關係 - ✅ **Load 階段**: 將解析結果存入 FalkorDB 圖資料庫 - ✅ **RPC 整合**: 提供 `ProcessRepository` gRPC 接口 - ✅ **視覺化**: 確保生成的圖譜可在 FalkorDB Browser 中查看 ### 關鍵創新點 - **最小範例 repo**: 讓 ECL 管線的測試變得可重複、自動化 - **Pydantic V2 遷移**: 確保數據模型的類型安全和驗證 ### 交付成果 一個完整的 ECL 管線,能夠將 Python 專案轉換為可視化的知識圖譜。 --- ## Sprint 2: AI 核心:語義理解 🔄 **[優化版]** ### 目標 實現第一個「由 LLM 驅動的、有用的」功能:純向量搜索 API。 ### 核心任務 (重新排序) #### 2.1 LLM 能力中心與 openai-starter 預設 - **任務**: 實現我們最終確定的 LLMProvider 插件架構和 OpenAIProvider - **技術實現**: 將 generation, embedding, reasoning 三個能力硬編碼綁定到: - `generation` → gpt-4.1-mini - `embedding` → text-embedding-3-small - `reasoning` → gpt-4.1-nano - **理由**: 這是所有 AI 功能的基礎設施,必須先行 #### 2.2 實現 Search API (第一階段:純向量搜索) - **任務**: 擴展 ECL 的 Load 階段,使其能夠呼叫 embedding 能力(3-small)為 Function 或 File 的註釋生成向量,並存入 FalkorDB 的向量索引 - **API 實現**: 實現 Search API,使其能夠接收自然語言,並只返回 Top-K 個語義最相似的節點 - **理由**: 我們需要先驗證「文本到圖節點」的語義映射這條路是通的。暫時不要加入圖遍歷,以隔離變量 #### 2.3 手動驗證與 Demo - **驗證場景**: 開發者手動呼叫 Search API,輸入「如何處理用戶認證」,看看它是否能準確地返回與 validateCredentials 相關的函數或文件節點 - **Demo 價值**: 向外界展示「Mnemosyne MCP 能夠聽懂自然語言,並在您的程式碼庫中找到相關的概念」 ### 交付成果 (優化後) 一個具備核心語義理解能力的 MCP。它還不能進行複雜的推理,但已經能作為一個「智能程式碼搜索引擎」來使用。 --- ## Sprint 3: 智能核心:上下文融合 🔄 **[優化版]** ### 目標 將「語義」與「結構」融合,提供真正的圖譜洞察。 ### 核心任務 #### 3.1 實現 Search API (第二階段:混合檢索) - **任務**: 擴展 Search API 的邏輯。在得到向量搜索的 Top-K 個種子節點後,再執行 1-hop Traversal,將種子節點的一度鄰居也加入到上下文中,返回一個更豐富的子圖 - **範圍控制**: 將 Search API 的第一版範圍縮小到 1-hop Traversal,是規避性能風險、快速驗證核心邏輯的明智之舉 - **理由**: 這是我們產品相較於普通向量數據庫的核心差異化,必須盡快實現 #### 3.2 實現第一個「自省式」工具 (RunImpactAnalysis) - **任務**: 實現這個 API。它的邏輯相對獨立,可以在混合檢索的基礎上並行開發 - **價值**: 這將是我們第一個純圖譜推理的功能 #### 3.3 手動驗證與 Demo - **Demo 1 (Search)**: 再次查詢「如何處理用戶認證」,這次返回的結果不僅有相關的函數,還有呼叫它的 API 端點、它所在的類等結構化上下文 - **Demo 2 (Impact)**: 展示修改一個核心函數後,可以立即看到受影響的其他函數列表 ### 交付成果 (優化後) 一個真正智能的 MCP。它不僅能「找到」信息,更能「理解」信息之間的關聯。產品的核心價值在此完全體現。 --- ## Sprint 4: 治理核心:安全護欄 🔄 **[原 Sprint 3]** ### 目標 為智能引擎安裝「安全系統」,引入約束與 CI/CD 整合。 ### 核心任務 #### 4.1 約束模型實現 - **數據模型**: 實現 Constraint, Lock 等約束相關的 Pydantic 模型 - **圖譜整合**: 將約束模型整合到 FalkorDB Schema 中 #### 4.2 事務性鎖定 API - **API 實現**: 實現 AcquireLock, ReleaseLock RPC - **併發控制**: 確保多代理操作的原子性 #### 4.3 CI/CD 整合工具 - **CLI 命令**: 開發 `mnemo pr-check` CLI 命令,並在內部呼叫 RunImpactAnalysis 和新的 CheckConstraints 邏輯 - **ChangeSet Diff 工具**: 讓 pr-check 的結果不僅僅是通過/失敗,而是能提供可讀的「變更摘要」,價值巨大 - **GitHub Action**: 提供官方 GitHub Action 範例 ### 交付成果 一個可靠、可信、可被整合的 MCP,具備了進入更嚴肅生產場景的基礎。 --- ## 集成測試與驗收門檻 ### 更新後的路線圖:將集成測試作為每個階段的「驗收門」 | Sprint | 核心開發主題 | 集成與驗證目標 | |--------|-------------|---------------| | Sprint 0 & 1 | 基礎設施 + ECL 閉環 | 內部驗證: 開發者能在 Browser 中看到正確的圖譜 | | Sprint 2 | AI 核心:語義理解 | AI 代理集成: 驗證一個簡單的 RAG 腳本能通過 gRPC 呼叫 Search API 並提升回答質量 | | Sprint 3 | 智能核心:上下文融合 | 開發工具集成: 驗證 Search v2 和 ImpactAnalysis 的結果能有效地增強 Cursor 或 Copilot Chat 的上下文 | | Sprint 4 | 治理核心:安全護欄 | 協議與 CI/CD 集成: 驗證 stdio/SSE 模式工作正常,並完成一次 GitHub Action 的端到端攔截測試 | ### Sprint 2 之後:第一次「AI 代理」集成驗證 **時機**: 在我們完成了 Sprint 2,交付了核心的 Search API (v1, 純向量搜索) 之後。 **目標**: 驗證一個最簡單的 AI 代理(例如,一個基於 LangChain 或 LlamaIndex 的腳本)是否能成功地呼叫我們的 MCP API,並利用返回的上下文來提升其回答質量。 **測試內容**: #### gRPC 客戶端可用性測試 - 使用我們從 .proto 文件自動生成的 Python gRPC stub,編寫一個簡單的客戶端腳本 - 驗證這個腳本能否成功連接到本地運行的 MCP 服務,並呼叫 Search RPC #### 基本 RAG 流程驗證 - 創建一個簡單的 RAG Chain。其 Retriever 部分不再是直接讀取本地文件,而是呼叫我們的 Search API - 向這個 RAG Chain 提出一個關於範例程式碼庫的問題(例如,「哪個函數負責處理數據庫連接?」) - **驗收標準**: 觀察 LLM 的最終回答,是否明確地利用了 Search API 返回的、比普通文件搜索更精準的上下文(例如,它直接引用了 db_connector.py 中的 connect_to_database 函數) **階段價值**: 第一次驗證了我們的核心價值主張——即 MCP 提供的上下文確實能「改變 AI 代理的行為」。 ### Sprint 3 之後:與「真實世界」開發工具的初步集成 **時機**: 在我們完成了 Sprint 3,交付了混合檢索 (Search v2) 和影響力分析 (RunImpactAnalysis) 這兩個強大功能之後。 **目標**: 驗證 MCP 是否能與開發者日常使用的工具(如 Cursor 這類 AI-First IDE)進行初步集成,並提供有意義的幫助。 **測試內容**: #### Cursor 自定義命令 (Custom Commands) - Cursor 允許用戶定義自定義的 @ 命令。我們可以創建一個 @mcp 命令 - 當用戶在 Cursor 中輸入 `@mcp 哪個函數修改了用戶密碼?` 時,這個自定義命令會觸發一個後台腳本,該腳本呼叫我們 MCP 的 Search API - **驗收標準**: MCP 的響應結果,能夠作為豐富的上下文,被插入到 Cursor 的聊天窗口中,幫助 AI 更準確地定位和回答問題 #### Augment Code / Copilot Chat 的上下文增強 - 許多現代 AI 編程助手都允許用戶手動粘貼上下文。我們可以進行一個手動測試: - **對比實驗 A**: 直接向 Copilot Chat 提問:「重構 UserService 的風險是什麼?」 - **對比實驗 B**: 先呼叫我們 MCP 的 RunImpactAnalysis API,獲取關於 UserService 的詳細影響力報告,然後將這份報告和我們的問題一起粘貼給 Copilot Chat - **驗收標準**: 明顯觀察到,在實驗 B 中,Copilot Chat 的回答更具體、更準確,並且引用了我們提供的影響力報告中的內容 **階段價值**: 驗證了 MCP 作為一個「人類開發者輔助工具」的潛力,而不僅僅是服務於全自動的 AI 代理。 ### Sprint 4 之後 (或並行進行):協議層與 CI/CD 的深度集成 **時機**: 在我們完成了 Sprint 4,交付了約束與鎖定功能之後。 **目標**: 確保我們的 MCP 能夠穩定、可靠地作為一個自動化守護進程,在 CI/CD 和其他需要標準化 I/O 的環境中運行。 **測試內容**: #### stdio (標準輸入/輸出) 連接模式測試 - 這是許多語言伺服器(Language Server)和守護進程的標準通信方式 - 我們需要為 Mnemosyne MCP 開發一個新的啟動模式。除了 run-server,還應該有一個 run-stdio 模式 - 在 run-stdio 模式下,MCP 不再監聽網絡端口,而是從其 stdin 讀取 JSON-RPC 2.0 請求,並將響應寫入其 stdout - **驗收標準**: 編寫一個測試腳本,通過管道將請求發送給 MCP 進程,並能成功接收和解析其響應 #### SSE (Server-Sent Events) 測試 - 對於我們的 REST Gateway,我們需要為那些耗時較長的任務(如 Ingest)提供一個 SSE 端點,用於流式傳輸進度更新 - **驗收標準**: 在瀏覽器或使用 curl 呼叫這個 SSE 端點時,能夠持續地接收到服務器推送的進度消息 #### GitHub Action 的端到端測試 - 創建一個真實的、私有的 GitHub 倉庫 - 將我們在 Sprint 4 中開發的 GitHub Action 範例,實際地部署到這個倉庫的 CI/CD 工作流中 - 創建一個違反了我們預設約束的 PR - **驗收標準**: CI 檢查必須失敗,並且 PR 頁面上必須成功出現由 MCP Bot 自動發表的、帶有詳細警告的評論 **階段價值**: 確保了 Mnemosyne MCP 具備了工業級的、可靠的自動化集成能力。 --- ## 技術風險管理 ### Sprint 2 風險控制 - **向量索引性能**: 透過批量處理和增量更新降低性能風險 - **OpenAI API 限制**: 實現請求頻率控制和優雅降級 - **記憶體使用**: 監控 embedding 生成過程的記憶體消耗 ### Sprint 3 風險控制 - **圖遍歷性能**: 限制在 1-hop 範圍內,避免圖爆炸 - **混合檢索複雜度**: 先實現簡單的加權合併,後續再優化 - **影響力分析準確性**: 建立測試用例確保分析結果的正確性 ### Sprint 4 風險控制 - **併發鎖定死鎖**: 實現超時機制和死鎖檢測 - **CI/CD 整合穩定性**: 提供離線模式和錯誤恢復機制 - **約束驗證性能**: 確保約束檢查不會顯著影響開發工作流 --- ## 成功標準與驗收條件 ### Sprint 2 成功標準 - [ ] OpenAI API 整合完成,三個能力可正常呼叫 - [ ] 向量索引建立成功,可儲存和檢索 embeddings - [ ] Search API 能夠返回語義相關的程式碼節點 - [ ] 端到端 Demo 展示自然語言搜索功能 ### Sprint 3 成功標準 - [ ] 混合檢索 API 完成,能夠結合向量搜索和圖遍歷 - [ ] RunImpactAnalysis API 完成,能夠分析程式碼變更影響 - [ ] 1-hop 圖遍歷性能滿足要求 (< 500ms) - [ ] 兩個核心 Demo 展示圖譜洞察能力 ### Sprint 4 成功標準 - [ ] 約束模型和鎖定 API 完成並通過測試 - [ ] `mnemo pr-check` CLI 工具完成並可產生變更摘要 - [ ] GitHub Action 範例完成並驗證可用 - [ ] 完整的 CI/CD 整合流程驗證通過 --- ## 版本歷史 - **v1.0**: 初始版本,定義基本 Sprint 結構 - **v2.0**: 戰術性微調版本,優化 Sprint 2-4 的任務順序和粒度,提升開發效率和風險控制,增加集成測試與驗收門檻

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/MumuTW/Mnemosyne-mcp'

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