Saltearse al contenido

Servidor MCP de TypeScript

Genera un servidor TypeScript del Model Context Protocol (MCP) para proporcionar contexto a Modelos de Lenguaje Grandes (LLMs).

El Model Context Protocol (MCP) es un estándar abierto que permite a asistentes de IA interactuar con herramientas y recursos externos. Proporciona una forma consistente para que los LLMs puedan:

  • Ejecutar herramientas (funciones) que realizan acciones o recuperan información
  • Acceder a recursos que proveen contexto o datos

Puedes generar un servidor MCP en TypeScript de dos formas:

  1. Instale el Nx Console VSCode Plugin si aún no lo ha hecho
  2. Abra la consola Nx en VSCode
  3. Haga clic en Generate (UI) en la sección "Common Nx Commands"
  4. Busque @aws/nx-plugin - ts#mcp-server
  5. Complete los parámetros requeridos
    • Haga clic en Generate
    Parámetro Tipo Predeterminado Descripción
    project Requerido string - The project to add an MCP server to
    name string - The name of your MCP server (default: mcp-server)

    El generador agregará los siguientes archivos a tu proyecto TypeScript existente:

    • Directoryyour-project/
      • Directorysrc/
        • Directorymcp-server/ (o nombre personalizado si se especifica)
          • index.ts Punto de entrada para el servidor MCP
          • server.ts Definición principal del servidor
          • Directorytools/
            • add.ts Herramienta de ejemplo
          • Directoryresources/
            • sample-guidance.ts Recurso de ejemplo
      • package.json Actualizado con entrada bin y dependencias MCP
      • project.json Actualizado con el target serve del servidor MCP

    Las herramientas son funciones que el asistente de IA puede llamar para realizar acciones. Puedes agregar nuevas herramientas en el archivo server.ts:

    server.tool("toolName", "tool description",
    { param1: z.string(), param2: z.number() }, // Esquema de entrada usando Zod
    async ({ param1, param2 }) => {
    // Implementación de la herramienta
    return {
    content: [{ type: "text", text: "Result" }]
    };
    }
    );

    Los recursos proveen contexto al asistente de IA. Puedes agregar recursos estáticos desde archivos o 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ámico
    server.resource('dynamic-resource', 'dynamic://resource', async (uri) => {
    const data = await fetchSomeData();
    return {
    contents: [{ uri: uri.href, text: data }],
    };
    });

    La mayoría de los asistentes de IA que admiten MCP utilizan un enfoque de configuración similar. Deberás crear o actualizar un archivo de configuración con los detalles de tu servidor MCP:

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

    Durante el desarrollo de tu servidor MCP, puedes configurar el flag --watch para que el asistente de IA siempre vea las versiones más recientes de las herramientas/recursos:

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

    Consulta la siguiente documentación para configurar MCP con asistentes de IA específicos:

    La forma más fácil de probar y usar un servidor MCP es configurándolo con un asistente de IA (como se muestra arriba). Sin embargo, puedes ejecutar el servidor usando el target <your-server-name>-serve, lo cual puede ser útil si cambias del transporte STDIO al transporte HTTP transmitible.

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

    Este comando usa tsx --watch para reiniciar automáticamente el servidor cuando los archivos cambian.