Configuration de l'hôte¶
Chaque développeur déclare le serveur MCP partagé dans son hôte (VS Code, IntelliJ, Claude…). Le serveur doit déjà tourner : voir Mise en service du serveur.
Transport HTTP¶
En mode partagé, avec le serveur lancé par serve --transport streamable-http, l'hôte se connecte à
l'endpoint /mcp au lieu de lancer un processus. Il envoie le jeton dans l'en-tête
Authorization: Bearer <jeton> (voir Jetons Bearer et
TLS).
.vscode/mcp.json, avec un jeton demandé à l'utilisateur au premier lancement :
{
"servers": {
"security-review": {
"type": "http",
"url": "https://secreview.example.internal:8443/mcp",
"headers": { "Authorization": "Bearer ${input:secreview-token}" }
}
},
"inputs": [
{ "id": "secreview-token", "type": "promptString", "description": "Jeton", "password": true }
]
}
VS Code privilégie désormais le fichier .mcp.json à la racine du dépôt et signale
.vscode/mcp.json comme déprécié, mais le lit toujours. Gardez-le pour un serveur avec
jeton : dans .mcp.json, VS Code ne substitue pas encore les variables (ni ${input:...},
ni les variables d'environnement), et le jeton devrait être écrit en clair.
.mcp.json, avec le jeton lu dans la variable d'environnement SECURITY_REVIEW_TOKEN du
poste (côté client, distincte des paramètres SECREVIEW_* du serveur). :- donne une
valeur vide tant que la variable n'existe pas, ce qui permet l'enrôlement :
{
"mcpServers": {
"security-review": {
"type": "http",
"url": "https://secreview.example.internal:8443/mcp",
"headers": { "Authorization": "Bearer ${SECURITY_REVIEW_TOKEN:-}" }
}
}
}
Plugin GitHub Copilot : dans le chat Copilot, en mode Agent, cliquez sur l'icône des
outils (Configure your MCP server) puis sur Add MCP Tools. L'IDE ouvre son fichier
mcp.json, propre à votre profil utilisateur et extérieur au dépôt :
{
"servers": {
"security-review": {
"url": "https://secreview.example.internal:8443/mcp",
"requestInit": {
"headers": { "Authorization": "Bearer <token>" }
}
}
}
}
Ce fichier ne substitue pas les variables : le jeton y est écrit, ne le copiez donc jamais
dans le dépôt. Omettez requestInit tant que vous n'avez pas de jeton (voir
l'enrôlement).
JetBrains AI Assistant : Settings > Tools > AI Assistant > Model Context Protocol (MCP) > Add, puis collez la configuration d'un serveur sans authentification (exemple ci-dessous). AI Assistant ne documente pas d'en-têtes personnalisés : avec un jeton, utilisez le plugin GitHub Copilot.
Sans authentification (serveur local sur 127.0.0.1, ou authentification assurée par un
reverse proxy), VS Code, GitHub Copilot et Claude partagent le même fichier .mcp.json à la
racine du dépôt, sans headers :
{
"mcpServers": {
"security-review": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp"
}
}
}
Tip
N'écrivez jamais le jeton en clair dans un fichier de configuration versionné : utilisez une
saisie (${input:...}) ou une variable d'environnement.
Obtenir un jeton¶
En mode partagé, quand le serveur exige un jeton, vous utilisez un jeton MCP personnel, créé dans l'interface web. Inutile d'en réclamer un à un administrateur avant de commencer : configurez l'hôte comme ci-dessus, sans jeton, et lancez votre première revue. L'agent demande le projet, puis vous indique où créer votre jeton (voir l'enrôlement).
- Configurez l'hôte sans jeton. Avec les exemples de la section
Transport HTTP, laissez la saisie du jeton vide (VS Code), ne définissez
pas
SECURITY_REVIEW_TOKEN(Claude) ou omettezrequestInit(IntelliJ). Un en-tête absent ou unBearervide mène au serveur d'enrôlement, qui porte le même nomsecurity-review. -
Lancez une revue, par exemple le prompt
security-review. Au lieu de relire le code, l'agent appelle l'outilrequest_enrollmentavec le nom du projet (le nom du dépôt en général) : un nouveau projet attend la validation d'un administrateur, et aucun jeton n'est renvoyé :{ "project": "shop-api", "web_url": "https://secreview.example.internal/ui", "next_steps": "No token is created by the enrollment. Ask the user to sign in to …" }Sans agent, enrôlez le projet en ligne de commande :
security-review-mcp enroll --url https://secreview.example.internal:8443 \ --project shop-api --requested-by "alice (équipe shop)" -
Créez votre jeton MCP personnel : connectez-vous à l'interface web (
web_url), ouvrez Mon compte > Jetons personnels et créez un jeton d'usage MCP (voir jetons MCP personnels ; vos groupes doivent avoir le rôlemcp-user). Il n'est affiché qu'une seule fois. -
Enregistrez le jeton dans l'hôte, puis redémarrez le serveur MCP dans l'hôte :
Si la saisie a déjà été mémorisée vide, exécutez la commande MCP: Reset Cached Inputs puis redémarrez le serveur
security-review(commande MCP: List Servers) : VS Code redemande le jeton, collez-le. Il est conservé dans le stockage sécurisé de VS Code.Définissez la variable avant de lancer Claude, par exemple dans le profil du shell :
export SECURITY_REVIEW_TOKEN='Zq3…'Ajoutez le bloc
requestInitavec le jeton dans le fichiermcp.jsonde GitHub Copilot, puis redémarrez le serveursecurity-reviewdepuis les outils MCP du chat Copilot. -
Obtenez l'accès au projet. Le jeton atteint les projets que votre compte peut lire : demandez à un administrateur de valider le projet (écran Projets) et de vous ajouter à son groupe
project:<projet>(un projet validé n'a aucun membre). L'accès s'applique aussitôt : relancez la revue, sans rien reconfigurer.
Quand le serveur refuse le jeton (inconnu, révoqué ou expiré), l'hôte reçoit 401 avec un
message qui vous invite à vous reconnecter à l'interface web pour créer un nouveau jeton MCP
personnel : remplacez-le dans l'hôte comme à l'étape 4 (voir
jeton refusé).
Note
Si l'administrateur a désactivé l'enrôlement (SECREVIEW_ENROLLMENT=false), un hôte sans
jeton reçoit 401 : créez directement votre jeton MCP personnel dans l'interface web, et
demandez à un administrateur de créer le projet s'il est nouveau.
Autres cas¶
- Certificat du serveur signé par une CA interne (
unable to verify the first certificate) : voir Serveur HTTPS avec une CA interne. - Mode local (stdio), sans serveur (l'hôte lance lui-même le processus) : voir Mode local (stdio).
Étape suivante : lancez votre première revue avec les prompts et outils.