Skip to content

Configuración de MCP

El Protocolo de Contexto de Modelo (MCP, por sus siglas en inglés) permite a Sidian conectarse a herramientas y servicios externos, ampliando las capacidades de la IA más allá de la edición de código. Esta guía cubre cómo configurar y gestionar los servidores MCP.

¿Qué es MCP?

MCP es un protocolo estandarizado que permite a los asistentes de IA conectarse de forma segura a herramientas y fuentes de datos externas.

Capacidades

  • Operaciones del sistema de archivos
  • Gestión de repositorios Git
  • Consultas a bases de datos
  • Integraciones de API
  • Almacenamiento de memoria y contexto

Beneficios

  • Ejecución segura en un entorno aislado (sandbox)
  • Protocolo estandarizado
  • Arquitectura extensible
  • Servidores impulsados por la comunidad
  • Configuración sencilla

Ubicación de la Configuración

Sidian lee la configuración de MCP desde la siguiente ubicación:

Archivo de Configuración

  • Windows: C:\Users\{TuUsuario}\.sidian\mcp.json
  • macOS: ~/.sidian/mcp.json
  • Linux: ~/.sidian/mcp.json

Configuración Básica

El archivo de configuración de MCP utiliza el formato JSON con la siguiente estructura:

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/workspace"],
      "env": {}
    },
    "git": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/path/to/your/git/repository"],
      "env": {}
    },
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"],
      "env": {}
    }
  }
}

Servidores MCP Populares

Aquí hay algunos servidores MCP de uso común y sus configuraciones:

Servidor de Sistema de Archivos

Proporciona acceso al sistema de archivos para leer, escribir y gestionar archivos:

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/workspace"],
      "env": {}
    }
  }
}

Servidor Git

Habilita operaciones de Git y la gestión de repositorios:

json
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "/path/to/your/git/repo"],
      "env": {}
    }
  }
}```

### Servidor de Memoria
Proporciona memoria persistente para las conversaciones de la IA:

```json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"],
      "env": {}
    }
  }
}

Servidor de Base de Datos

Se conecta a bases de datos para consultas y operaciones:

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

Configuración Avanzada

Variables de Entorno

Establece variables de entorno para los servidores MCP:

json
{
  "mcpServers": {
    "custom-server": {
      "command": "node",
      "args": ["/path/to/custom-server.js"],
      "env": {
        "API_KEY": "your-api-key",
        "DEBUG": "true",
        "TIMEOUT": "30000"
      }
    }
  }
}

Opciones del Servidor

Configura opciones específicas del servidor:

json
{
  "mcpServers": {
    "web-server": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-web"],
      "options": {
        "timeout": 30000,
        "retries": 3,
        "logLevel": "info"
      }
    }
  }
}

Configuración Condicional

Usa diferentes configuraciones según el entorno:

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "        "${SIDIAN_PROJECT_ROOT:-/default/path}""
      ]
    }
  }
}

Consideraciones de Seguridad

Entorno Aislado (Sandboxing)

  • Los servidores MCP se ejecutan en procesos aislados.
  • Acceso limitado a los recursos del sistema.
  • Límites de permisos configurables.
  • Registro de auditoría para todas las operaciones.

Control de Acceso

  • Añadir a la lista blanca (whitelist) los directorios y archivos permitidos.
  • Restringir el acceso a la red.
  • Limitar la ejecución de comandos.
  • Monitorear el uso de recursos.

Mejores Prácticas

  • Usa los permisos mínimos necesarios.
  • Actualiza regularmente los paquetes del servidor MCP.
  • Monitorea los registros del servidor en busca de actividad sospechosa.
  • Usa variables de entorno para datos sensibles.

Solución de Problemas

El Servidor no Inicia

  • Verifica si Node.js está instalado y accesible.
  • Verifica que el paquete del servidor esté instalado: npm list -g
  • Revisa la sintaxis del archivo de configuración de MCP.
  • Busca mensajes de error específicos en los registros del servidor.
  • Intenta ejecutar manualmente el comando del servidor en la terminal.

Errores de Permisos

  • Asegúrate de que Sidian tenga acceso de lectura/escritura a los directorios configurados.
  • Verifica los permisos del sistema de archivos en las carpetas del proyecto.
  • Ejecuta Sidian como administrador si es necesario (Windows).
  • Verifica que el archivo de configuración de MCP se pueda leer.

El Servidor se Cierra Inesperadamente

  • Actualiza el paquete del servidor MCP a la última versión.
  • Busca versiones conflictivas de Node.js.
  • Aumenta los valores de tiempo de espera (timeout) en la configuración.
  • Monitorea los recursos del sistema (CPU, memoria).
  • Revisa los registros del servidor en busca de patrones de error.

Problemas de Rendimiento

  • Reduce el número de servidores MCP activos.
  • Optimiza las configuraciones del servidor.
  • Usa servidores locales en lugar de remotos.
  • Monitorea la latencia de red para los servidores remotos.
  • Considera estrategias de almacenamiento en caché (caching).

Servidores MCP Personalizados

Creación de Servidores Personalizados

Puedes crear servidores MCP personalizados para necesidades específicas:

javascript
// custom-server.js
const { Server } = require('@modelcontextprotocol/sdk/server/index.js');
const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio.js');

const server = new Server({
  name: 'custom-server',
  version: '1.0.0'
});

// Añade aquí tus herramientas y recursos personalizados
server.setRequestHandler('tools/list', async () => {
  return {
    tools: [
      {
        name: 'custom-tool',
        description: 'A custom tool for specific operations',
        inputSchema: {
          type: 'object',
          properties: {
            input: { type: 'string' }
          }
        }
      }
    ]
  };
});

const transport = new StdioServerTransport();
server.connect(transport);

Configuración para un Servidor Personalizado

json
{
  "mcpServers": {
    "custom": {
      "command": "node",
      "args": ["/path/to/custom-server.js"]
    }
  }
}

Monitoreo y Registros

Estado del Servidor

Monitorea el estado del servidor MCP en Sidian:

  • Verifica el estado de la conexión del servidor en la configuración.
  • Consulta los registros del servidor en el panel de salida.
  • Monitorea el uso de recursos.
  • Realiza un seguimiento de las tasas de error y el rendimiento.

Depuración (Debugging)

Habilita el registro de depuración para solucionar problemas:

json
{
  "mcpServers": {
    "debug-server": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"],
      "env": {
        "DEBUG": "*",
        "LOG_LEVEL": "debug"
      }
    }
  }
}

La configuración de MCP te permite ampliar significativamente las capacidades de IA de Sidian. Comienza con servidores básicos y añade gradualmente configuraciones más complejas según sea necesario.