ts#mcp-server
Generatore di Server TypeScript MCP
Sezione intitolata “Generatore di Server TypeScript MCP”Genera un server Model Context Protocol (MCP) in TypeScript per fornire contesto ai Large Language Model (LLM).
Cos’è l’MCP?
Sezione intitolata “Cos’è l’MCP?”Il Model Context Protocol (MCP) è uno standard aperto che permette agli assistenti AI di interagire con strumenti e risorse esterne. Fornisce un metodo consistente per gli LLM di:
- Eseguire strumenti (funzioni) che compiono azioni o recuperano informazioni
- Accedere a risorse che forniscono contesto o dati
Utilizzo
Sezione intitolata “Utilizzo”Generare un Server MCP
Sezione intitolata “Generare un Server MCP”Puoi generare un server MCP TypeScript in due modi:
- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)
nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#mcp-server
- Compila i parametri richiesti
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#mcp-server
yarn nx g @aws/nx-plugin:ts#mcp-server
npx nx g @aws/nx-plugin:ts#mcp-server
bunx nx g @aws/nx-plugin:ts#mcp-server
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#mcp-server --dry-run
yarn nx g @aws/nx-plugin:ts#mcp-server --dry-run
npx nx g @aws/nx-plugin:ts#mcp-server --dry-run
bunx nx g @aws/nx-plugin:ts#mcp-server --dry-run
Opzioni
Sezione intitolata “Opzioni”Parametro | Tipo | Predefinito | Descrizione |
---|---|---|---|
name Obbligatorio | string | - | MCP server project name. |
directory | string | packages | Parent directory where the MCP server is placed. |
subDirectory | string | - | The sub directory the MCP server is placed in. By default this is the MCP server project name. |
Output del Generatore
Sezione intitolata “Output del Generatore”Il generatore creerà i seguenti file del progetto:
Directorypackages/<name>/
- README.md Documentazione del server MCP con istruzioni d’uso
- project.json Configurazione del progetto Nx con target per build, bundle e dev
Directorysrc/
- index.ts Punto d’ingresso del server MCP
- server.ts Definizione principale del server, con strumenti e risorse
- global.d.ts Dichiarazioni di tipo TypeScript per l’importazione di file markdown
Directoryresources/
- example-context.md File markdown di esempio utilizzato come risorsa per il server MCP
Lavorare con il Tuo Server MCP
Sezione intitolata “Lavorare con il Tuo Server MCP”Aggiungere Strumenti
Sezione intitolata “Aggiungere Strumenti”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" }] }; });
Aggiungere Risorse
Sezione intitolata “Aggiungere Risorse”Le risorse forniscono contesto all’assistente AI. Puoi aggiungere risorse statiche da file o risorse dinamiche:
// Risorsa statica da fileimport exampleContext from './resources/example-context.md';
server.resource('resource-name', 'example://resource', async (uri) => ({ contents: [{ uri: uri.href, text: exampleContext }],}));
// Risorsa dinamicaserver.resource('dynamic-resource', 'dynamic://resource', async (uri) => { const data = await fetchSomeData(); return { contents: [{ uri: uri.href, text: data }], };});
Configurazione con Assistanti AI
Sezione intitolata “Configurazione con Assistanti AI”Per utilizzare il tuo server MCP con assistanti AI, devi prima creare un bundle:
pnpm nx run your-mcp-server:bundle
yarn nx run your-mcp-server:bundle
npx nx run your-mcp-server:bundle
bunx nx run your-mcp-server:bundle
Questo crea una versione bundled in dist/packages/your-mcp-server/bundle/index.js
(il percorso può variare in base alle impostazioni della directory).
File di Configurazione
Sezione intitolata “File di Configurazione”La maggior parte degli assistanti AI che supportano MCP utilizza un approccio di configurazione simile. Dovrai creare o aggiornare un file di configurazione con i dettagli del tuo server MCP:
{ "mcpServers": { "your-mcp-server": { "command": "node", "args": [ "/path/to/workspace/dist/packages/your-mcp-server/bundle/index.js" ], "transportType": "stdio" } }}
Sostituisci /path/to/workspace/dist/packages/your-mcp-server/bundle/index.js
con il percorso effettivo del tuo server MCP bundled.
Configurazione Specifica per Assistante
Sezione intitolata “Configurazione Specifica per Assistante”Consulta la seguente documentazione per configurare MCP con assistanti AI specifici:
Traduzione italiana:
- Amazon Q Developer (Configurazione MCP da riga di comando)
- Cline (Panoramica su MCP)
- Cursor (Protocollo Model Context)
- Claude Code (Configurare il Model Context Protocol - MCP)
Flusso di Sviluppo
Sezione intitolata “Flusso di Sviluppo”Target di Build
Sezione intitolata “Target di Build”Il generatore è basato sul generatore di progetti TypeScript e quindi eredita i suoi target, aggiungendo inoltre i seguenti target:
Il task bundle
utilizza esbuild per creare un singolo file JavaScript bundled utilizzabile con assistenti AI:
pnpm nx run your-mcp-server:bundle
yarn nx run your-mcp-server:bundle
npx nx run your-mcp-server:bundle
bunx nx run your-mcp-server:bundle
Questo crea una versione bundled in dist/packages/your-mcp-server/bundle/index.js
(il percorso può variare in base alle impostazioni della directory).
Il task dev
monitora le modifiche nel progetto e ricostruisce automaticamente il bundle:
pnpm nx run your-mcp-server:dev
yarn nx run your-mcp-server:dev
npx nx run your-mcp-server:dev
bunx nx run your-mcp-server:dev
Questo è particolarmente utile durante lo sviluppo poiché garantisce che l’assistente AI utilizzi l’ultima versione del tuo server MCP.