skills/claude-mcp-setup/SKILL.md
Use when connecting Claude Code to external services via MCP (Model Context Protocol) — configuring MCP servers for databases, APIs, file systems, and custom tools, and designing effective tool descriptions for Claude.
npx skillsauth add kienbui1995/magic-powers claude-mcp-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
MCP (Model Context Protocol) lets Claude Code call external tools: query your database, create GitHub issues, search Slack, call APIs. Without MCP, Claude can only work with files and bash commands. With MCP, Claude becomes a full participant in your entire toolchain — querying live data to debug, creating issues, looking up docs.
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://localhost/mydb"
}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
}
}
}
Scope: Project-level (.claude/settings.json) or global (~/.claude/settings.json). Project-level preferred for team consistency. Never hardcode secrets — use ${ENV_VAR} syntax.
Database:
@modelcontextprotocol/server-postgres — Query PostgreSQL directly
@modelcontextprotocol/server-sqlite — Query SQLite files
Development:
@modelcontextprotocol/server-github — Issues, PRs, repos
@modelcontextprotocol/server-git — Git history, blame
@modelcontextprotocol/server-filesystem — File system access
Analytics:
@amplitude/mcp — Amplitude analytics
(see Amplitude Division in magic-powers)
Productivity:
@modelcontextprotocol/server-slack — Slack messages, channels
mcp-server-linear — Linear issues
The most important thing about MCP: tool descriptions determine when Claude uses them.
// Bad tool description — Claude won't know when to call this
{
name: "query_db",
description: "Queries the database",
inputSchema: { query: { type: "string" } }
}
// Good tool description — Claude knows exactly when and how to use
{
name: "query_user_data",
description: "Query the PostgreSQL database for user information, analytics, or debugging. Use when: checking what data exists for a user, debugging production issues, verifying data integrity. Returns: JSON with query results. Max 100 rows. Timeout: 10s.",
inputSchema: {
query: {
type: "string",
description: "SQL SELECT query only. No INSERT/UPDATE/DELETE. Tables: users, subscriptions, events, audit_log."
}
}
}
Good descriptions answer: when to call this tool, what it returns, what constraints apply (read-only, row limits, timeouts), and what tables/endpoints are available.
Read-only access: Grant Claude SELECT-only DB permissions for dev databases
Scoped access: Limit filesystem MCP to project directory only
No production creds: Use dev/staging credentials in local MCP config
Audit logging: Log all MCP tool calls for security review
Secret management: Use environment variables, never hardcode in settings.json
.claude/settings.json committed to repo (minus secrets)?.claude/settings.json: MCP server configurationclaude-hooks (hooks can validate/audit MCP tool calls via PreToolUse)claude-project-settings (MCP configured in same settings.json)content-media
Use when designing for XR (AR/VR/MR), choosing interaction modes, or adapting 2D UI patterns for spatial computing
testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code
development
Use when executing a structured workflow — select and run a feature, bugfix, refactor, research, or incident template with correct agent and model assignments per phase.