khalilbenaz/claude-skills-collection/agent-mcp-server-builder
Claude Code and agent skill by khalilbenaz/claude-skills-collection
- community
Checking that the SKILL.md file is still in the repository.
Création de serveurs MCP (Model Context Protocol) pour exposer des outils, ressources et prompts aux LLMs. Se déclenche avec "MCP", "Model Context Protocol", "MCP server", "MCP tool", "MCP resource", "serveur MCP", "connecter Claude à", "exposer une API à Claude", "claude desktop config". Also triggers on "build an MCP server", "expose tools to Claude", "Model Context Protocol server".
Install
npx vskill@latest install khalilbenaz/claude-skills-collection/agent-mcp-server-builderSKILL.md
MCP Server Builder
Quand utiliser ce skill
Crée un serveur MCP quand l'objectif est d'exposer une capacité (API, base de données, système de fichiers, service métier) à un LLM de façon structurée. Les cas typiques :
- Connecter Claude Desktop ou Cursor à un outil interne
- Wrapper une API REST existante pour qu'elle soit appelable par un agent
- Exposer des ressources en lecture (documents, données) au contexte de Claude
- Créer des prompt templates réutilisables pour un workflow métier récurrent
Critères de décision : transport
| Contexte | Transport recommandé | |
|---|---|---|
| Claude Desktop / Cursor / usage local | stdio | |
| Serveur réseau, multi-clients | Streamable HTTP (depuis SDK 1.x) | |
| Compatibilité legacy SSE requise | SSE (déprécié en 2025) | |
| Edge / Cloudflare Workers | Streamable HTTP avec fetch handler |
Workflow
1. Initialisation du projet
Python (recommandé pour démarrages rapides) :
TypeScript (recommandé pour production Node.js) :
Structure minimale Python :
2. Squelette serveur minimal
Python — stdio (Claude Desktop) :
TypeScript — stdio :
3. Définir des Tools
Règles de nommage : snake_case, verbe d'action, sans ambiguïté (search_emails > emails).
La description est lue par le LLM pour décider quand appeler l'outil — elle doit être précise et inclure les cas limites.
4. Définir des Resources
Les resources exposent des données en lecture sans action. Le LLM peut les inclure dans son contexte.
URI schemes utiles : file://, db://, api://, config://, doc://.
5. Définir des Prompts
6. Transport réseau (Streamable HTTP)
URL cliente : http://localhost:8000/mcp
7. Error handling
Codes d'erreur MCP : INVALID_PARAMS, NOT_FOUND, INTERNAL_ERROR, METHOD_NOT_FOUND.
8. Testing
9. Configuration client
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json sur macOS) :
Cursor (.cursor/mcp.json à la racine du projet) :
Redémarrer le client après modification de la config.
10. Dockerfile pour déploiement réseau
Garde-fous / Anti-patterns
Secrets dans les descriptions — Ne jamais inclure de clé API, token ou donnée sensible dans description d'un outil (le LLM peut les loguer ou les retourner dans ses réponses). Passer les secrets via env dans la config client.
Outils trop génériques — Un outil execute_sql(query: str) sans validation est dangereux. Préférer des outils spécialisés (list_users, get_order_by_id) avec validation Pydantic stricte.
Absence de timeout — Les handlers stdio bloquants font geler Claude Desktop. Toujours utiliser asyncio.wait_for avec timeout.
Retours non-sérialisables — Tout retour doit être JSON-sérialisable. Convertir les objets métier (datetime, Decimal, custom classes) avant de retourner.
Mélanger transport stdio et logs sur stdout — En stdio, stdout est le canal MCP. Les logs doivent aller sur stderr ou dans un fichier.
URI de ressource non-canoniques — Les templates d'URI (users/{id}) doivent correspondre exactement au pattern déclaré. Un mismatch rend la ressource silencieusement inaccessible.
Bonnes pratiques 2026
- Utiliser FastMCP (Python) ou McpServer (TS SDK 1.x+) plutôt que les bas-niveaux
Server/Protocol— l'API haut-niveau gère le cycle de vie, la validation et le routing. - Streamable HTTP est le standard réseau depuis 2025 — éviter SSE pour tout nouveau projet.
- Versionner le serveur dans
McpServer({ name, version })— permet aux clients de détecter les mises à jour. - Déclarer uniquement les capabilities réellement implémentées dans
capabilities: { tools: {}, resources: {} }— évite les erreurs de négociation. - Pour les agents Claude Code : préférer des outils idempotents avec des noms d'action clairs ; documenter les effets de bord dans la description.
- Tester systématiquement avec MCP Inspector avant intégration client — il affiche les erreurs de schéma que le client LLM silencerait.
Communication Rules — MANDATORY
- Ultra-concise. No filler, no preamble, no pleasantries.
- Never say "happy to help", "sure!", "great question", "let me", or similar.
- Tool first, talk second. Act before explaining.
- Result first. Lead with outcome, not process.
- Stop when done. No summary, no recap, no trailing commentary.
- No politeness wrappers. Direct and blunt.
- Minimum words. If one word works, do not use ten.
- No unsolicited explanations.
- No emoji unless asked.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/agent-mcp-server-builder/SKILL.md
Popularity
- Repository stars
- 2
- 7-day trend score
- 5
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 28 Apr 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/khalilbenaz/claude-skills-collection/agent-mcp-server-builder)