Vous voulez connecter Claude Desktop à vos propres outils et données ? Le protocole MCP (Model Context Protocol) d'Anthropic vous permet exactement cela. Dans ce guide, je vais vous montrer pas à pas, depuis zéro complet, comment installer et configurer un serveur MCP en Python, puis le brancher sur Claude Desktop via le service de relais HolySheep, qui offre une latence médiane inférieure à 50 ms et des tarifs imbattables en 2026.
Pas besoin d'être développeur confirmé : si vous savez ouvrir un terminal et copier-coller du code, c'est suffisant. Promis.
1. Ce qu'il vous faut avant de commencer
- Un ordinateur sous Windows, macOS ou Linux
- Python 3.10 ou plus récent (on va le télécharger ensemble)
- Claude Desktop installé (téléchargeable gratuitement depuis le site officiel d'Anthropic)
- Un compte HolySheep (créez-en un gratuitement ici : S'inscrire ici)
- Une connexion Internet stable
📸 Capture d'écran à insérer : la page de téléchargement python.org avec la case « Add Python to PATH » cochée sur Windows.
2. Installation de Python et de l'environnement
Ouvrez votre terminal (Terminal sur Mac, PowerShell sur Windows) et tapez ces commandes :
python --version
pip install mcp anthropic-sdk-python python-dotenv
Si la commande python n'est pas reconnue sur Windows, remplacez-la par py. Ces trois paquets vous donnent tout ce qu'il faut :
mcp: le SDK officiel Python pour créer votre serveur MCPanthropic-sdk-python: pour parler aux modèles Claude en passant par HolySheeppython-dotenv: pour stocker votre clé API en sécurité
📸 Capture d'écran à insérer : le terminal affiche les versions installées, par exemple « Python 3.12.4 ».
3. Créer votre compte HolySheep et récupérer votre clé
- Rendez-vous sur la page d'inscription HolySheep
- Inscrivez-vous via email, Google, ou directement via WeChat / Alipay (très pratique pour les utilisateurs en Asie)
- Une fois connecté, ouvrez le tableau de bord et cliquez sur « Clés API »
- Créez une nouvelle clé et copiez-la : elle ressemble à
hs-xxxxxxxxxxxxxxxxxxxxxxxx - Notez aussi le base_url officiel :
https://api.holysheep.ai/v1
📸 Capture d'écran à insérer : la page « Clés API » du tableau de bord HolySheep avec le bouton « Créer une clé » mis en évidence.
Bon à savoir : HolySheep pratique un taux de change ¥1 = $1 et accepte WeChat et Alipay. Pour les utilisateurs en Chine continentale ou utilisant ces wallets, cela représente une économie supérieure à 85 % par rapport aux prix officiels pratiqués aux États-Unis ou en Europe.
4. Écrire votre premier serveur MCP
Créez un dossier vide, par exemple mcp-holysheep, et dedans un fichier server.py. Collez ce code :
import os
import asyncio
from dotenv import load_dotenv
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
import anthropic
load_dotenv()
IMPORTANT : on utilise TOUJOURS le relais HolySheep
HOLYSHEEP_API_KEY = os.getenv("HOLYSHEEP_API_KEY")
HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1"
client = anthropic.Anthropic(
api_key=HOLYSHEEP_API_KEY,
base_url=HOLYSHEEP_BASE_URL,
)
server = Server("holysheep-mcp-demo")
@server.list_tools()
async def list_tools():
return [
Tool(
name="ask_claude",
description="Pose une question a Claude Sonnet 4.5 via HolySheep. Utile pour resumer, expliquer, rediger.",
inputSchema={
"type": "object",
"properties": {
"question": {"type": "string", "description": "La question a poser a Claude"},
"max_tokens": {"type": "integer", "default": 1024},
},
"required": ["question"],
},
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "ask_claude":
question = arguments["question"]
max_tokens = arguments.get("max_tokens", 1024)
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=max_tokens,
messages=[{"role": "user", "content": question}],
)
return [TextContent(type="text", text=response.content[0].text)]
raise ValueError(f"Outil inconnu : {name}")
async def main():
async with stdio_server() as (read_stream, write_stream):
await server.run(read_stream, write_stream, server.create_initialization_options())
if __name