Installs dotforge MCP server templates into project or global settings with a single command.

Install

mkdir -p .claude/skills/mcp-add && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11265" && unzip -o skill.zip -d .claude/skills/mcp-add && rm skill.zip

Installs to .claude/skills/mcp-add

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Install an MCP server template from dotforge into a project or global Claude Code config with a single command.
111 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Install MCP server templates from dotforge
  • Configure environment variables for MCP servers
  • Update project or global settings.json
  • Copy behavior rules for MCP servers
  • Validate server template existence

How it works

It parses the requested server template, merges the configuration and permissions into the target settings.json, and copies the associated rules.md file.

Inputs & outputs

You give it
MCP server name and target scope
You get back
Updated settings.json and copied rules.md

When to use mcp-add

  • Install Postgres MCP server
  • Add GitHub integration to project
  • Setup global MCP server configuration
  • Bootstrap new project integrations

About this skill

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 after mcp add — one of github, postgres, supabase, redis, slack
  • Detect --global flag: if present, target ~/.claude/settings.json; otherwise target .claude/settings.json

Step 0: Validate

  1. Verify the server template exists: $DOTFORGE_DIR/mcp/<server>/

    • If directory not found:
      ✗ Unknown server '{{server}}'.
      Available: github, postgres, supabase, redis, slack
      Usage: /forge mcp add <server> [--global]
      
      Stop.
  2. 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 bootstrap first, or use --global to install globally." Stop.
    • If target doesn't exist and --global: create ~/.claude/settings.json with {"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 _install string — contains required env vars and instructions
  • Ignore all keys starting with _ (metadata)

From permissions.json:

  • allow: the allow array value (or [] if absent)
  • deny: the deny array 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)
  • Q or 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 to settings.permissions.allow only if not already present
  • Never remove or reorder existing entries

Deny list:

  • For each entry in template deny[]: add to settings.permissions.deny only 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"

When not to use it

  • When the server template is unknown
  • When settings.json is missing and not performing a global install

Prerequisites

DOTFORGE_DIR environment variable

Limitations

  • Only supports predefined dotforge server templates
  • Does not remove existing permissions during updates

How it compares

It automates the installation and configuration of MCP servers via a single command, replacing manual JSON editing.

Compared to similar skills

mcp-add side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
mcp-add (this skill)04moNo flagsIntermediate
telegram-bot-builder1066moReviewIntermediate
mcp-integration218moReviewIntermediate
n8n-workflow-patterns162moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

telegram-bot-builder

davila7

Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.

106130

mcp-integration

anthropics

This skill should be used when the user asks to "add MCP server", "integrate MCP", "configure MCP in plugin", "use .mcp.json", "set up Model Context Protocol", "connect external service", mentions "${CLAUDE_PLUGIN_ROOT} with MCP", or discusses MCP server types (SSE, stdio, HTTP, WebSocket). Provides comprehensive guidance for integrating Model Context Protocol servers into Claude Code plugins for external tool and service integration.

21123

n8n-workflow-patterns

czlonkowski

Proven workflow architectural patterns from real n8n workflows. Use when building new workflows, designing workflow structure, choosing workflow patterns, planning workflow architecture, or asking about webhook processing, HTTP API integration, database operations, AI agent workflows, or scheduled tasks.

16115

n8n-code-javascript

czlonkowski

Write JavaScript code in n8n Code nodes. Use when writing JavaScript in n8n, using $input/$json/$node syntax, making HTTP requests with $helpers, working with dates using DateTime, troubleshooting Code node errors, or choosing between Code node modes.

7122

n8n-expression-syntax

czlonkowski

Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows.

6111

n8n-node-configuration

czlonkowski

Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node_essentials and get_node_info, or learning common configuration patterns by node type.

7108

Search skills

Search the agent skills registry