Salta ai contenuti

Server MCP TypeScript

Genera un server TypeScript per il Model Context Protocol (MCP) per fornire contesto ai Modelli Linguistici di Grandi Dimensioni (LLMs).

Il Model Context Protocol (MCP) è uno standard aperto che permette agli assistenti AI di interagire con strumenti e risorse esterne. Fornisce un modo coerente per gli LLM di:

  • Eseguire strumenti (funzioni) che compiono azioni o recuperano informazioni
  • Accedere a risorse che forniscono contesto o dati

Puoi generare un server MCP TypeScript in due modi:

  1. Installa il Nx Console VSCode Plugin se non l'hai già fatto
  2. Apri la console Nx in VSCode
  3. Clicca su Generate (UI) nella sezione "Common Nx Commands"
  4. Cerca @aws/nx-plugin - ts#mcp-server
  5. Compila i parametri richiesti
    • Clicca su Generate
    Parametro Tipo Predefinito Descrizione
    project Obbligatorio string - The project to add an MCP server to
    name string - The name of your MCP server (default: mcp-server)

    Il generatore aggiungerà i seguenti file al tuo progetto TypeScript esistente:

    • Directoryyour-project/
      • Directorysrc/
        • Directorymcp-server/ (o nome personalizzato se specificato)
          • index.ts Punto di ingresso del server MCP
          • server.ts Definizione principale del server
          • Directorytools/
            • add.ts Strumento di esempio
          • Directoryresources/
            • sample-guidance.ts Risorsa di esempio
      • package.json Aggiornato con entry bin e dipendenze MCP
      • project.json Aggiornato con target serve del server MCP

    Gli strumenti sono funzioni che l’assistente AI può chiamare per eseguire azioni. Puoi aggiungere nuovi strumenti nel file server.ts:

    server.tool("toolName", "tool description",
    { param1: z.string(), param2: z.number() }, // Schema di input usando Zod
    async ({ param1, param2 }) => {
    // Implementazione dello strumento
    return {
    content: [{ type: "text", text: "Result" }]
    };
    }
    );

    Le risorse forniscono contesto all’assistente AI. Puoi aggiungere risorse statiche da file o risorse dinamiche:

    const exampleContext = 'alcuni contesti da restituire';
    server.resource('resource-name', 'example://resource', async (uri) => ({
    contents: [{ uri: uri.href, text: exampleContext }],
    }));
    // Risorsa dinamica
    server.resource('dynamic-resource', 'dynamic://resource', async (uri) => {
    const data = await fetchSomeData();
    return {
    contents: [{ uri: uri.href, text: data }],
    };
    });

    La maggior parte degli assistenti AI che supportano MCP utilizza un approccio di configurazione simile. È necessario creare o aggiornare un file di configurazione con i dettagli del server MCP:

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

    Durante lo sviluppo del server MCP, puoi configurare il flag --watch affinché l’assistente AI visualizzi sempre le versioni più recenti di strumenti/risorse:

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "--watch", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

    Consulta la seguente documentazione per configurare MCP con assistenti AI specifici:

    Il modo più semplice per testare e utilizzare un server MCP è configurarlo con un assistente AI (come sopra). Puoi comunque eseguire il server usando il target <your-server-name>-serve, utile se passi dal trasporto STDIO al trasporto HTTP streamable.

    Terminal window
    pnpm nx run your-project:your-server-name-serve

    Questo comando utilizza tsx --watch per riavviare automaticamente il server quando i file cambiano.