Skip to content
Back to skills

Setup Mcp

ASecurity

Configure .mcp.json with MCP servers for external services your project uses. Called by init or standalone to configure the MCP pillar. Trigger phrases: "setup mcp", "configure mcp servers", "connect to [service]".

  • 10 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added August 31, 2026
ai-agentsgosqlgitapidatabaseperformance

Works with

  • claude code
  • api
  • mcp

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add ShipWithAI/shipwithai-plugins --skill setup-mcp --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Setup Mcp?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Setup Mcp
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shipwithai-setup-mcp/badge)](https://www.skillsdirectory.com/skills/shipwithai-setup-mcp)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: setup-mcp
description: >
  Configure .mcp.json with MCP servers for external services your project uses.
  Called by init or standalone to configure the MCP pillar.
  Trigger phrases: "setup mcp", "configure mcp servers", "connect to [service]".
argument-hint: "[service-name]"
---

# /setup-mcp

Configures `.mcp.json` with MCP servers for external services.

## Mode Detection

```
Read .claude/starter-context.json if it exists
  → Exists: use field mcp_selected — skip asking, go straight to lookup + write
  → Does not exist (standalone): ask "Which external services does your project use?"
```

## Argument Handling

If a service name is passed directly (e.g. `/setup-mcp github`): skip the service selection
prompt and go straight to lookup for that service.

## Service Lookup

Load `mcp-registry.json` and show the available services:

```
GitHub       → code search, PR management, issues
Linear       → issue tracking, sprint planning
Slack        → search messages, read channels
Sentry       → error tracking, performance data
PostgreSQL   → direct DB queries, schema inspection
Google Drive → search and read documents
Notion       → read and search pages and databases
Jira         → issue tracking, sprint management
```

For each selected service:

1. Look up config in the registry.
2. If `authRequired` is true: show auth requirement before writing:
   > "This server requires [authNote]. Do you have credentials ready?"
   If no: offer to skip and add later.
3. If service type is `stdio`: ask for required runtime values (e.g. connection string)
   before writing — never write placeholder values literally.
4. Show config preview (see Output Format below).
5. Attempt test connection after writing (see Verification below).
6. Confirm before writing.

If the requested service is not in the registry: do not fabricate a config.
Ask the user to paste an MCP URL if they have one, or skip for now.

## Output Format

If `.mcp.json` does not exist: create it with `{ "mcpServers": {} }`.

**HTTP server:**
```json
{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "type": "http",
      "description": "Search code, manage PRs and issues"
    }
  }
}
```

**stdio server (e.g. PostgreSQL — ask user for connection string first):**
```json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-postgres", "postgresql://user:pass@host/db"],
      "description": "Direct database queries and schema inspection"
    }
  }
}
```

## Write Rules

- If `.mcp.json` does not exist: create it with `{ "mcpServers": {} }`
- If `.mcp.json` exists: read it, check if server `id` already in `mcpServers` — skip if duplicate
- Never overwrite an existing server entry without asking the user first
- Never write placeholder values (e.g. `<connection-string>`) — always resolve real values first

## Verification

MCP servers load at Claude Code startup. Writing `.mcp.json` takes effect in the next session.

After writing, report status:
- **✓ tested** — a tool call to this MCP server actually succeeded in the current session
- **⚪ configured, not verified** — config written but connection not testable until next session
- **✗ not found** — server unreachable; show auth/setup guidance

**Never report ✓ based on `.mcp.json` declarations alone.**

## Post-Write

If `.claude/starter-context.json` exists:
→ Update the `mcp_selected` field with the list of server `id` values that were written

Files in this skill

  • SKILL.md3.5 KB
  • evals.json1.9 KB
  • mcp-registry.json2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.