askit-build-mcp
Purpose
Author the plugin's MCP servers as one portable .mcp.json at the plugin root (the standard { "mcpServers": { ... } } format) and wire the per-target mcpServers manifest pointer. Two modes: create adds a server; improve fixes findings. MCP is Universal-tier: the server definition is portable and both Claude and Codex ingest a bundled .mcp.json referenced by the native manifest's mcpServers pointer (Standard sec 3.9). Authoring depth is in references/authoring-mcp.md. Follows the shared builder contract (../../docs/reference/builder-pattern.md).
When to use
When the user asks to add, scaffold, author, or improve an MCP server (tools, resources, or prompts via the Model Context Protocol) for a plugin.
create mode
- Brief interview: server name (kebab-case), transport (
stdioorhttp), thecommandplusargs(stdio) or theurl(http), and any secrets as an env-var NAME (never an inline value). Skip the interview if these are already in context. - Author or extend the root
.mcp.json: add the server undermcpServers. Copytemplates/mcp.jsonif the file does not exist yet. - Register the server in
library.jsoncomponents.mcpServersas{ name, version, tier, status }. - Wire the per-target pointer: run
node scripts/generators/gen-manifest.mjs <plugin-root> --write --target=all. Each native manifest gains"mcpServers": "./.mcp.json". - Assess with
node scripts/evaluate.mjs . --jsonand iterate to 0 errors (mcp-valid, the S3 components index, and the S6 per-target pointer).
improve mode
- Run
node scripts/evaluate.mjs . --jsonand read the report. - For each finding: a malformed server (mcp-valid) -> add the missing
commandorurl; a committed secret (mcp-valid) -> replace the inline value with an env-var reference orbearer_token_env_var; a missing pointer (S6) -> regenerate the manifests; an undeclared server (S3) -> add it tocomponents.mcpServers. For any other finding, read its message and apply the fix it states. - Re-run evaluate to confirm.
Scope
The root .mcp.json is the single authored source; the manifest pointers are generated, so never hand-edit a generated manifest. Secrets MUST be referenced from the environment, never committed (Standard sec 9). MCP is the one plugin-distributable component both agents ingest, and emission is just the manifest-pointer wiring (no per-type render engine, per the builder pattern).