Mcp add
Install an MCP server template from dotforge into a project or global Claude Code config with a single command.From its SKILL.md
npx -y skills add luiseiman/dotforge --skill mcp-addAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
MCP Add
Install a dotforge MCP server template into the current project's or global Claude Code configuration.
Input parsing
From $ARGUMENTS (format: mcp add <server> [--global]):
- Extract
<server>: the word aftermcp add— one ofgithub,postgres,supabase,redis,slack - Detect
--globalflag: if present, target~/.claude/settings.json; otherwise target.claude/settings.json
Step 0: Validate
-
Verify the server template exists:
$DOTFORGE_DIR/mcp/<server>/- If directory not found:
Stop.✗ Unknown server '{{server}}'. Available: github, postgres, supabase, redis, slack Usage: /forge mcp add <server> [--global]
- If directory not found:
-
Determine target settings path:
--global→~/.claude/settings.json- default →
.claude/settings.json - If target doesn't exist and not
--global: warn "No settings.json found. Run/forge bootstrapfirst, or use--globalto install globally." Stop. - If target doesn't exist and
--global: create~/.claude/settings.jsonwith{"permissions": {"allow": [], "deny": []}, "mcpServers": {}}.
Step 1: Load template files
Read all three template files:
$DOTFORGE_DIR/mcp/<server>/config.json$DOTFORGE_DIR/mcp/<server>/permissions.json$DOTFORGE_DIR/mcp/<server>/rules.md
From config.json:
- Server key: the non-metadata top-level key (e.g.,
"github","postgres") - Server config block: the value of that key (the object with
type,command,args,env) - Install note: the
_installstring — contains required env vars and instructions - Ignore all keys starting with
_(metadata)
From permissions.json:
- allow: the
allowarray value (or[]if absent) - deny: the
denyarray value (or[]if absent) - Ignore all keys starting with
_
Step 2: Check for existing configuration
Read the target settings.json.
Check if the server is already configured:
- Present if
mcpServers.<server>key exists in settings, OR - Present if any of the server's allow entries appear in
permissions.allow
If already configured:
⚠ {{server}} MCP is already configured in {{target}}.
Options:
[u] Update — replace mcpServers.{{server}}, add missing permissions (does not remove existing ones)
[q] Quit — make no changes
What would you like to do? [u/Q]
u→ continue with update flow (Step 3)Qor anything else → stop
Step 3: Show preview
══════════════════════════════════════════
MCP Add: {{SERVER}} → {{target path}}
══════════════════════════════════════════
mcpServers.{{server}}:
{{pretty-print the server config block, replacing env var values like "${GITHUB_TOKEN}"
with the literal placeholder strings — do not expand env vars}}
New permissions:
allow (+{{N}} new): {{list entries not already in target settings}}
deny (+{{N}} new): {{list entries not already in target settings}}
(Existing permissions are not modified)
Rules:
$DOTFORGE_DIR/mcp/{{server}}/rules.md
→ {{rules destination}}
Required environment variables:
{{_install text from config.json}}
Proceed? [Y/n]
If all permissions are already present, show "Permissions: no changes (already configured)". If no new denies to add, omit that line.
Step 4: Apply changes
Only proceed if user confirms (Y, y, Enter, or "yes").
4a. Merge mcpServers
Read target settings.json as JSON.
Set settings["mcpServers"]["{{server}}"] = the server config block.
If mcpServers key doesn't exist in settings, create it.
4b. Merge permissions
Allow list:
- For each entry in template
allow[]: add tosettings.permissions.allowonly if not already present - Never remove or reorder existing entries
Deny list:
- For each entry in template
deny[]: add tosettings.permissions.denyonly if not already present - Never remove or reorder existing entries
If settings.permissions doesn't exist, create it with {"allow": [], "deny": []}.
4c. Write settings.json
Write the modified settings.json with 2-space indentation. Preserve all other existing keys (hooks, autoMemoryEnabled, env, etc.) exactly as they were.
4d. Copy rules.md
Determine rules destination:
- Project mode:
.claude/rules/mcp-{{server}}.md - Global mode:
~/.claude/rules/mcp-{{server}}.md
Copy $DOTFORGE_DIR/mcp/{{server}}/rules.md to the destination.
If the file already exists: overwrite — it's a managed template file. Any project-specific
customizations should live in a separate rule file, not in mcp-{{server}}.md.
Create the destination directory if it doesn't exist.
Step 5: Confirm result
✓ {{SERVER}} MCP configured
Updated files:
{{target settings.json}} — mcpServers.{{server}} added
{{rules destination}} — behavior rules copied
{{"+N permissions" if any were added, else "permissions: no changes"}}
Next step:
{{_install text from config.json}}
Restart Claude Code to activate the MCP server.
If global install: Add: "Installed globally — active in all projects."
If project-only install: Add: "Installed in the current project. For global use: /forge mcp add {{server}} --global"
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most mcp tooling skills give in ~1.4k tokens
Counted across 780 of the 1,136 authors here whose files we hold, read 2026-09-06
- Use Zod for input validationin 34 of 780, across 21 files
- Use stdio for local clientsin 27 of 780, across 10 files
- Restart Claude Code after configurationin 26 of 780, across 23 files
- Verify MCP server connection before using toolsin 23 of 780, across 17 files
- Define input schemas for every toolin 20 of 780, across 11 files
- Use Streamable HTTP for remote clientsin 18 of 780, across 8 files
- Pin SDK version in package.jsonin 17 of 780, across 6 files
- Keep server logic independent of transportin 16 of 780, across 6 files
- Verify SDK methods against official documentationin 15 of 780, across 5 files
- Format evaluation results as an XML filein 15 of 780, across 12 files
- Test servers using the MCP Inspectorin 15 of 780, across 14 files
- Create ten complex and independent evaluation questionsin 14 of 780, across 11 files
Said here and by no other author read
- Verify the server template directory exists
- Determine target settings path based on global flag
- Create settings file if missing and global
- Read config, permissions, and rules template files
- Prompt user to update or quit if configured
- Show preview of configuration changes
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.