MPM-Coding

io.github.halflifezyf2680由 GitHub 帳號 halflifezyf2680 發布v1.15.1更新於 Oct 24, 2026

Local MCP server for reliable long-running AI coding workflows.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

本機 MCP 伺服器,為 AI 程式助理提供以 AST 為基礎的程式碼定位、影響分析與持久備忘,支援長時間編碼任務。

可以做什麼
定位符號與梳理專案:AST 等級的精確符號搜尋、目錄與符號清單、呼叫鏈追蹤,以及改動前查詢呼叫端與被呼叫端的影響範圍。依階段執行任務鏈,並用鉤子在條件滿足後接續被阻塞的工作。以持久備忘記錄改動原因,並跨工作階段檢索歷史修復與經驗事實。初始化並查看專案索引進度、下載缺少的語言語法包、切換 AI 人格。
適用情境
適合多檔案的中大型程式庫:需要助理精確定位定義、改程式碼前評估影響範圍,並在多次工作階段間保留決策記錄。小型專案或一次性修改用處不大。
執行需求
以本機 stdio 程序在使用者機器上執行,僅限桌面端;從發行包或 MCP 綑綁包安裝,並讓用戶端指向 mpm-go 執行檔。以 Go 1.21+ 與 SQLite 為基礎;30 多種語言的 tree-sitter 語法包按需下載,可能需要網路存取。資料保存在本機 .mpm-data 目錄。
安裝前請注意
助理會修改專案程式碼,並在初始化時把專案規則寫入根目錄的 AGENTS.md。它會在 .mpm-data 中建立本機索引與備忘儲存,該目錄不應提交到 git。語言語法包從外部來源下載。接受改動前請先審閱。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 MPM-Coding,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

MPM-Coding

让 AI 编程从"能演示"变成"能交付"

中文 | English

[License] [Go] [MCP] [Platform] [Languages]


问题

AI 写代码的快乐,很容易被真实项目剥夺:

"那个函数在哪来着?"               → 猜文件路径"我觉得这样改应该没问题"            → 不做影响分析12 步的任务跑到第 7 步挂了         → 没有检查点,无法续传"上周为什么改这个?"               → 谁都说不清

MPM 不负责让模型变聪明。MPM 负责把活干完。

📄 想看工程深度? 阅读 技术白皮书 —— AST 引擎、5 层搜索降级、BFS + Dice Random Walk 影响分析、贝叶斯置信度演化……13 章拆解每一个核心设计。


安装

从 Release 安装

从 Releases 下载:

平台文件
Windows x64mpm-windows-amd64.zip
Linux x64mpm-linux-amd64.tar.gz
macOS Universalmpm-darwin-universal.tar.gz

解压。让 MCP 客户端指向 mpm-go。完事。

从 MCP Registry 安装

已在 MCP Registry 发布:io.github.halflifezyf2680/mpm-coding

从源码编译

bash
git clone https://github.com/halflifezyf2680/MPM-Coding.gitcd MPM-Codingpowershell -ExecutionPolicy Bypass -File scripts\build-windows.ps1  # 或 ./scripts/build-unix.sh

快速开始

让 MCP 客户端指向 mcp-server-go/bin/mpm-go(.exe),然后:

text
1) initialize_project2) 没有了——MPM 协议会自动注入项目根 AGENTS.md 顶部,客户端自动加载3) 直接提需求——AI 会自动按协议执行

就这样。工具编排交给 AI,决策权在你手上。

使用示例

把这段直接贴进 MCP 客户端:

text
任务:修复 UserService.getProfile 的空指针崩溃。要求:1. 用 code_search 定位函数2. 用 code_impact 检查谁在调用它3. 修复 Bug4. 用 memo 记录为什么这样改

AI 会自动执行:initialize_project → code_search → code_impact → 改代码 → memo。


