MCP Tools

Fornece ferramentas de sistema de arquivos e execução de comandos para clientes LLM como Claude Desktop.

Documentação

MCP Tools

Uma implementação personalizada de servidor Model Context Protocol (MCP) que fornece ferramentas de sistema de arquivos e execução de comandos para o Claude Desktop e outros clientes de LLM.

O que é o Model Context Protocol?

O Model Context Protocol (MCP) é um protocolo aberto que padroniza como aplicações fornecem contexto para Modelos de Linguagem de Grande Escala (LLMs). Assim como uma porta USB-C fornece uma maneira padronizada de conectar dispositivos a vários periféricos, o MCP fornece uma maneira padronizada de conectar modelos de IA a diferentes fontes de dados e ferramentas.

Este projeto implementa um servidor FastMCP com várias ferramentas úteis que permitem ao Claude e outros LLMs interagir com seu sistema de arquivos local e executar comandos. Ele estende as capacidades dos LLMs com acesso ao sistema local de forma controlada, por meio de interfaces de ferramentas bem definidas.

Principais Benefícios do MCP

  • Integração Padronizada: O MCP fornece uma lista crescente de integrações pré-construídas às quais seu LLM pode se conectar diretamente
  • Flexibilidade de Fornecedores: Alterne facilmente entre fornecedores e provedores de LLM (Claude, GPT-4o, Gemini, etc.)
  • Segurança: Melhores práticas para proteger seus dados dentro da sua infraestrutura
  • Exposição de Ferramentas: Encapsule ferramentas existentes e torne-as acessíveis a qualquer cliente LLM compatível com MCP

Recursos

O servidor MCP fornece as seguintes ferramentas de sistema de arquivos e execução de comandos:

  • execute_shell_command: Execute comandos de shell e obtenha resultados de stdout/stderr
  • show_file: Visualize o conteúdo de arquivos com especificação opcional de intervalo de linhas
  • search_in_file: Pesquise padrões em arquivos usando expressões regulares
  • edit_file: Faça alterações precisas em arquivos com substituições de strings e operações de linha
  • write_file: Escreva ou acrescente conteúdo a arquivos

Arquitetura MCP

O MCP segue uma arquitetura cliente-servidor:

  • Hosts: Aplicações de LLM (como Claude Desktop ou IDEs) que iniciam conexões
  • Clientes: Mantêm conexões 1:1 com servidores, dentro da aplicação host
  • Servidores: Fornecem contexto, ferramentas e prompts aos clientes (este projeto implementa um servidor)

Pré-requisitos

  • Python 3.10 ou superior
  • Um cliente compatível com MCP (Claude Desktop ou qualquer outro cliente que suporte MCP)

Instalação

  1. Instale o uv
  2. Clone este repositório ou baixe o código-fonte
  3. Execute uv run mcp install para instalar o servidor MCP
  4. Execute which uv para obter um caminho absoluto para o executável uv
  5. Atualize sua configuração do servidor MCP no Claude Desktop para usar o caminho absoluto para o executável uv

Minha configuração do servidor MCP fica assim:

{
  "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

Conectando-se pelo Claude Desktop

  1. Abra o Claude Desktop
  2. Conecte-se ao servidor MCP usando o identificador "zbigniew-mcp"

Nota: Embora esta implementação foque no Claude Desktop, o MCP foi projetado para ser compatível com qualquer ferramenta ou cliente LLM compatível com MCP, proporcionando flexibilidade na implementação e integração.

Ferramentas Disponíveis

execute_shell_command

Execute comandos de shell com segurança usando uma 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

Visualize o conteúdo de arquivos com especificação opcional de intervalo de linhas:

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

Pesquise padrões em arquivos usando expressões 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

Faça alterações precisas em arquivos:

# 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

Escreva ou acrescente conteúdo a arquivos:

# 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

Busque o conteúdo de uma página da web para um PDF (requer chromium instalado) e depois o analise para markdown usando LLMs locais:

fetch_page("https://example.com")

Mecanismos de Transporte

O MCP suporta vários métodos de transporte para comunicação entre clientes e servidores:

  • Entrada/Saída Padrão (stdio): Usa entrada/saída padrão para comunicação, ideal para processos locais
  • Server-Sent Events (SSE): Permite streaming do servidor para o cliente com requisições HTTP POST para comunicação do cliente para o servidor

Esta implementação usa um servidor MCP local que se comunica via entrada/saída de texto.

Estendendo com Suas Próprias Ferramentas

Você pode facilmente estender este servidor MCP adicionando novas ferramentas com o decorador @mcp.tool. Siga o padrão em server.py para criar novas ferramentas que exponham funcionalidades adicionais aos seus clientes LLM.

Projetos Relacionados

Considerações de Segurança

O servidor MCP fornece ao Claude acesso ao seu sistema local. Esteja ciente do seguinte:

  • O servidor executa comandos de shell como seu usuário
  • Ele pode ler, escrever e modificar arquivos no seu sistema
  • Considere limitar o acesso a diretórios específicos se a segurança for uma preocupação