Skip to content

feat(mcp): G6.2 stdio MCP 服務與真實 client 驗證 - #19

Merged
Windsander merged 1 commit into
mainfrom
feat/g6-mcp-stdio
Sep 14, 2026
Merged

Windsander merged 1 commit into
mainfrom
feat/g6-mcp-stdio

Conversation

@Windsander

Copy link
Copy Markdown
Owner

G6.2 stdio MCP(通用接入层)

mebular mcpstdio 暴露 Mebular 记忆能力,供任意 MCP client 接入;行为薄壳委托 MemoryService

变更

  • packages/mcp@mebular/mcp,bin mebular
    • bin/mebular.mjsmebular mcp@modelcontextprotocol/server/stdioserveStdio
    • src/tools.mjs:11 工具(memory_write/_write_batch/_query/_search/_profile/_skills/_history/_graph/_import/_status/_sync),入参钳制 limit≤50(默认 10)、depth≤5batch≤100;输出 content:[{type:'text'}] + structuredContent
    • src/server.mjs:注册 memory_policy prompt。
    • src/config.mjs.mebular/config.json + env(MEBULAR_HOME/CONFIG/STORAGE_PATH/DEVICE_ID/USER_MASTER_KEY(_FILE)/...);主密钥缺失则生成并持久化(0600)。
  • core 包化(D34/D41):根包改 @mebular/core(去 private、workspacesexports);@mebular/mcpfile:../.. 本地链接(本环境 npm 不支持 workspace: 且根包非 workspace 成员);发布期处理记 D41。
  • CIbuild-test-lint job 增「stdio MCP (real client)」步骤。

验证(E1)

  • npm run verify:mcp:stdio:真实 @modelcontextprotocol/client + StdioClientTransport 启动 mebular mcp,断言 tools/list=11、工具名与冻结面一致、逐个 tools/call(write/batch/query/search/profile/skills/history/graph/import/status/sync)、钳制(depth 超限被钳、batch>100 被拒)、memory_sync 网络未启用诚实失败、memory_policy prompt → 退出码 0
  • npm run build && npm run test:coverage && npm run lint 全绿(50 套件/377 用例);npm run verify 0–6 全过。

决策:D41(G6.2)。

- feat(mcp): 新增 packages/mcp(@mebular/mcp,bin mebular);`mebular mcp` 走 serveStdio
- feat(mcp): 11 工具 + memory_policy prompt,薄殼委託 MemoryService;入參鉗制 limit≤50/depth≤5/batch≤100
- feat(mcp): .mebular/config.json + env 配置載入;主密鑰缺失則生成並持久化(0600)
- chore(core): 根包改 @mebular/core(workspaces + exports);@mebular/mcp 以 file:../.. 本地鏈接(D41)
- test(mcp): scripts/verify-mcp-stdio.mjs(真實 @modelcontextprotocol/client + StdioClientTransport)
- ci: build-test-lint job 增 stdio MCP 驗證步驟

對應 goal-v0.1.md G6.2 與 project-status.md D41。
@Windsander
Windsander merged commit ac2e269 into main Sep 14, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant