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:
{
"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:
{
"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:
{
"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:
{
"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:
{
"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:
{
"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:
{
"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:
// 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
{
"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:
{
"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.