Serveur MCP (en TypeScript)
IA / LLM 🟡 MidDéfinition
Programme qui expose des capacités à un hôte LLM via MCP. Le SDK officiel est scindé en @modelcontextprotocol/server et @modelcontextprotocol/client ; on instancie McpServer, on déclare des outils avec registerTool et un schéma (Zod v4 ou tout Standard Schema), puis on connecte un transport : StdioServerTransport (sous-processus local) ou Streamable HTTP (distant).
Analogie
Une prise murale que vous installez chez vous : n'importe quel appareil compatible pourra s'y brancher.
Exemple de code
import { McpServer } from '@modelcontextprotocol/server';
import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
import * as z from 'zod/v4';
const server = new McpServer({ name: 'tickets', version: '1.0.0' });
server.registerTool('search_tickets',
{ description: 'Recherche des tickets support par texte libre',
inputSchema: z.object({ query: z.string(), limit: z.number().int().max(20).default(5) }) },
async ({ query, limit }) => {
const rows = await db.tickets.search(query, limit);
return { content: [{ type: 'text', text: JSON.stringify(rows) }] };
});
await server.connect(new StdioServerTransport()); // lancé par l'hôte (Claude Code, Cursor…)
Cas d'usage
Donner à un agent de code l'accès à votre base de tickets, votre CMS ou votre API métier en quelques dizaines de lignes.
Anti-pattern
Écrire sur stdout autre chose que du JSON-RPC dans un serveur stdio (console.log de debug) : le flux est corrompu.
Termes liés
Sources
Fiche mise à jour le 2026-09-27