Construyamos un servidor MCP de TypeScript y conectémonos a Claude Desktop

Desbloquea el potencial de Claude creando un servidor MCP en TypeScript. Aprende a registrarlo con Claude Desktop e integrar herramientas como Brave Search para una interacción IA más rica.

Daniel Costa

Daniel Costa

15 April 2025

Construyamos un servidor MCP de TypeScript y conectémonos a Claude Desktop

Los modelos de lenguaje grandes (LLM, por sus siglas en inglés) como Claude de Anthropic son cada vez más capaces, pero para desbloquear completamente su potencial, necesitan acceso a un contexto externo enriquecido. Aquí es donde entra en juego el Protocolo de Contexto del Modelo (MCP): una forma estandarizada para que las herramientas, aplicaciones y servicios comuniquen el contexto a los LLM. En este artículo, te guiaremos a través de la creación de un servidor MCP en TypeScript, exploraremos cómo interactúa con los clientes y demostraremos cómo conectarlo a Claude Desktop.

💡
Antes de entrar en detalles, echa un vistazo a Apidog: una herramienta potente para diseñar, probar y documentar API. Apidog te permite integrar tus API sin problemas, mejorando tu flujo de trabajo con modelos estructurados y una fácil colaboración. Si buscas impulsar tu automatización y gestión de API.
button

¿Qué es el Protocolo de Contexto del Modelo (MCP)?

El Protocolo de Contexto del Modelo es un protocolo universal que define cómo las aplicaciones LLM (hosts), los servidores y los clientes intercambian datos. MCP permite la integración modular basada en herramientas con fuentes de datos locales o en línea de una manera escalable y estructurada. Es especialmente útil en entornos LLM basados en escritorio, como Claude Desktop o Sourcegraph Cody.

A un alto nivel, el protocolo incluye:


¿Por qué usar MCP?

Los métodos tradicionales como copiar y pegar o codificar el contexto son torpes y limitados. MCP resuelve estos problemas al permitir:

Esta modularidad permite a los desarrolladores crear herramientas potentes con reconocimiento de contexto que pueden interactuar con los LLM en tiempo real.


Requisitos previos

Para crear un servidor TypeScript MCP y conectarlo a Claude Desktop, necesitarás:

Claude Desktop

MCP TypeScript SDK


Paso 1: Configurar tu proyecto

Comienza configurando un proyecto Node.js:

mkdir mcp-ts-server
cd mcp-ts-server
npm init -y
npm install typescript ts-node @modelcontextprotocol/server-core
npx tsc --init

Crea un directorio src/ y, dentro de él, añade tu archivo de punto de entrada, p. ej., index.ts.


Paso 2: Crear tu servidor MCP en TypeScript

Vamos a crear un servidor MCP simple que proporcione una "herramienta" para saludar a los usuarios.

Aquí está la estructura básica:

import { createServer, Server } from '@modelcontextprotocol/server-core';

const server: Server = createServer();

const GREETING_TOOL = {
  name: 'greet_user',
  description: 'Returns a friendly greeting message.',
  inputSchema: {
    type: 'object',
    properties: {
      name: { type: 'string', description: 'Name of the user' }
    },
    required: ['name']
  }
};

// Register tool
server.setRequestHandler('ListTools', async () => {
  return { tools: [GREETING_TOOL] };
});

// Handle tool call
server.setRequestHandler('CallTool', async (request) => {
  const args = request.args;
  const name = args.name || 'there';
  return {
    content: [{ type: 'text', text: `Hello, ${name}! Welcome to MCP.` }],
    isError: false
  };
});

// Start server
server.listen();

Ahora puedes compilar y ejecutar esto con:

npx ts-node src/index.ts

Paso 3: Registrar tu servidor con Claude Desktop

Cada servidor MCP necesita un URI único. Por ejemplo:

tool://greet_user/greet_user

Cuando Claude Desktop se inicializa, puede descubrir el servidor a través de un transporte Stdio. Esto significa que tu servidor se comunica a través de la entrada/salida estándar (stdin/stdout) en lugar de HTTP o sockets.


Paso 4: Conectar el servidor MCP a Claude Desktop

En Claude Desktop:

npx ts-node src/index.ts

Claude Desktop iniciará la comunicación utilizando JSON-RPC 2.0 a través de stdin/stdout, y tu servidor deberá responder con la lista de herramientas que admite.

