Skip to main content
Glama

Servidor MCP: un paquete de nodos en capas para crear servidores MCP

Esta biblioteca agrega la capacidad de crear fácilmente servidores MCP con Node In Layers.

Cuenta con una biblioteca complementaria llamada '@node-in-layers/mcp-client', que se utiliza para crear clientes MCP. Ambas bibliotecas comparten las mismas funciones para definir modelos y herramientas.

Nueva capa

Esta biblioteca añade una nueva capa mcp al sistema. Debe colocarse después de la capa express .

Related MCP server: Node Omnibus MCP Server

Uso

Para poder utilizar esta biblioteca, debe realizar adiciones a su configuración, así como crear y exportar capas "mcp" desde sus aplicaciones/dominios.

Configuración

Añade esta aplicación/dominio a tu archivo de configuración. Debes hacerlo antes de las aplicaciones que añadirán herramientas al servidor MCP.

Luego configura la aplicación/dominio mcp con lo siguiente:

const mcpConfig = {
  // (optional) The name of your MCP server.
  name: 'mcp',
  // (optional) The version of your MCP server.
  version: '1.0.0',
  // The server config from @l4t/mcp-ai/simple-server/types.js
  server: {
    connection: {
      type: 'http',
      host: 'localhost',
      port: 3000,
    },
  },
  logging: {
    // optional
    // If you want to change the default. Its 'info' by default.
    requestLogLevel: 'info',
    // If you want to change the default. Its 'info' by default.
    responseLogLevel: 'info',
  },
}

const config = {
  ['@node-in-layers/mcp-server']: mcpConfig,
}

Creación de una capa MCP

Puede crear una capa MCP exportando una función desde su aplicación/dominio que devuelva una capa.

// /src/yourDomain/mcp.ts
import { McpContext, McpNamespace } from '@node-in-layers/mcp-server'
import { Config } from '@node-in-layers/core'
import { YourFeaturesLayer } from './features.js'

const create = (context: McpContext<Config, YourFeaturesLayer>) => {
  // Adds your tool.
  context.mcp[McpNamespace].addTool({
    name: 'my-hello-world-tool',
    description: 'My Tool',
    execute: async (input: any) => {
      return 'Hello, world!'
    },
  })

  // Create a tool from your feature
  context.mcp[McpNamespace].addTool({
    name: 'my-hello-world-tool',
    description: 'My Tool',
    inputSchema: {
      type: 'object',
      properties: {
        name: {
          type: 'string',
        },
      },
      required: ['name'],
    },
    execute: (input: any) => {
      // You get an object, pass it back to your feature. Handles async for you.
      return context.features.yourDomain.yourFeature(input)
    },
  })

  return {}
}

export { create }

Añadiendo modelos

Puedes encapsular tus modelos con funciones CRUDS y añadirlos al servidor MCP con la capa mcp. NOTA: Para que esto funcione, tu capa debe tener una capa de servicios y una de entidades (además de tus modelos). El nodo en capas creará automáticamente una propiedad CRUDS con tus modelos, y podrás añadirlos.

He aquí un ejemplo de cómo hacerlo uno a la vez. (No se recomienda generalmente, pero es posible hacerlo).

// /src/yourDomain/mcp.ts
import { McpContext, McpNamespace } from '@node-in-layers/mcp-server'
import { Config } from '@node-in-layers/core'
import { YourFeaturesLayer } from './features.js'

const create = (context: McpContext<Config, YourFeaturesLayer>) => {
  // Adds your models cruds through features.
  context.mcp[McpNamespace].addModelCruds(
    context.features.yourFeature.cruds.Cars
  )

  return {}
}

Aquí tienes una forma de cocinar realmente con gas. (Muy recomendable)

// /src/yourDomain/mcp.ts
import { McpContext, McpNamespace, mcpModels } from '@node-in-layers/mcp-server'
import { Config } from '@node-in-layers/core'
import { YourFeaturesLayer } from './features.js'

const create = (context: McpContext<Config, YourFeaturesLayer>) => {
  // This automatically adds ALL of your models from features.
  mcpModels('yourDomain')(context)

  return {}
}

Otra forma de organizar la adición de modelos es desde un dominio mcp centralizado. Incluya este como su último dominio después de cargar todos los demás.

// /src/mcp/mcp.ts
import { McpContext, McpNamespace, mcpModels } from '@node-in-layers/mcp-server'
import { Config } from '@node-in-layers/core'

const create = (context: McpContext<Config>) => {
  // Add all your models for your whole system in one go.
  mcpModels('yourDomain')(context)
  mcpModels('yourDomain2')(context)
  mcpModels('yourDomain3')(context)
  mcpModels('yourDomain4')(context)

  return {}
}
-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Node-In-Layers/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server