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

  1. Instala uv
  2. Clona este repositorio o descarga el código fuente
  3. Ejecuta uv run mcp install para instalar el servidor MCP
  4. Ejecuta which uv para obtener una ruta absoluta al ejecutable uv
  5. 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

  1. Abre Claude Desktop
  2. 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

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