Skip to main content
Glama

MCP Server Boilerplate

by cds-id

Plantilla estándar del servidor MCP

Versión NPM del SDK TypeScript de MCP Licencia MIT

Una implementación de servidor estándar para el Protocolo de Contexto de Modelo (MCP), creado con TypeScript y Express.

Tabla de contenido

Descripción general

Este proyecto implementa un servidor que sigue el Protocolo de Contexto de Modelo (MCP), lo que permite a las aplicaciones proporcionar contexto para LLM de forma estandarizada. Incluye:

  • Un servidor MCP completamente configurado con opciones de transporte HTTP y stdio

  • Recursos de muestra, herramientas y sugerencias para demostrar la funcionalidad clave

  • Compatibilidad con TypeScript para seguridad de tipos y una mejor experiencia para el desarrollador

  • Integración expresa para la capa de transporte HTTP

Estructura del proyecto

mcp-server-boilerplate/ ├── .env # Environment variables ├── .env.example # Example environment variables ├── .gitignore # Git ignore file ├── package.json # Project dependencies and scripts ├── tsconfig.json # TypeScript configuration ├── src/ │ ├── index.ts # Main HTTP server entry point │ ├── stdio.ts # Stdio server entry point │ ├── resources/ # MCP resources │ │ ├── index.ts # Resource registration │ │ ├── infoResource.ts # Static info resource │ │ └── greetingResource.ts # Dynamic greeting resource │ ├── tools/ # MCP tools │ │ ├── index.ts # Tool registration │ │ ├── calculatorTool.ts # Sample calculator tool │ │ └── timestampTool.ts # Sample timestamp tool │ └── prompts/ # MCP prompts │ ├── index.ts # Prompt registration │ ├── greetingPrompt.ts # Sample greeting prompt │ └── analyzeDataPrompt.ts # Sample data analysis prompt └── dist/ # Compiled JavaScript output

Empezando

Prerrequisitos

  • Node.js (v18 o posterior)

  • npm o hilo

Instalación

Clonar el repositorio e instalar las dependencias:

git clone https://github.com/yourusername/mcp-server-boilerplate.git cd mcp-server-boilerplate npm install

Variables de entorno

Copie el archivo de entorno de ejemplo y modifíquelo según sea necesario:

cp .env.example .env

Variables de entorno disponibles:

  • PORT : El puerto para el servidor HTTP (predeterminado: 3000)

  • NODE_ENV : Modo de entorno (desarrollo, producción)

  • Configuración de OAuth (si es necesario)

Ejecución del servidor

Servidor HTTP

Construya e inicie el servidor HTTP:

npm run build npm start

Para desarrollo con reinicio automático:

npm run dev

El servidor estará disponible en http://localhost:3000/mcp (o el puerto especificado en su archivo .env).

Modo estudio

Para ejecutar el servidor en modo stdio (para herramientas de línea de comandos):

npm run start:stdio

Para desarrollo con reinicio automático:

npm run dev:stdio

Recursos

El texto estándar incluye estos recursos de ejemplo:

  1. Recurso de información estática : info://server

    • Proporciona información básica sobre el servidor.

  2. Recurso de saludo dinámico : greeting://{name}

    • Genera un saludo personalizado con el parámetro de nombre proporcionado

Para acceder a los recursos:

  • A través del protocolo MCP

  • Uso de una biblioteca de cliente MCP

Herramientas

El código estándar incluye estas herramientas de ejemplo:

  1. Calculadora : Realiza operaciones aritméticas básicas

    • Parámetros:

      • operation : Operación a realizar (sumar, restar, multiplicar, dividir)

      • a : Primer número

      • b : Segundo número

  2. Marca de tiempo : proporciona la hora actual en varios formatos

    • Parámetros:

      • format : Formato de salida (iso, unix, legible)

Indicaciones

El texto estándar incluye estos ejemplos:

  1. Saludo : crea un mensaje de saludo personalizado

    • Parámetros:

      • name : Nombre para saludar

      • formal : si se debe utilizar el estilo de saludo formal (opcional)

  2. Analizar datos : crea una solicitud para el análisis de datos

    • Parámetros:

      • data : Los datos a analizar

      • format : Formato de datos (json, csv, texto)

      • instructions : Instrucciones de análisis adicionales (opcional)

Ampliación del servidor

Añadiendo recursos

Para agregar un nuevo recurso:

  1. Crea un nuevo archivo en src/resources/ (por ejemplo, myResource.ts )

  2. Implemente su controlador de recursos

  3. Regístrelo en src/resources/index.ts

Ejemplo:

// myResource.ts import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; export function myResource(server: McpServer): void { server.resource('my-resource', 'my-resource://path', async uri => ({ contents: [ { uri: uri.href, text: 'My resource content', }, ], })); } // Then add to resources/index.ts import { myResource } from './myResource.js'; export function registerResources(server: McpServer): void { // ...existing resources myResource(server); }

Agregar herramientas

Para agregar una nueva herramienta:

  1. Crea un nuevo archivo en src/tools/ (por ejemplo, myTool.ts )

  2. Implemente su controlador de herramientas

  3. Regístrelo en src/tools/index.ts

Ejemplo:

// myTool.ts import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { z } from 'zod'; export function myTool(server: McpServer): void { server.tool('my-tool', { param: z.string() }, async ({ param }) => ({ content: [ { type: 'text', text: `Processed: ${param}`, }, ], })); } // Then add to tools/index.ts import { myTool } from './myTool.js'; export function registerTools(server: McpServer): void { // ...existing tools myTool(server); }

Agregar indicaciones

Para agregar un nuevo mensaje:

  1. Crea un nuevo archivo en src/prompts/ (por ejemplo, myPrompt.ts )

  2. Implemente su controlador de indicaciones

  3. Regístrelo en src/prompts/index.ts

Ejemplo:

// myPrompt.ts import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { z } from 'zod'; export function myPrompt(server: McpServer): void { server.prompt('my-prompt', { topic: z.string() }, ({ topic }) => ({ messages: [ { role: 'user', content: { type: 'text', text: `Please explain ${topic} in simple terms.`, }, }, ], })); } // Then add to prompts/index.ts import { myPrompt } from './myPrompt.js'; export function registerPrompts(server: McpServer): void { // ...existing prompts myPrompt(server); }

Pruebas y depuración

Para probar su servidor MCP, puede utilizar:

  • La herramienta Inspector de MCP

  • Bibliotecas de cliente MCP

  • Solicitudes HTTP directas (para depuración)

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Deploy Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.
    Last updated -
    3
    21
    62
    Apache 2.0
  • A
    security
    A
    license
    A
    quality
    An educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server for integrating with various LLM clients like Claude Desktop.
    Last updated -
    1
    145
    MIT License
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server designed to easily dump your codebase context into Large Language Models (LLMs).
    Last updated -
    366
    1
    54
    3
    Apache 2.0
  • -
    security
    A
    license
    -
    quality
    An educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server integrating with various LLM clients.
    Last updated -
    2
    MIT License

View all related MCP servers

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/cds-id/mcp-server-boilerplate'

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