T2 token 管理(src/api/mcp_tokens.rs):create/list/reveal/revoke + get_mcp_client_configs
服务端函数,均经 get_current_admin_user 鉴权;TokenLifetime 枚举(1/7/30/90天/永不过期)。
src/mcp/config.rs 生成 4 种客户端配置(Claude Code/Cursor/Cline/通用 + CLI)。
src/pages/admin/mcp.rs 令牌管理页:列表 + 新建表单 + 一次性明文展示/重查 + 撤销 +
配置片段卡片。路由 /admin/mcp,导航项加入 admin_layout。
T3 read 工具 + Resources(tools/read.rs, resources.rs):search_posts/get_post/list_tags
(read 作用域,仅已发布);published-post Resources(post://{slug},游标分页)。
search_published 提取为共享函数。
T4 write 工具(tools/{posts,comments,tags,media}.rs):create/update/publish/trash/delete_post、
评论审核、标签 CRUD、媒体 base64 上传(WebP 转码 + 去重)。复用既有 helper 的 SQL 与
缓存失效(moka + ssr_cache)。write 作用域,可读草稿。
T5 admin 工具(tools/{settings,runner}.rs):get/update_settings、run_code(沙箱执行)。
admin 作用域。
合并(server.rs):用 rmcp tool_router 的「命名路由 + 组合」模式,7 个工具组在
YggMcpServer 上 impl,combined_router 用 + 合并成单一 ServerHandler。各工具组鉴权
独立,经 Extension<Parts> 读 McpPrincipal + scope.grants 校验。
新增依赖 base64 0.22(媒体上传解码)。验证:server/web 双目标编译通过、clippy
--all-features -D warnings 干净、659 单测 + 1 集成全绿(+20 新测试)。
33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
# MCP Server — Ticket Index
|
|
|
|
Spec: `docs/mcp-spec.md` · Research: `docs/mcp-research.md` · Tickets: `issues/`
|
|
|
|
## Dependency DAG
|
|
|
|
```
|
|
T1 tracer bullet (mount+auth+crypto+1 read tool)
|
|
├─► T2 token mgmt server fns + admin UI ─┐
|
|
├─► T3 read tools + Resources ────┐ │
|
|
├─► T4 write tools ───────────────┤ │
|
|
└─► T5 admin tools ───────────────┤ │
|
|
▼ │
|
|
T6 hardening ◄──┤
|
|
│ │
|
|
▼ ▼
|
|
T7 verification + docs
|
|
```
|
|
|
|
## Execution order
|
|
|
|
| # | Ticket | Depends on | Notes |
|
|
|---|--------|-----------|-------|
|
|
| T1 | Tracer bullet — end-to-end skeleton (read path) | — | **Do first.** Proves rmcp/Axum mount + both build targets. Halt if rmcp≠axum 0.8. |
|
|
| T2 | Token management server fns + admin UI | T1 | Config generation for 4 clients lives here. |
|
|
| T3 | read-scope tools + Resources (knowledge base) | T1 | Can run parallel to T4/T5. |
|
|
| T4 | write-scope tools (posts/comments/tags/media) | T1 | Reuse existing helpers; same cache invalidation. |
|
|
| T5 | admin-scope tools (settings, code runner) | T1 | runner admin-only. |
|
|
| T6 | Hardening (rate limit, sanitization, audit) | T3, T4, T5 | Token-keyed governor; injection sanitization. |
|
|
| T7 | Integration verification + docs | T2, T6 | Real-client smoke test; CHANGELOG/env/AGENTS. |
|
|
|
|
T2/T3/T4/T5 are independent after T1 — fan out. T6 waits on the tool tickets; T7 is terminal.
|