MCP Tools
Proporciona herramientas de sistema de archivos y ejecución de comandos para clientes LLM como Claude Desktop.
Documentación
MCP Tools
Una implementación personalizada de un servidor del Protocolo de Contexto de Modelos (MCP) que proporciona herramientas de sistema de archivos y ejecución de comandos para Claude Desktop y otros clientes de LLM.
¿Qué es el Protocolo de Contexto de Modelos?
El Protocolo de Contexto de Modelos (MCP) es un protocolo abierto que estandariza cómo las aplicaciones proporcionan contexto a los Modelos de Lenguaje de Gran Escala (LLMs). De manera similar a cómo un puerto USB-C proporciona una forma estandarizada de conectar dispositivos a varios periféricos, MCP proporciona una forma estandarizada de conectar modelos de IA a diferentes fuentes de datos y herramientas.
Este proyecto implementa un servidor FastMCP con varias herramientas útiles que permiten a Claude y otros LLMs interactuar con tu sistema de archivos local y ejecutar comandos. Extiende las capacidades de los LLMs con acceso al sistema local de manera controlada a través de interfaces de herramientas bien definidas.
Beneficios Clave de MCP
- Integración Estandarizada: MCP proporciona una lista creciente de integraciones preconstruidas a las que tu LLM puede conectarse directamente
- Flexibilidad de Proveedores: Cambia fácilmente entre proveedores y vendedores de LLM (Claude, GPT-4o, Gemini, etc.)
- Seguridad: Mejores prácticas para asegurar tus datos dentro de tu infraestructura
- Exposición de Herramientas: Encapsula herramientas existentes y hazlas accesibles a cualquier cliente LLM compatible con MCP
Características
El servidor MCP proporciona las siguientes herramientas de sistema de archivos y ejecución de comandos:
- execute_shell_command: Ejecuta comandos de shell y obtén resultados de stdout/stderr
- show_file: Ve el contenido de archivos con especificación opcional de rango de líneas
- search_in_file: Busca patrones en archivos usando expresiones regulares
- edit_file: Realiza cambios precisos en archivos con reemplazos de cadenas y operaciones de líneas
- write_file: Escribe o agrega contenido a archivos
Arquitectura MCP
MCP sigue una arquitectura cliente-servidor:
- Hosts: Aplicaciones LLM (como Claude Desktop o IDEs) que inician conexiones
- Clientes: Mantienen conexiones 1:1 con servidores, dentro de la aplicación host
- Servidores: Proporcionan contexto, herramientas y avisos a los clientes (este proyecto implementa un servidor)
Requisitos Previos
- Python 3.10 o superior
- Un cliente compatible con MCP (Claude Desktop, o cualquier otro cliente que soporte MCP)
Instalación
- Instala uv
- Clona este repositorio o descarga el código fuente
- Ejecuta
uv run mcp installpara instalar el servidor MCP - Ejecuta
which uvpara obtener una ruta absoluta al ejecutableuv - Actualiza tu configuración del servidor MCP en Claude Desktop para usar la ruta absoluta al ejecutable
uv
Mi configuración del servidor MCP se ve así:
{
"globalShortcut": "",
"mcpServers": {
"zbigniew-mcp": {
"command": "/Users/zbigniewtomanek/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"marker-pdf",
"mcp",
"run",
"/Users/zbigniewtomanek/PycharmProjects/my-mcp-tools/server.py"
]
}
}
}
Uso
Conexión desde Claude Desktop
- Abre Claude Desktop
- Conéctate al servidor MCP usando el identificador "zbigniew-mcp"
Nota: Aunque esta implementación se centra en Claude Desktop, MCP está diseñado para ser compatible con cualquier herramienta o cliente LLM compatible con MCP, proporcionando flexibilidad en la implementación e integración.
Herramientas Disponibles
execute_shell_command
Ejecuta comandos de shell de manera segura usando una lista de argumentos:
execute_shell_command(["ls", "-la"])
execute_shell_command(["grep", "-r", "TODO", "./src"])
execute_shell_command(["python", "analysis.py", "--input", "data.csv"])
execute_shell_command(["uname", "-a"])
show_file
Ve el contenido de archivos con especificación opcional de rango de líneas:
show_file("/path/to/file.txt")
show_file("/path/to/file.txt", num_lines=10)
show_file("/path/to/file.txt", start_line=5, num_lines=10)
search_in_file
Busca patrones en archivos usando expresiones regulares:
search_in_file("/path/to/script.py", r"def\s+\w+\s*\(")
search_in_file("/path/to/code.py", r"#\s*TODO", case_sensitive=False)
edit_file
Realiza cambios precisos en archivos:
# Replace text
edit_file("config.json", replacements={"\"debug\": false": "\"debug\": true"})
# Insert at line 5
edit_file("script.py", line_operations=[{"operation": "insert", "line": 5, "content": "# New comment"}])
# Delete lines 10-15
edit_file("file.txt", line_operations=[{"operation": "delete", "start_line": 10, "end_line": 15}])
# Replace line 20
edit_file("file.txt", line_operations=[{"operation": "replace", "line": 20, "content": "Updated content"}])
write_file
Escribe o agrega contenido a archivos:
# Overwrite file
write_file("/path/to/file.txt", "New content")
# Append to file
write_file("/path/to/log.txt", "Log entry", mode="a")
fetch_page
Obtiene el contenido de una página web a un PDF (requiere chromium instalado) y luego lo analiza a markdown usando LLMs locales:
fetch_page("https://example.com")
Mecanismos de Transporte
MCP soporta múltiples métodos de transporte para la comunicación entre clientes y servidores:
- Entrada/Salida Estándar (stdio): Usa entrada/salida estándar para la comunicación, ideal para procesos locales
- Eventos Enviados por el Servidor (SSE): Habilita la transmisión de servidor a cliente con solicitudes HTTP POST para la comunicación de cliente a servidor
Esta implementación usa un servidor MCP local que se comunica a través de entrada/salida de texto.
Extensión con Tus Propias Herramientas
Puedes extender fácilmente este servidor MCP agregando nuevas herramientas con el decorador @mcp.tool. Sigue el patrón en server.py para crear nuevas herramientas que expongan funcionalidad adicional a tus clientes LLM.
Proyectos Relacionados
- langchain-mcp-adapters: Usa MCP con LangChain
- MCP-Bridge: Mapea herramientas MCP al formato de OpenAI
Consideraciones de Seguridad
El servidor MCP proporciona a Claude acceso a tu sistema local. Ten en cuenta lo siguiente:
- El servidor ejecuta comandos de shell como tu usuario
- Puede leer, escribir y modificar archivos en tu sistema
- Considera limitar el acceso a directorios específicos si la seguridad es una preocupación