¡Por supuesto! Aquí tienes una versión reescrita de la sección de configuración de Claude Desktop que puedes insertar directamente en tu artículo:

Usar Claude Desktop para probar tu servidor MCP

La aplicación Claude Desktop es uno de los entornos más fáciles para probar las integraciones de MCP localmente.

Para configurarlo manualmente para que inicie tu servidor MCP, sigue estos pasos:

Abre o crea el archivo en:

~/Library/Application Support/Claude/claude_desktop_config.json
noconfig.json

Añade la siguiente configuración JSON, reemplazando los detalles según sea necesario para tu herramienta:

{
  "mcpServers": {
    "brave_search": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your-api-key"
      }
    }
  }
}

Esto le dice a Claude Desktop que:

Una vez reiniciado, puedes pedirle a Claude Desktop que use tu nueva herramienta. Por ejemplo:

"Busca en la web glama.ai"

Si es la primera vez que usas MCP, Claude te pedirá permiso a través de un cuadro de diálogo emergente. Haz clic en "Permitir para este chat" para continuar.

Después de eso, Claude activará tu servidor MCP y transmitirá los resultados directamente en la conversación.

Mejora tu automatización de IA con la integración del servidor Apidog MCP
Lleva tus flujos de trabajo impulsados por IA aún más lejos integrándote con el Servidor Apidog MCP.

Esta potente conexión permite a tu asistente de IA interactuar directamente con las especificaciones de la API de los proyectos de Apidog, lo que permite una exploración perfecta de la API, la generación de código y la creación de modelos estructurados.

Ya sea que estés creando una herramienta de saludo simple o integrando servicios avanzados como la búsqueda web, crear tu propio servidor MCP en TypeScript te da control total sobre cómo Claude accede y procesa el contexto externo, desbloqueando experiencias de IA más inteligentes e interactivas.

Descripción general del flujo de mensajes

Esto es lo que sucede internamente:

1. Inicialización

Claude (como host) envía una solicitud de inicialización con la versión y las capacidades del protocolo admitidas.

2. Negociación de capacidades

Tu servidor responde con sus propias capacidades, y el cliente confirma la preparación con una notificación de inicializado.

3. Descubrimiento de herramientas

Claude envía una solicitud ListTools. Tu servidor devuelve una lista de definiciones de herramientas, incluidos los esquemas de entrada.

4. Llamada a la herramienta

Cuando el usuario activa la herramienta (p. ej., escribiendo "saluda a Juan"), Claude envía una solicitud CallTool con argumentos.

Tu servidor la procesa y devuelve un mensaje de resultado con el contenido de la respuesta.


Paso 5: Ampliar tu ecosistema de herramientas

Una vez que tu servidor esté funcionando, puedes ampliar sus capacidades:

Por ejemplo, aquí hay un fragmento de una integración del servidor Brave Search:

const WEB_SEARCH_TOOL = {
  name: 'brave_web_search',
  description: 'Search the web using Brave.',
  inputSchema: {
    type: 'object',
    properties: {
      query: { type: 'string' },
      count: { type: 'number', default: 10 }
    },
    required: ['query']
  }
};

Opciones de transporte

Si bien Stdio es mejor para las pruebas locales, MCP también admite:

Todos usan JSON-RPC 2.0 para la codificación de mensajes.


Herramientas de depuración y prueba

Puedes probar tu servidor MCP con la herramienta de código abierto Inspector:

git clone https://github.com/modelcontextprotocol/inspector

Permite el rastreo de mensajes, la simulación de solicitudes y la depuración de los comportamientos de las herramientas.


Casos de uso del mundo real

Algunos de los primeros usuarios de MCP incluyen:

Estas herramientas demuestran el poder de MCP tanto en entornos fuera de línea como en línea, lo que facilita a los desarrolladores personalizar cómo la IA comprende su contexto.

Conclusión

MCP es un paso adelante poderoso para brindar estructura, escalabilidad y modularidad a la forma en que los LLM interactúan con las herramientas y los datos. Ya sea que estés creando un asistente personal, un ayudante de IDE o una canalización de datos, MCP ofrece un estándar a prueba de futuro para conectar capacidades externas.

Siguiendo esta guía, has aprendido cómo:

Para los desarrolladores que crean la próxima generación de aplicaciones mejoradas con IA, dominar MCP es un paso esencial.

Lecturas y recursos adicionales

Explore more

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

15 April 2025

Cómo usar n8n con servidores MCP

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

14 April 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

11 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs