Serveur MCP (en TypeScript)

IA / LLM 🟡 Mid

Dé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.
#ia#mcp#typescript#agents

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre