Client MCP custom
Si aucun client MCP de l’écosystème ne couvre votre cas, bot Slack, backend SaaS, automatisation interne, vous pouvez parler à acf-mcp directement avec le SDK officiel @modelcontextprotocol/sdk (Node, Python, Go en cours).
iNote
acf-mcp parle le Model Context Protocol stable v2025-12-11. Vous pouvez utiliser n’importe quel client conforme, pas seulement le SDK officiel.
Installer le SDK
bash
npm install @modelcontextprotocol/sdkSe connecter, lister, appeler
Le pattern est identique entre les deux SDK : (1) ouvrir le transport stdio en lançant npx -y acf-mcp, (2) initialiser la session, (3) discover puis call.
client.tstypescript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "npx",
args: ["-y", "acf-mcp"],
env: { ACF_MCP_LOCALE: "en" },
});
const client = new Client(
{ name: "my-app", version: "1.0.0" },
{ capabilities: {} },
);
await client.connect(transport);
// 1. Discover tools
const { tools } = await client.listTools();
console.log("available:", tools.map((t) => t.name));
// 2. Call a tool
const result = await client.callTool({
name: "acf.advisor",
arguments: { case_description: "We are building a recruiting agent..." },
});
console.log(result.content);
// 3. Read a resource
const wp = await client.readResource({ uri: "acf://whitepaper/fr" });
console.log(wp.contents[0].text.slice(0, 200));
await client.close();Informations serveur exposées
- Tools: 13 outils (8 REASON + 5 READ). Voir la référence outils.
- Resources: 79 ressources (livre blanc, 45 fiches, 5 guides réglementaires, manuel, deck, glossaire). Voir la référence ressources.
- Prompts: 6 prompts problem-first prêts à l’emploi pour démarrer un audit ou une qualification.
Sessions de longue durée
Pour un service backend qui ouvre la session une fois et la garde chaude, gardez une référence au transport et appelez ses méthodes au fur et à mesure. Pour un job batch, fermez explicitement (client.close()) à la fin pour libérer le sous-processus npx.