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
- Instale o uv
- Clone este repositório ou baixe o código-fonte
- Execute
uv run mcp installpara instalar o servidor MCP - Execute
which uvpara obter um caminho absoluto para o executáveluv - 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
- Abra o Claude Desktop
- 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
- langchain-mcp-adapters: Use MCP com LangChain
- MCP-Bridge: Mapeie ferramentas MCP para o formato da OpenAI
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