From cf-devtools
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cf-devtools:mcp-managementThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive guide for finding, configuring, securing, and building MCP servers
Comprehensive 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.
npx claudepluginhub clearfunction/cf-devtools --plugin cf-devtoolsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.