Manages MCP (Model Context Protocol) servers for Claude Code and Claude Desktop. Activates for: finding MCP servers, MCP registries, MCP server setup, MCP configuration, MCP troubleshooting, MCP security, building MCP servers, MCP transport selection, claude mcp commands, mcp.json files, mcpServers configuration, tool poisoning prevention, MCP debugging, Smithery, Glama, GitHub MCP registry, which MCP server should I use. NOT for: general Claude Code settings (use claude-code-mastery), OAuth/authentication unrelated to MCP, generic API integrations without MCP.
Manages MCP servers for Claude Code and Desktop. Triggers when finding/configuring servers, troubleshooting issues, building custom servers, or handling security concerns. Guides discovery from registries like Smithery and Glama, CLI commands, JSON configs, transport selection, and prevention of tool poisoning.
/plugin marketplace add clearfunction/cf-devtools/plugin install cf-devtools@cf-devtoolsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/building-servers.mdreferences/enterprise-config.mdreferences/security-essentials.mdreferences/server-configs.mdreferences/troubleshooting.mdscripts/mcp-health-check.shComprehensive guide for finding, configuring, securing, and building MCP servers for Claude Code and Claude Desktop.
| Aspect | Claude Code | Claude Desktop |
|---|---|---|
| Config location | ~/.claude/settings.json | ~/Library/Application Support/Claude/claude_desktop_config.json |
| CLI management | claude mcp add/list/remove | Manual JSON editing |
| Scopes | local/project/user | Single config |
| Hot reload | Supported | Requires full restart (Cmd+Q) |
| Can act as server | Yes (claude mcp serve) | No |
| Registry | Servers | Best For |
|---|---|---|
| Official MCP Registry | Canonical | Verified, authoritative source |
| GitHub MCP Registry | Curated | GitHub-native, one-click VS Code install |
| Smithery.ai | 4,600+ | Usage metrics, edge deployment |
| Glama.ai | 10,000+ | Hosted option, no local setup |
| PulseMCP | 7,500+ | Daily updates, streaming focus |
| Registry | Focus |
|---|---|
| Cursor Directory | Cursor IDE optimized (1,800+) |
| Mastra | Meta-aggregator across registries |
| MCP.so | Quality-verified listings |
| Awesome MCP Servers | Community curated GitHub list |
| HiMCP.ai | Uptime & performance metrics |
| MCPdb.org | Regional filtering, tech docs |
| MCPMarket.com | Commercial/enterprise with pricing |
| Portkey.ai | Enterprise security/compliance |
| MCPServers.org | User reviews, troubleshooting guides |
| Cline.bot | Cline AI one-click integration |
| APITracker.io | API version tracking |
| AIXploria | Editorial reviews, use-case guides |
When selecting an MCP server:
CRITICAL: Before installing ANY MCP server, follow this workflow:
Always retrieve the server's README.md from GitHub or the registry:
# View README directly
gh repo view owner/repo-name
# Or fetch raw README
curl -s https://raw.githubusercontent.com/owner/repo/main/README.md
Look for:
| Deprecated | Use Instead |
|---|---|
| SSE transport | HTTP or stdio (June 2025 spec) |
@modelcontextprotocol/server-github | @github/github-mcp-server (April 2025) |
| OAuth 2.0 for HTTP | OAuth 2.1 required (March 2025 spec) |
# Check Node version (18+ typically required)
node --version
# Check Python version (3.10+ for MCP SDK)
python3 --version
# Check if package exists
npm view @package/server-name
Before proceeding, confirm:
Only after completing steps 1-4, install using the README's recommended method.
| Transport | Use When | Example |
|---|---|---|
| HTTP | Cloud services, remote APIs | claude mcp add --transport http notion https://mcp.notion.com/mcp |
| stdio | Local tools, system access | claude mcp add --transport stdio fs -- npx -y @anthropic/mcp-server-filesystem |
| SSE | Legacy (prefer HTTP) | Deprecated for new implementations |
# Add remote server
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
# Add local server
claude mcp add --transport stdio postgres -- npx -y @modelcontextprotocol/server-postgres
# List servers
claude mcp list
# Remove server
claude mcp remove github
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
}
}
}
}
| Use MCP When | Use CLI When |
|---|---|
| Rich context needed in responses | Simple one-off operations |
| Complex queries across resources | Quick lookups |
| Ongoing session work | Infrequent access |
| Want tool integration | Prefer direct control |
Token budget matters: GitHub MCP ~40k tokens. Context7 ~500 tokens. Enable sparingly.
Critical risks (2025 research: 43% of servers have command injection flaws):
Mitigations:
See references/security-essentials.md for detailed patterns.
| Choose | When |
|---|---|
| Python | Rapid prototyping, data science tools, existing Python ecosystem |
| TypeScript | Web integrations, npm ecosystem, type safety preference |
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("my-server")
@mcp.tool()
async def my_tool(param: str) -> str:
"""Tool description for Claude."""
return f"Result: {param}"
if __name__ == "__main__":
mcp.run(transport="stdio")
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new McpServer({ name: "my-server", version: "1.0.0" });
server.registerTool("my_tool", {
description: "Tool description for Claude",
inputSchema: { param: z.string() }
}, async ({ param }) => ({
content: [{ type: "text", text: `Result: ${param}` }]
}));
const transport = new StdioServerTransport();
await server.connect(transport);
Critical: For stdio transport, NEVER write to stdout (corrupts JSON-RPC). Use stderr or logging libraries.
See references/building-servers.md for complete patterns.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.