DEV Community

Construyendo un Servidor MCP: Conectando Claude y VSCode a Herramientas Externas

Introducción

El Protocolo de Contexto de Modelo (MCP) es un protocolo abierto revolucionario desarrollado por Anthropic que permite a asistentes de IA como Claude conectarse con fuentes de datos externas y herramientas. En este artículo, te guiaré a través de la construcción de tu propio servidor MCP que puede ser utilizado con Claude Desktop, VSCode y otros clientes compatibles.

¿Qué es MCP?

MCP proporciona una forma estandarizada para que los asistentes de IA interactúen con sistemas externos. Piensa en él como un adaptador universal que permite a Claude:

  • Acceder a bases de datos y APIs
  • Leer y escribir archivos
  • Ejecutar comandos
  • Interactuar con servicios web

El protocolo define una arquitectura cliente-servidor donde:

  • Clientes MCP (como Claude Desktop o VSCode) se conectan a servidores
  • Servidores MCP exponen capacidades específicas (recursos, herramientas y prompts)
  • La comunicación ocurre a través de JSON-RPC 2.0 sobre stdio o HTTP

Descripción General de la Arquitectura

Un servidor MCP consta de tres componentes principales:

1. Recursos

Los recursos son fuentes de datos que el servidor puede proporcionar a los clientes. Pueden ser:

  • Archivos de un sistema de archivos
  • Registros de bases de datos
  • Respuestas de APIs
  • Flujos de datos en tiempo real

2. Herramientas

Las herramientas son funciones que el cliente puede invocar a través del servidor:

  • Ejecutar comandos del sistema
  • Realizar cálculos
  • Interactuar con APIs externas
  • Manipular datos

3. Prompts

Los prompts son plantillas predefinidas que ayudan a estructurar las interacciones:

  • Plantillas de consultas
  • Patrones de comandos
  • Instrucciones de flujo de trabajo

Construyendo tu Primer Servidor MCP

Construyamos un servidor MCP simple paso a paso. Para este ejemplo, usaré Python, pero los servidores MCP pueden construirse en cualquier lenguaje.

Requisitos Previos

pip install mcp
Enter fullscreen mode Exit fullscreen mode

Estructura Básica del Servidor

from mcp.server import Server
from mcp.types import Resource, Tool
import asyncio

app = Server("my-mcp-server")

@app.list_resources()
async def list_resources() -> list[Resource]:
    return [
        Resource(
            uri="file:///example.txt",
            name="Archivo de Ejemplo",
            mimeType="text/plain"
        )
    ]

@app.read_resource()
async def read_resource(uri: str) -> str:
    if uri == "file:///example.txt":
        return "¡Hola desde el Servidor MCP!"
    raise ValueError(f"Recurso desconocido: {uri}")

@app.list_tools()
async def list_tools() -> list[Tool]:
    return [
        Tool(
            name="saludar",
            description="Saludar a alguien por su nombre",
            inputSchema={
                "type": "object",
                "properties": {
                    "nombre": {"type": "string"}
                },
                "required": ["nombre"]
            }
        )
    ]

@app.call_tool()
async def call_tool(name: str, arguments: dict) -> str:
    if name == "saludar":
        return f"¡Hola, {arguments['nombre']}!"
    raise ValueError(f"Herramienta desconocida: {name}")

if __name__ == "__main__":
    asyncio.run(app.run())
Enter fullscreen mode Exit fullscreen mode

Conectando a Claude Desktop

Para usar tu servidor MCP con Claude Desktop, necesitas configurarlo en la configuración de Claude:

  1. Abre la configuración de Claude Desktop
  2. Navega a la sección "Developer"
  3. Agrega la configuración de tu servidor:
{
  "mcpServers": {
    "mi-servidor": {
      "command": "python",
      "args": ["ruta/a/tu/servidor.py"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode
  1. Reinicia Claude Desktop
  2. Las herramientas y recursos de tu servidor ahora estarán disponibles para Claude

Conectando a VSCode

Para la integración con VSCode, puedes usar la extensión MCP:

  1. Instala la extensión MCP desde el marketplace
  2. Configura tu servidor en .vscode/mcp.json:
{
  "servers": [
    {
      "name": "mi-servidor",
      "command": "python",
      "args": ["ruta/a/tu/servidor.py"]
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Casos de Uso del Mundo Real

Aquí hay algunas aplicaciones prácticas para servidores MCP:

Acceso a Bases de Datos

Crea un servidor que permita a Claude consultar tus bases de datos de forma segura:

@app.list_tools()
async def list_tools():
    return [Tool(name="consultar_bd", description="Ejecutar consultas SQL")]
Enter fullscreen mode Exit fullscreen mode

Operaciones del Sistema de Archivos

Construye un servidor que gestione archivos de proyecto:

@app.list_resources()
async def list_resources():
    return [Resource(uri=f"file:///{archivo}") for archivo in os.listdir()]
Enter fullscreen mode Exit fullscreen mode

Integración con APIs

Conecta Claude a APIs externas:

@app.call_tool()
async def call_tool(name, args):
    if name == "obtener_datos":
        response = await http_client.get(args['url'])
        return response.json()
Enter fullscreen mode Exit fullscreen mode

Mejores Prácticas

  1. Seguridad Primero: Siempre valida las entradas y sanitiza las salidas
  2. Manejo de Errores: Proporciona mensajes de error claros
  3. Documentación: Documenta tus herramientas y recursos exhaustivamente
  4. Rendimiento: Usa async/await para operaciones de I/O
  5. Pruebas: Prueba tu servidor con diferentes clientes

Repositorio de Ejemplo

Puedes encontrar un ejemplo completo y funcional en mi repositorio de GitHub:

Repositorio: https://github.com/renzoloyola/MCP-Server

Este repositorio incluye:

  • Implementación básica del servidor MCP
  • Ejemplos de configuración para Claude y VSCode
  • Documentación e instrucciones de configuración
  • Casos de uso de ejemplo

Conclusión

Construir servidores MCP abre posibilidades infinitas para extender las capacidades de los asistentes de IA. Ya sea que te estés conectando a bases de datos, sistemas de archivos o APIs externas, MCP proporciona una forma estandarizada y poderosa de hacer que tus datos y herramientas sean accesibles para la IA.

El Protocolo de Contexto de Modelo sigue evolucionando, y el ecosistema está creciendo rápidamente. Al crear tus propios servidores MCP, puedes personalizar Claude y otros clientes compatibles para que se ajusten a tus necesidades y flujos de trabajo específicos.

Recursos


¿Has construido un servidor MCP? ¡Comparte tu experiencia en los comentarios!

Top comments (0)