原理

  定位            分析            执行            记录┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐│          │   │          │   │          │   │          ││  code_   │──▶│  code_   │──▶│  task_   │──▶│   memo   ││  search  │   │  impact  │   │  chain   │   │          ││          │   │          │   │          │   │          │└──────────┘   └──────────┘   └──────────┘   └──────────┘  AST 精确        调用链         分阶段          SSOT  符号定位        风险评估        门控验收        变更日志

每次修改必须走:找定位 → 查影响 → 改代码 → 记原因。 不猜。不盲改。不留死角。

为什么用 AST 索引而不是 LSP

AI 编程的核心瓶颈不是模型能力,是上下文窗口里的垃圾太多。

一个 5000 文件的项目,AI 如果靠读文件来理解代码,它要么全读(token 爆炸),要么猜着读(遗漏关键依赖)。两种都是灾难。LSP 解决的是 IDE 的人机交互问题——补全、跳转、重命名。这些东西 AI 客户端自己就能做。

MPM 解决的是另一个问题:如何用最少的 token 让 AI 精确理解代码结构。

code_search 返回的是符号定义的精确位置,不是一堆 grep 结果。code_impact 返回的是调用链全景,不是让 AI 一个文件一个文件地猜谁调了它。flow_trace 返回的是业务逻辑主链路,不是目录列表。这些工具的 output 本身就构成了对上下文的清洗——只注入确定性的结构信息,把噪声过滤掉。

这就是注意力收敛:AI 不再需要在大片代码中盲目搜索,工具的输出已经把它的注意力聚焦到必须关注的那几个符号和关系上。真正有价值的不是底层用了什么解析器,而是这些结果被注入上下文后产生的作用。


工具箱

导航

工具干什么
code_search精确定位符号。不是 grep,是 AST 级精确查找。
project_map一眼看到目录结构和符号清单。
flow_trace追踪函数调用链——改代码之前先看懂主链路。

安全

工具干什么
code_impact"谁调用了它?" 或 "它调用了谁?"——动手前先看爆炸半径。

执行

工具干什么
system_hook被阻塞?挂个钩子,条件满足后再继续。

记忆

工具干什么
memo记录"为什么改"。跨会话持久保留。
system_recall"之前是不是修过类似的?"——搜索历史与经验事实表(fact 优先展示,写入下一轮即生效)。

系统

工具干什么
initialize_project初始化 AST 索引 + 生成项目规则。一次性操作。
index_status查看后台索引进度。
ensure_languages下载缺失的 tree-sitter grammar。通常自动执行。
persona切换 AI 人格,适配不同场景。

文档

文档说明
docs/WHITEPAPER.md技术白皮书——AST 引擎、搜索策略、置信度演化、影响分析算法,看 MPM 的工程深度
docs/MANUAL.md完整手册——全部工具、参数、案例
QUICKSTART.md5 分钟上手指南
docs/WHITEPAPER_EN.mdEnglish whitepaper
docs/MANUAL_EN.mdEnglish manual
README_EN.mdEnglish overview

架构

查看交互式架构图

mcp-server-go/├── cmd/server/main.go              # 入口 (StdIO MCP Server)├── internal/│   ├── tools/    (14 files)        # MCP 工具实现│   ├── core/     (6 files)         # 数据层 — SQLite + MemoryLayer (SSOT)│   └── services/                    # AST 索引器 (Tree-sitter, 多语言)└── configs/                         # 默认配置
  • Go 1.21+ — 零 CGO,纯 modernc.org/sqlite
  • Tree-sitter — Rust AST 索引器,30+ 语言按需下载
  • SQLite — 嵌入式存储,数据在 .mpm-data/(不提交到 git)

常见问题

问题用什么
怎么找函数/类?code_search
改代码前怎么查影响范围?code_impact
怎么看懂一个模块的调用链?flow_trace
大仓库索引进度怎么看?index_status
怎么强制全量索引?initialize_project(force_full_index=true)

完整手册:docs/MANUAL.md


许可证

MIT

本项目使用 tree-sitter(MIT License)进行 AST 解析。

來源:README.md,提交 7f8a001

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.15.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分