- Replace ~/.local/projects-meta-mcp → ~/projects/.common/lib/projects-meta-mcp - Update setup-projects-meta and using-projects-meta skills - Rebuild dist/ with new paths Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
setup-projects-meta
One-time skill that brings up the local projects-meta-mcp stdio server on a
new (or freshly broken) machine. Clones the server repo, builds it, writes
~/.config/projects-mcp/auth.toml with the user's Gitea token, clones the
shared wiki to ~/projects/.wiki, and registers mcpServers.projects-meta
in ~/.claude.json.
The runtime policy for using the resulting tools lives in
using-projects-meta — setup-projects-meta is the
only place that touches user-level config or installs the server.
projects-meta-mcp reference (full):
mcp__projects-meta__knowledge_get slug=packages/projects-meta-mcp
When it triggers
- User says: "install projects-meta", "set up projects-meta", "configure projects-meta", "настрой projects-meta", "установи projects-meta", "projects-meta не работает", "projects-meta isn't working".
using-projects-metadetects missingmcp__projects-meta__*tools and delegates here via its Prerequisites section.- A new machine in the multi-machine fleet — install once per machine.
What it installs
| Path | Role |
|---|---|
~/projects/.common/lib/projects-meta-mcp/ |
server repo (cloned from Gitea) |
~/projects/.common/lib/projects-meta-mcp/dist/server.js |
built stdio entry point |
~/.config/projects-mcp/auth.toml |
Gitea credentials (token-bearing) |
~/.cache/projects-mcp/tasks.json |
aggregated tasks cache |
~/projects/.wiki/ |
shared wiki clone (Gitea repo projects-wiki, content in root) |
~/.claude.json (mcpServers.projects-meta) |
MCP registration |
Hard rules
- Never auto-mutate. Phase 1 (discovery) and Phase 2 (plan) always pause for explicit confirmation. A trigger phrase grants permission to inspect, not to clone or write secrets.
- Never echo the Gitea token in chat. Edit / Write tool calls inevitably
contain it (that's how it lands in
auth.toml); chat output must not. - Never clone over an unrelated
~/projects/.wiki/. If it exists with a non-matchingorigin, stop and ask — the user may have an unrelated wiki there. - Always
chmod 600auth.tomlon Linux / macOS. Token leak otherwise.
Procedure (high-level)
- Phase 0 — environment sanity (Node ≥ 18, git, npm, network to Gitea).
- Phase 1 — discovery (token / repo / wiki clone / MCP registration / cache).
- Phase 2 — plan + confirm. Wait for explicit "ok"/"go"/"поехали".
- Phase 3 — backup (
~/.claude.json, existingauth.toml). - Phase 4 — clone / pull repo +
npm install && npm run build; clone shared wiki if absent. - Phase 5 — write
~/.config/projects-mcp/auth.tomlwithgitea_token. - Phase 6 — register
mcpServers.projects-metain~/.claude.jsonwith absolute path todist/server.js. - Phase 7 — smoke test (
mcp__projects-meta__meta_status) +node dist/sync.jsto populate the cache. - Phase 8 — restart guidance + final report.
Full procedure with shell snippets and templates lives in SKILL.md.
Rollback
- Stop. Don't fix forward.
cp <file>.bak-<ts> <file>for~/.claude.jsonand~/.config/projects-mcp/auth.toml.- Optional:
rm -rf ~/projects/.common/lib/projects-meta-mcpandrm -rf ~/.cache/projects-mcp. Keep~/projects/.wiki/— it's a useful clone regardless of MCP state. - Restart Claude Code.
- Confirm
mcp__projects-meta__*tools are gone (or back to the prior version).
Install
From the repo root:
bash scripts/install.sh setup-projects-meta
Works on Windows under git-bash, Linux, macOS.
See also
using-projects-meta— runtime policy for cross-project task aggregation and shared-wiki query / ingest.setup-context7— companion pattern for the context7 MCP plugin (similar 8-phase shape).setup-wiki,setup-tasks— per-project setup skills (in-repo.wiki/and.tasks/); orthogonal to this skill, which sets up the cross-project layer.