Servidor MCP em TypeScript
Gerar um servidor TypeScript do Model Context Protocol (MCP) para fornecer contexto a Large Language Models (LLMs).
O que é o MCP?
Seção intitulada “O que é o MCP?”O Model Context Protocol (MCP) é um padrão aberto que permite assistentes de IA interagirem com ferramentas e recursos externos. Ele fornece uma maneira consistente para LLMs:
- Executar ferramentas (funções) que realizam ações ou recuperam informações
- Acessar recursos que fornecem contexto ou dados
Gerar um servidor MCP
Seção intitulada “Gerar um servidor MCP”Você pode gerar um servidor MCP em TypeScript de duas formas:
- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - ts#mcp-server
- Preencha os parâmetros obrigatórios
- Clique em
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
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
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
Parâmetro | Tipo | Padrão | Descrição |
---|---|---|---|
project Obrigatório | string | - | The project to add an MCP server to |
name | string | - | The name of your MCP server (default: mcp-server) |
Saída do Gerador
Seção intitulada “Saída do Gerador”O gerador adicionará os seguintes arquivos ao seu projeto TypeScript existente:
Directoryyour-project/
Directorysrc/
Directorymcp-server/ (ou nome personalizado se especificado)
- index.ts Ponto de entrada do servidor MCP
- server.ts Definição principal do servidor
Directorytools/
- add.ts Ferramenta de exemplo
Directoryresources/
- sample-guidance.ts Recurso de exemplo
- package.json Atualizado com entrada bin e dependências MCP
- project.json Atualizado com alvo de serviço do servidor MCP
Trabalhando com seu servidor MCP
Seção intitulada “Trabalhando com seu servidor MCP”Adicionando Ferramentas
Seção intitulada “Adicionando Ferramentas”As ferramentas são funções que o assistente de IA pode chamar para realizar ações. Você pode adicionar novas ferramentas no arquivo server.ts
:
server.tool("toolName", "tool description", { param1: z.string(), param2: z.number() }, // Esquema de entrada usando Zod async ({ param1, param2 }) => { // Implementação da ferramenta return { content: [{ type: "text", text: "Result" }] }; });
Adicionando Recursos
Seção intitulada “Adicionando Recursos”Recursos fornecem contexto ao assistente de IA. Você pode adicionar recursos estáticos de arquivos ou recursos dinâmicos:
const exampleContext = 'some context to return';
server.resource('resource-name', 'example://resource', async (uri) => ({ contents: [{ uri: uri.href, text: exampleContext }],}));
// Recurso dinâmicoserver.resource('dynamic-resource', 'dynamic://resource', async (uri) => { const data = await fetchSomeData(); return { contents: [{ uri: uri.href, text: data }], };});
Configuração com Assistentes de IA
Seção intitulada “Configuração com Assistentes de IA”Arquivos de Configuração
Seção intitulada “Arquivos de Configuração”A maioria dos assistentes de IA que suportam MCP utiliza uma abordagem de configuração similar. Você precisará criar ou atualizar um arquivo de configuração com os detalhes do seu servidor MCP:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "/path/to/your-mcp-server/index.ts"] } }}
Recarregamento Automático
Seção intitulada “Recarregamento Automático”Durante o desenvolvimento do seu servidor MCP, você pode configurar a flag --watch
para que o assistente de IA sempre visualize as versões mais recentes de ferramentas/recursos:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "--watch", "/path/to/your-mcp-server/index.ts"] } }}
Configuração Específica do Assistente
Seção intitulada “Configuração Específica do Assistente”Consulte a documentação abaixo para configurar o MCP com assistentes de IA específicos:
Executando seu servidor MCP
Seção intitulada “Executando seu servidor MCP”A maneira mais fácil de testar e usar um servidor MCP é configurando-o com um assistente de IA (como acima). Você também pode executar o servidor usando o alvo <your-server-name>-serve
, útil se alternar do transporte STDIO para transporte HTTP Streamable.
pnpm nx run your-project:your-server-name-serve
yarn nx run your-project:your-server-name-serve
npx nx run your-project:your-server-name-serve
bunx nx run your-project:your-server-name-serve
Este comando usa tsx --watch
para reiniciar automaticamente o servidor quando arquivos mudarem.