OneTool MCP
🧿 Um MCP para desenvolvedores - Sem taxa de ferramentas, sem degradação de contexto. Mais de 100 ferramentas incluindo Brave, Gemini, Context7, Version Checker, Excel, File Ops, Database, Chrome DevTools.
Documentação
🧿 One MCP para desenvolvedores - sem imposto de ferramentas, sem degradação de contexto.
Mais de 250 ferramentas que seu agente chama como código Python: busca, documentação, arquivos, bancos de dados, diagramas, visão, memória - além de um proxy para cada servidor MCP que você já usa.
Funciona com Claude Code, Cursor, Codex - qualquer cliente MCP
O Problema
Todo servidor MCP reenvia suas definições de ferramentas a cada requisição: 3K-30K tokens cada. Conecte 5 servidores e você queimou 55K tokens antes da conversa começar. Conecte 10+ e você está em 100K.
A matemática é brutal: Claude Opus 4.5 a $5/M tokens de entrada, 20 dias × 10 conversas × 10 mensagens × 3K tokens = $30/mês por servidor MCP - mesmo que você nunca use as ferramentas.
E ainda há a degradação de contexto - sua IA literalmente fica mais burra conforme você adiciona mais ferramentas (Chroma Research, 2025).
A Solução
OneTool é um servidor MCP que expõe ferramentas como uma API Python. Em vez de ler definições de ferramentas, seu agente escreve código:
__onetool brave.search(query="react 19 server components")
Configure um servidor MCP. Use ferramentas ilimitadas - ~2K tokens, não importa quantas você adicione.
"Agentes escalam melhor escrevendo código para chamar ferramentas em vez disso. Isso reduz o uso de tokens de 150.000 tokens para 2.000 tokens... uma economia de custo de 98,7%"
97% menos tokens. 30× menor custo. Sem degradação de contexto. (Medido - 47.660 → 1.131 tokens de entrada contra 18 servidores MCP.)
Código É a Interface
Como as ferramentas são funções Python, seu agente faz coisas que o JSON de chamada de ferramenta não consegue: lote, encadeamento, loop, composição.
__onetool
page = webfetch.fetch(url="https://fastmcp.dev/changelog", output_format="markdown")
notes = ot_llm.transform(data=page, prompt="Summarise the breaking changes")
mem.write(topic="deps/fastmcp", content=notes)
Três pacotes, uma requisição. Resultados intermediários fluem entre ferramentas como variáveis - o corpo da página nunca toca sua janela de contexto, e o resumo roda em um modelo barato em vez do seu agente de codificação caro.
Cada chamada é explícita e revisável - __onetool brave.search(query="...") mostra exatamente o que é executado. Sem adivinhação de seleção de ferramentas.
E o runtime é construído para como os agentes realmente digitam:
mem.search(q="auth")funciona - qualquer prefixo de parâmetro inequívoco resolve (q=→query=)wb.draw(...)funciona - pacotes têm aliases curtos (wb,ctx,img)github.listRepositories()funciona em servidores proxy - snake/camel/Pascal todos resolvem- Uma ferramenta com erro de digitação recebe um "você quis dizer", um servidor desconectado nomeia o comando que o corrige
- Resultados superdimensionados voltam como um identificador pesquisável em vez de inundar a janela
Instalação
Bootstrap (instala uv se ausente, instala OneTool, inicializa a configuração, imprime a configuração MCP):
curl -LsSf https://onetool.beycom.online/install.sh | sh # macOS / Linux
irm https://onetool.beycom.online/install.ps1 | iex # Windows (PowerShell)
Ou instale manualmente com uv:
uv tool install 'onetool-mcp[all]' # everything
onetool init --config ~/.onetool
Depois imprima a configuração do cliente MCP pronta para colar, com caminhos absolutos resolvidos, e adicione-a
ao seu cliente (claude-code, claude-desktop, cursor, ou vscode):
onetool init mcp-config --client claude-code # or omit --client for all four
É isso. Todas as 250+ ferramentas funcionam imediatamente.
Verifique: onetool init validate --config ~/.onetool/onetool.yaml
Instale a skill ot-ref no seu agente com vercel-labs/skills - ela ensina as convenções de chamada e inclui um índice pesquisável de cada assinatura de ferramenta:
npx skills add https://github.com/beycom/onetool-mcp --skill ot-ref --agent claude
O Que Está Incluído
| Busca e documentação | Brave, Google-grounded e Tavily (cada um com modos de lote e resposta), documentação de bibliotecas Context7, fetch web com controles de extração |
| Arquivos e dados | Operações de arquivo com limites de caminho, controle completo de Excel, bancos de dados SQL, PDF/Word/PowerPoint → Markdown, ripgrep, versões de pacotes |
| Economia de contexto | Identificadores ctx para saídas grandes, leituras parciais de arquivo (toc/slice), visão de imagem em um modelo barato dedicado (zero tokens do host), delegação de LLM (economia de 10×) |
| Estado persistente | Memória mem com busca semântica e por palavras-chave, histórico e rollback; bases RAG knowledge com enriquecimento de IA; snapshots de projeto localhist com backup Git |
| Visual | Quadro branco Excalidraw ao vivo com DSL compatível com Mermaid e layout automático offline, diagramas Mermaid/PlantUML/D2, modelos de arquitetura → SVG editável no draw.io |
| Runtime | Proxy de servidor MCP com ativar/desativar/reiniciar em tempo de execução, CLI/API direta no processo em execução, skill de agente ot-ref, forja de ferramentas em conversa |
| Confiança | Segredos criptografados com age protegidos pelo keychain do seu SO, validação AST, limites de caminho, sanitização de saída, estatísticas de runtime com economia estimada |
Ferramentas
28 pacotes, 253 ferramentas prontas para uso (console em beta):
| Pacote | Ferramentas | Extra | Descrição |
|---|---|---|---|
arch | generate, validate, bundle_solution, … | [dev] | Modelos de arquitetura → SVG editável no draw.io |
brave | search, news, image, video, search_batch | [util] | Busca web Brave |
chrome_util | highlight_element, guide_user, … | [dev] | Anotações de navegador (Chrome DevTools) |
console (beta) | show, display, list, read, clear | Mensagens para o próximo aplicativo onetool-console | |
context7 | search, doc | [dev] | Documentação de bibliotecas |
convert | pdf, word, powerpoint, excel, auto | [util] | Documentos → Markdown |
db | query, schema, tables, sample | [dev] | Bancos de dados SQL |
diagram | render_diagram, batch_render, get_template, … | [dev] | Mermaid / PlantUML / D2 via Kroki |
excel | read, write, formula, create_table, … (24 ferramentas) | [util] | Controle completo de Excel |
file | read, write, edit, grep, slice, toc, … (16 ferramentas) | [util] | Operações de arquivo com limites de caminho |
ground | search, dev, docs, reddit, search_batch | [util] | Busca Google-grounded com fontes |
knowledge | search, ask, write, related, … (15 ferramentas) | [util] | Bases de conhecimento RAG (busca híbrida) |
localhist | save, diff, restore, autosave_start, … (15 ferramentas) | [dev] | Snapshots de histórico local com backup Git |
mem | write, search, ask, history, rollback, … (31 ferramentas) | [util] | Memória persistente com busca semântica |
ot | help, tools, stats, status, result, … (18 ferramentas) | Introspecção e gerenciamento | |
ot_context (ctx) | write, read, grep, slice, toc, ask, … (13 ferramentas) | Armazenamento de contexto inteligente para saídas grandes | |
ot_forge | create_ext, validate_ext | Estrutura para novos pacotes de ferramentas | |
ot_image (img) | load, ask, clip_ask, summary, … (9 ferramentas) | Visão de imagem via modelo dedicado | |
ot_llm | transform, transform_file | Transformações com LLM | |
ot_secrets | set, encrypt, audit, rotate, … (8 ferramentas) | Gerenciamento de segredos criptografados | |
ot_servers | enable, disable, restart, status | Controle de runtime de servidores proxy | |
ot_timer | start, stop, elapsed, list, clear | Temporizadores nomeados | |
package | pypi, npm, version, audit, models | [dev] | Versões de pacotes e desatualização |
play_util | highlight_element, guide_user, … | [dev] | Anotações de navegador (Playwright) |
ripgrep | search, count, files, types | [dev] | Busca rápida de código |
tavily | search, research, extract, search_batch, … | [util] | Busca e extração nativas de IA |
webfetch | fetch, fetch_batch | [dev] | Extração de conteúdo web |
whiteboard (wb) | open, draw, layout, screenshot, … (22 ferramentas) | [util] | Canvas Excalidraw ao vivo |
📖 Referência completa de ferramentas — cada assinatura, gerada a partir do código-fonte
Proxy de Servidor MCP
Mantenha os servidores MCP que você já usa. Envolva-os em YAML e chame-os explicitamente - como namespaces Python, sem o imposto de ferramentas deles:
# .onetool/onetool.yaml
servers:
local_tools:
type: stdio
command: npx
args: ["-y", "some-mcp-server@latest"]
private_api:
type: http
url: ${PRIVATE_MCP_URL}
auth:
type: bearer
token: ${PRIVATE_MCP_TOKEN}
__onetool private_api.read_resource(path="README.md")
Servidores proxy podem ser ativados, desativados e reiniciados no meio da conversa com ot_servers - sem reiniciar o cliente.
Segredos Que Você Pode Versionar
onetool init orienta você pelos segredos criptografados: valores em secrets.yaml são criptografados com age, a chave privada vive no keychain do seu SO, e a descriptografia acontece de forma transparente no carregamento.
# secrets.yaml - safe to inspect, safe to commit
brave_api_key: age1enc:YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNT...
Uso pela CLI
Funciona como um servidor MCP e como uma ponte CLI direta para o mesmo processo em execução - configuração carregada, segredos e conexões proxy permanecem ativos. Útil para harnesses de agentes, scripts e automação:
# Recommended local MCP root mode: stdio
onetool serve --config .onetool/onetool.yaml
# URL-based MCP root mode for containerized clients
onetool serve --transport http --config .onetool/onetool.yaml --host 127.0.0.1 --port 8767 --path /mcp
# Enable the MCP-owned direct API in onetool.yaml:
# direct.host.enabled: true
# Start OneTool as MCP, then use the port printed in startup logs.
onetool direct run --port 8765 "ot.packs()" --format json | jq '.[0].name'
onetool direct run --port 8765 "brave.search(query='latest AI news')" --format raw
Extensão
Coloque um arquivo Python, ganhe um pacote. Sem registro, sem configuração:
# .onetool/tools/wiki.py
pack = "wiki"
def summary(*, title: str) -> str:
"""Get Wikipedia article summary."""
import httpx
url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{title}"
return httpx.get(url).json().get("extract", "Not found")
__onetool wiki.summary(title="Python_(programming_language)")
📖 Guia de criação de ferramentas
Documentação
- Quickstart - 30 segundos para a primeira chamada de ferramenta
- Instalação - Todas as plataformas
- Configuração - Esquema YAML
- Referência de Ferramentas - Todas as 253 ferramentas
- Segurança - O modelo de segurança em camadas
- Extensão - Construa as suas próprias
- Docs de Desenvolvimento - Documentação interna para desenvolvedores
- Especificações - Índice de especificações OpenSpec
Referências
- Execução de Código com MCP - Anthropic Engineering
- Rotação de Contexto - Chroma Research
Telemetria
O OneTool envia pings anônimos de inicialização (tipo de evento, versão, sistema operacional). Nenhum dado pessoal. Para desativar: export DO_NOT_TRACK=1 ou defina telemetry.enabled: false em onetool.yaml. Detalhes
Problemas
Verifique primeiro se já existem problemas:
- Navegue pelo rastreador: github.com/beycom/onetool-mcp/issues
- Pesquise com a sintaxe do GitHub:
is:issue repo:beycom/onetool-mcp <keyword>
Abra um novo problema: github.com/beycom/onetool-mcp/issues/new
Suporte
Se você achar o OneTool útil:
Licença
GPLv3