Universal AI Bridge
This server is an MCP-based tool that lets an AI manage files and run commands on your computer, with security controls (safe/admin modes), auditing, and support for local (stdio) and remote (HTTP) clients.
Workspace info: Get name, mode (safe/admin), approval mode, and whether shell/Docker are enabled (optionally include absolute path).
File operations: List directories, read text files (full, partial by offset/limit, or tail), read multiple files at once, get file/dir metadata, write files (with parent dir creation), edit files (exact or regex replacement, all occurrences), create directories, move/rename paths, and create a project skeleton with multiple files at once.
Search: Find files by name (recursive, max 1000 results) and search file contents with regex, case-insensitivity, and max 2000 results.
Media and documents: Read images (returned as image) or other binaries (base64), extract text from PDFs, DOCX, and spreadsheets (XLSX/CSV) with pagination; create XLSX/CSV spreadsheets, DOCX documents, and simple PDFs from text.
File watching: Start watching a file/folder for changes, poll for accumulated events, and stop watching.
Policy: View the current allowlist, denylist, blocked command patterns, and mode.
Allows running Docker commands (e.g., docker build) on the host in admin mode, with Docker access controlled by configuration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Universal AI BridgeCreate a new Node.js project in my workspace and run npm install"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Universal AI Bridge
Um servidor MCP local que deixa qualquer IA que fale MCP — no navegador (ChatGPT, Claude.ai) ou local (Claude Desktop, Cursor, Gemini CLI) — programar no seu PC: criar/editar projetos, rodar terminal (inclusive tarefas longas e interativas) e, no modo admin, usar Docker. Com dois modos de segurança claramente separados.
Um código, dois transportes:
stdio → clientes MCP locais (sem rede, sem token).
Streamable HTTP → IAs no navegador, via túnel HTTPS (
cloudflared).
Arquitetura: IA → Auth → Policy Engine → Executor → Audit.
⬇️ Download (Windows)
Baixe o instalador pronto em Releases →
UniversalAI-Bridge-Setup.exe. Execute, siga o assistente e conecte ao ChatGPT.
(O .exe não é assinado; o SmartScreen pode pedir "Mais informações → Executar assim mesmo".)
Prefere rodar do código? Veja Instalação.
Related MCP server: CodeAgent MCP
Sumário
1. Modos de segurança
O modo é escolhido por BRIDGE_MODE.
Modo seguro (safe) — padrão
Workspace jaulado (nada sai da pasta configurada; symlinks para fora são bloqueados).
Shell desligado por padrão; liga só com
BRIDGE_ALLOW_SHELL=true.Docker sempre bloqueado.
Ações com efeito colateral passam por aprovação (
confirmoulocal).
Modo administrador (admin) — opt-in deliberado
Shell ligado por padrão; Docker liberável com
BRIDGE_ALLOW_DOCKER=true.Exige reconhecimento explícito:
BRIDGE_ADMIN_ACK=I_UNDERSTAND_FULL_PC_ACCESS. Sem essa frase exata, o servidor não sobe em modo admin (cai para safe/erro).Continua com workspace jaulado (o escopo é a raiz do workspace — amplie-a conscientemente se precisar).
⚠️ No modo administrador, qualquer pessoa que obtenha os tokens necessários poderá executar ações com os privilégios do processo no computador.
Recomendação: rode o modo admin em um usuário dedicado do sistema ou VM, e exponha o HTTP apenas atrás de VPN/Cloudflare Access — nunca por uma URL pública permanente.
2. Instalação
Requer Node.js 22+.
git clone https://github.com/LMPrado-DZ23/universal-ai-bridge.git
cd universal-ai-bridge
npm install
npm run buildNo Windows, um atalho faz install + build + gera o .env com token criptográfico:
powershell -ExecutionPolicy Bypass -File .\setup.ps13. Configuração .env
Copie env.example para .env. O servidor carrega o .env automaticamente
(via process.loadEnvFile, nativo do Node 22). Gere um token forte:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Variável | Efeito |
|
|
| Só admin: precisa ser |
| Token Bearer do HTTP. Sem ele, o HTTP não sobe. |
| Porta loopback (padrão 8787). |
| Origins permitidos (CSV) — anti DNS-rebinding. |
| Raiz jaulada. Vazio = |
|
|
|
|
|
|
4. Claude Desktop / Cursor / Gemini CLI (stdio)
Não precisa de túnel. Aponte o cliente para o transporte stdio.
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"universal-ai-bridge": {
"command": "node",
"args": ["C:\\caminho\\para\\universal-ai-bridge\\dist\\index.js", "--transport", "stdio"],
"env": {
"BRIDGE_WORKSPACE": "C:\\caminho\\para\\ai-workspace",
"BRIDGE_ALLOW_SHELL": "true"
}
}
}
}No Linux/macOS use caminhos POSIX (ex.:
/home/voce/universal-ai-bridge/dist/index.js). Gemini CLI: mesma estrutura em~/.gemini/settings.jsonsobmcpServers.
5. ChatGPT / Claude.ai no navegador (HTTP + túnel)
O navegador só conecta em MCP remoto (HTTPS).
npm run start:httpEscuta só em http://127.0.0.1:8787/mcp. Exponha com cloudflared:
cloudflared tunnel --url http://127.0.0.1:8787O cloudflared devolve uma URL https://...trycloudflare.com. O endpoint MCP é
https://.../mcp.
URL fixa (túnel nomeado): o túnel rápido muda de URL a cada reinício. Para uma
URL estável, crie um túnel nomeado no painel da Cloudflare (requer sua conta +
um domínio na Cloudflare), mapeie o hostname para http://127.0.0.1:8787, e ponha
no .env:
CLOUDFLARE_TUNNEL_TOKEN=<token do túnel nomeado>
TUNNEL_HOSTNAME=bridge.seudominio.comO launcher passa a usar cloudflared tunnel run --token … (URL fixa) em vez do
túnel efêmero, automaticamente.
ChatGPT (Settings → Connectors / modo desenvolvedor): adicione conector MCP com a URL
/mcpe headerAuthorization: Bearer <BRIDGE_TOKEN>.Claude.ai (Settings → Connectors → custom): mesma URL e header.
Cole o conteúdo de
SKILL.mdnas instruções do GPT/projeto.
Túnel público temporário serve para teste. Para uso permanente, prefira Cloudflare Access / VPN.
6. Terminal e tarefas longas
Disponível quando shell_enabled: true.
Comando curto:
run_commandexecuta e espera terminar.Tarefa longa / streaming:
run_jobretorna umjob_id;job_outputdevolve a saída incremental (passe os cursores retornados para acompanhar em tempo real).Interativo:
job_writeenvia texto ao stdin do processo.Cancelamento:
job_cancelencerra o job e toda a árvore de processos-filho (taskkill /Tno Windows, kill de grupo no POSIX).
Só binários da allowlist (config/policy.json) rodam; encadeamento e
redirecionamento (&& | ; > <) são bloqueados.
run_command/run_jobnão são uma sandbox. Rodam com os privilégios do processo; binários capazes de executar código (node, python) podem alcançar caminhos fora do workspace. Para isolamento real, use usuário/VM dedicados.
7. Docker (modo admin)
Bloqueado no modo safe. No admin, com BRIDGE_ALLOW_DOCKER=true, a ferramenta
docker roda docker <args> como job (ex.: docker build -t app .).
Acesso ao Docker do host costuma equivaler a root. Prefira Docker rootless ou um daemon/VM separada.
8. Tokens e controle operacional
O token do HTTP fica em
BRIDGE_TOKEN(no.env, git-ignored). Comparação em tempo constante; nunca é logado.Rate limiting + lockout progressivo: requisições por IP são limitadas e um IP com muitas tentativas de token inválido é bloqueado por um tempo crescente.
Limite de sessões:
BRIDGE_MAX_SESSIONS(padrão 20) simultâneas.Ownership por sessão: cada sessão HTTP tem seu próprio conjunto de jobs, watches e variáveis — uma sessão não vê nem cancela jobs de outra.
Plano de controle LOCAL numa porta separada (
BRIDGE_PORT+1, não encaminhada pelo túnel), protegido porBRIDGE_ADMIN_SECRET(<dados>/admin.secret). Ações:POST /admin/rotate— gera um novo token (o antigo para de valer na hora).POST /admin/revoke— revoga o token e fecha as sessões (bridge segue de pé).POST /admin/panic— parada de emergência: mata jobs/watches, fecha sessões e revoga o token.POST /admin/status— nº de sessões e se há token (sem segredos). O Painel de Controle (Windows) tem botões para tudo isso.
Honestidade: o controle é local (nesta máquina). Não há dashboard hospedado nem pareamento de dispositivos na nuvem — o túnel é só transporte. Se um token vazar, use Rotacionar ou Revogar no painel (ou o endpoint local) — não é preciso editar o
.envà mão.
Nunca compartilhe o token nem o cole em páginas/repos.
9. Logs / auditoria
Auditoria append-only em
audit/audit-AAAA-MM-DD.jsonl.Registra ferramenta, decisão (allow/deny/executed/…), metadados e resultado — nunca conteúdo integral de arquivos nem segredos.
Falha de escrita do log não derruba a operação (é silenciosa).
10. Desligamento de emergência
Feche o processo do servidor (
Ctrl+C, ou encerre a janela/serviço).Ao receber
SIGINT/SIGTERM, o servidor mata todos os jobs (árvore de processos) e fecha as sessões HTTP antes de sair.Corte imediato do acesso remoto: pare o
cloudflared(o túnel some).Revogação: troque o
BRIDGE_TOKENe reinicie.
11. Recuperação após erro
Erros de rede/desconexão no HTTP são tratados e não derrubam o processo.
Sessões HTTP ociosas expiram (30 min) e são limpas automaticamente.
Rejeições não tratadas são apenas logadas em stderr.
Se um job travar, use
job_cancel; se o servidor cair, basta reiniciar (npm run start:httpou o cliente stdio) — o estado vive no disco (workspace).
12. Riscos de acesso total
Dar a uma IA acesso ao seu computador é poderoso e perigoso:
No modo admin, quem tiver o token pode agir com os privilégios do processo.
run_command/Docker não isolam o host.Um prompt malicioso ou uma sessão de navegador roubada pode disparar ações.
Mitigações: mantenha o modo safe por padrão; use aprovação local; rode admin
em usuário/VM dedicados; exponha só atrás de VPN/Access; gire tokens; revise o
audit/.
13. Multiplataforma
Windows: suportado (setup.ps1,
taskkill /Tpara matar árvore de processos).Linux / macOS: suportado (kill de grupo de processos via
detached). Use caminhos POSIX no.enve nas configs dos clientes; o token pode ser gerado comnode -e "console.log(require('crypto').randomBytes(32).toString('hex'))".Symlinks: a jaula resolve o caminho real em todos os SOs (no Windows, a criação de symlink pode exigir modo desenvolvedor — não afeta a proteção).
14. Ferramentas
Arquivos e busca: get_workspace_info, list_dir, read_file (parcial:
offset/limit/tail), read_multiple_files, get_file_info, read_media_file,
write_file, edit_file (regex / todas ocorrências), make_dir, move_path,
create_project, search_files, search_content (grep).
Documentos (ler): read_pdf, read_docx, read_sheet (XLSX/CSV) — com paginação.
Documentos (criar): write_sheet (XLSX/CSV), write_docx, write_pdf.
Monitoramento e política: watch_start, watch_poll, watch_stop, get_policy.
Terminal e processos: run_command, run_job, job_status, job_output,
job_write, job_cancel, pty_start/pty_output/pty_write/pty_resize/pty_kill
(terminal interativo real), list_processes, kill_process, set_env,
unset_env, list_env.
Modo admin: docker, manage_allowlist, download_to_file.
Comparação com o Desktop Commander
O Desktop Commander é excelente, mas só fala stdio (clientes locais). O Universal AI Bridge cobre o mesmo terreno de arquivos/terminal e vai além:
Universal AI Bridge | Desktop Commander | |
IAs no navegador (ChatGPT/Claude.ai) | ✅ MCP remoto + túnel | ❌ só stdio |
Modos safe/admin + policy + audit + aprovação local | ✅ | parcial |
Instalador 1-clique (Windows) | ✅ | ❌ |
Arquivos (ler parcial, multi, info, editar regex) | ✅ | ✅ |
Busca por nome e conteúdo (grep) | ✅ | ✅ |
Jobs longos/interativos/cancel + processos | ✅ | ✅ |
Fluxo de uso detalhado em SKILL.md. Política em
config/policy.json.
Licença
MIT — veja LICENSE.
Available Tools
23 toolscreate_projectCriar esqueleto de projetoB
Cria uma pasta de projeto com múltiplos arquivos de uma vez. files = { 'caminho': 'conteúdo' }. Sujeito a aprovação.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome da pasta do projeto (dentro do workspace) | |
| files | Yes | Mapa caminho→conteúdo, relativo à pasta do projeto | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It discloses that the operation is a creation (mutating) and that it is 'subject to approval', which is helpful. However, it does not explain the confirm_token parameter, what happens if files already exist, whether the operation is overwrite-safe, or what the success response looks like. Significant behavioral gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact (two sentences) and front-loads the core purpose. It includes the essential format example and the approval caveat without unnecessary filler. It is appropriately sized for a simple tool, though it omits some critical details that would make it more useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, nested object, no output schema), the description is incomplete. It does not explain the approval workflow, the purpose of confirm_token, potential overwrite behavior, or return values. An agent cannot fully understand how to call this tool correctly or what to expect, especially since the absence of an output schema places more burden on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (name and files have descriptions, confirm_token does not). The description repeats the files format ('files = { 'caminho': 'conteúdo' }') which adds little beyond the schema's existing description ('Mapa caminho→conteúdo'). It does not explain the confirm_token at all, failing to compensate for the uncovered parameter. The value added over the schema is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Cria' – creates), a resource ('pasta de projeto' – project folder), and a distinctive scope ('múltiplos arquivos de uma vez' – multiple files at once). This differentiates it from siblings like make_dir (single folder) and write_file (single file) without needing their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for batch project scaffolding ('multiple files at once') and mentions an approval requirement, but it does not explicitly compare with alternatives like make_dir or write_file, nor does it state when NOT to use this tool. The usage context is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_fileEditar arquivo (substituição)B
Substitui a primeira ocorrência exata de old_text por new_text num arquivo existente. Sujeito a aprovação.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| is_regex | No | Tratar old_text como expressão regular | |
| new_text | Yes | Novo trecho | |
| old_text | Yes | Trecho exato (ou regex, se is_regex) a substituir | |
| replace_all | No | Substituir todas as ocorrências | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does add useful context: it only affects the first exact occurrence, only works on existing files, and is subject to approval. But it omits concrete behavioral details such as what happens when old_text is not found, how approval is granted, or how is_regex and replace_all alter behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence explains the core operation precisely, and the second sentence adds an important approval constraint. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutable file-editing tool with six parameters, no annotations, and no output schema, this description is too thin. It leaves out guidance on confirm_token, regex mode, replace_all behavior, failure cases, and when to prefer this over write_file, making the definition incomplete for reliable autonomous invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description clarifies old_text/new_text semantics ('exact first occurrence') and that the target file must already exist. However, it adds nothing about path expectations or confirm_token, which has no schema description, so the parameter guidance is only partially complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Substitui a primeira ocorrência exata de old_text por new_text') on a specific resource ('num arquivo existente'), which is clear and goes well beyond the tool name. It does not explicitly name or contrast sibling tools like write_file, so it slightly misses the top score for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: it edits an existing file rather than creating or moving one, which hints at when to choose it over write_file or move_path. However, it never directly says when to use this tool versus alternatives, nor does it mention situations like regex replacement or bulk replacement that the schema exposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoInfo de arquivo/pastaA
Metadados de um caminho: tipo, tamanho, datas de criação/modificação.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo ao workspace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose the type of data returned and implies a read-only operation, but it does not mention behavior for nonexistent paths, error conditions, or whether both files and folders are supported (though the title suggests file/pasta).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the core concept ('metadados de um caminho') and enumerates the key data fields without filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one parameter and no output schema, the description covers the main returned fields. However, it leaves edge-case behavior and exact return format implicit, so it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with 'path' already described as relative to the workspace. The description adds no deeper parameter semantics beyond linking the path to metadata, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns metadata for a path: type, size, creation/modification dates. This is specific enough to distinguish it from listing or workspace-level tools, though it does not explicitly name sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call this when you need metadata about a single path. There is no explicit when-to-use versus alternatives, nor any exclusions such as 'use list_dir for directory contents'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_policyVer políticaA
Mostra allowlist, denylist e padrões bloqueados de comandos, e o modo atual.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation by saying 'Mostra' (shows), but it does not explicitly state that it has no side effects, does not require special permissions, or that it returns current data. For a simple read tool this is acceptable but not rich; a statement of non-mutation would elevate it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that lists exactly what the tool returns. It is front-loaded with the action and the content, with no extraneous words or repetition. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no inputs and no output schema, the description tells the agent what it will receive: allowlist, denylist, blocked patterns, and current mode. This is sufficient for basic usage, though it could be slightly more explicit about the structure or format of the output. Minor gap, not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (vacuously). Per the rubric, 0 params sets a baseline of 4. The description does not need to explain parameters since there are none, and it correctly omits any parameter discussion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it shows the allowlist, denylist, blocked command patterns, and the current mode. The verb 'Mostra' is specific and the resource is unambiguous. Although there are no direct sibling tools for policy, this description is distinct from the file-related siblings and leaves no ambiguity about what is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or exclusions, and does not reference any sibling tools. The agent is left to infer usage context from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_infoInformações do workspaceA
Retorna nome do workspace, modo (safe/admin), aprovação e se shell/docker estão habilitados. Chame primeiro. Não revela o caminho absoluto por padrão (use include_absolute_path=true se precisar).
| Name | Required | Description | Default |
|---|---|---|---|
| include_absolute_path | No | Incluir o caminho absoluto do workspace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations providing safety hints, the description discloses a key behavioral trait: it does not reveal the absolute path by default, which is a significant behavior for an agent to know. It also implies it is a safe read operation (returns info), though it doesn't explicitly state no side effects. The single default-behavior caveat adds value beyond the schema, which only shows the parameter default. Given the simplicity of the tool, this is strong disclosure, but it could have gone further to explicitly state that it makes no modifications or requires no special auth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The key 'Chame primeiro' instruction is front-loaded, and the parameter caveat is placed at the end, making it scannable. Every phrase earns its place: the list of returned fields, the usage order, and the default behavior caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only info tool without an output schema, the description is highly complete. It tells the agent what fields are returned, that it should be called first, and the only caveat about the absolute path. Minor gaps: no mention of error conditions (e.g., what if called outside a workspace) or whether the returned fields are always present, but these are not critical for a first-step introspection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of the single parameter's description, so the baseline is 3. The description adds context by explaining why the parameter might be needed ('se precisar'), but it does not add new meaning beyond the schema's own description. It effectively reinforces the schema, which is acceptable but not additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns workspace metadata (name, mode, approval, shell/docker status), and the verb 'Retorna' is specific. It is distinct from siblings like read_file or get_file_info because it focuses on workspace-level info, and it even includes the key exclusion of the absolute path by default, which differentiates it from file-path-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Chame primeiro' (call first), establishing a clear usage order. It also states when to use an optional parameter ('use include_absolute_path=true se precisar'), though it does not explicitly mention when not to use this tool or alternatives. However, for a single-purpose info tool, this guidance is sufficient and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dirListar diretórioA
Lista arquivos e pastas de um diretório dentro do workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Caminho relativo ao workspace | . |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It states only that it lists files and folders within the workspace, omitting details about recursion, output format, hidden-file handling, or sorting. This is minimal behavioral disclosure for a tool that would benefit from such context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler. Every word contributes to stating the core action and its workspace scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with one optional, well-documented parameter, the description covers the essential purpose and workspace constraint. Details like return format and recursion are absent, but they are minor for basic correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'path' is fully documented in the schema with a default value and a description ('Caminho relativo ao workspace'), so schema coverage is 100%. The tool description adds no meaning beyond the schema's 'workspace' context, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Lista') and resource ('arquivos e pastas de um diretório'), clearly identifying the tool as a directory lister. This naturally distinguishes it from siblings like read_file (file content) and get_file_info (metadata), even without naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. The workspace-scoping hint provides context, but the description relies on the agent to infer that this tool is for enumerating directory entries versus alternatives like search_files or read_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_dirCriar diretórioB
Cria um diretório (e pais) dentro do workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a key behavior—creating parent directories—and the workspace scope, but it does not explain what happens if the directory already exists, error conditions, or the role of confirm_token. Some behavior is covered, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero waste, front-loading the action and adding one key modifier (parents). Perfectly sized for the content provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% parameter coverage, the description is too thin. It explains what it creates but not when confirm_token is needed, conflict behavior, or any error conditions. Agents may handle simple calls but will likely be uncertain in real-world usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention either parameter (path or confirm_token). It adds no meaning beyond the schema's type constraints, leaving the optional confirm_token completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('cria' = creates) and resource ('diretório'), including a key modifier that parent directories are also created. This clearly distinguishes it from sibling tools like write_file or move_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use (creating a directory) is implied by the name and description, but there is no explicit guidance about when to choose this over siblings, no exclusions, and no mention of prerequisites like confirm_token. The usage is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_pathMover / renomearA
Move ou renomeia um arquivo/pasta dentro do workspace. Sujeito a aprovação.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. It does disclose a meaningful trait: the operation is subject to approval. However, it omits important behavioral details such as what happens on destination conflicts, whether the source is removed after moving, how approval is granted, and what errors may occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact two-clause sentence with no filler. It front-loads the action and resource, then adds the approval caveat at the end. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutating tool with no annotations and no output schema, yet the description does not explain the approval flow, the confirm_token parameter, path constraints, or return/error behavior. The core purpose is covered, but an agent would not have enough information to invoke it reliably in non-trivial cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it barely does. The from/to roles are inferable from the move/rename wording, yet the description never explains path formatting, required scope, or the purpose of confirm_token, which is especially problematic because the approval caveat hints at it but never connects it to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: moving or renaming a file/folder within the workspace. It is clearly differentiated from sibling tools like write_file, edit_file, and make_dir, all of which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is reasonably clear: use this tool when a file/folder needs to be moved or renamed inside the workspace. However, there is no explicit when-to-use vs. when-not-to-use guidance, no mention of alternatives, and no discussion of when the approval requirement activates beyond a brief warning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_docxLer DOCX (texto)A
Extrai o texto de um arquivo .docx do workspace. Paginação por offset/limit de caracteres.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses two useful behaviors: it extracts text rather than binary content, and pagination is by character offset/limit. It does not mention error behavior, auth requirements, or output format details, so some transparency gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The primary action and resource are front-loaded, and the pagination detail is placed second, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a relatively simple tool and the description covers its core behavior and pagination semantics. However, with no annotations and no output schema, the agent is left without details on return structure, edge cases, or usage limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaningful semantics for offset and limit by specifying they are character-based, but it does not elaborate on the path parameter beyond the workspace-file context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Extrai o texto') and the target resource ('arquivo .docx do workspace'), so an agent can understand what the tool does. It does not explicitly compare itself to sibling tools like read_file or read_pdf, but the .docx focus provides enough implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when text from a .docx file in the workspace is needed. It does not provide explicit guidance about when not to use it or which sibling tool would be a better alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileLer arquivoA
Lê um arquivo de texto do workspace. Suporta leitura parcial: offset_lines/limit_lines (fatia) ou tail_lines (últimas N linhas) para arquivos grandes.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo ao workspace | |
| tail_lines | No | Retorna as últimas N linhas | |
| limit_lines | No | Máximo de linhas a partir de offset_lines | |
| offset_lines | No | Linha inicial (0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Sem anotações, a descrição carrega o peso do comportamento. Ela revela que a operação é de leitura de texto e explica os modos parciais, mas não detalha codificação, comportamento de erro ou formato de retorno. Não há contradição com anotações.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Duas frases objetivas, sem repetição do que já está no schema e com a informação principal (ler arquivo) posicionada primeiro. Nenhuma palavra desperdiçada.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Para uma ferramenta simples de leitura, a descrição cobre o essencial: recurso, parâmetros e caso de uso de arquivos grandes. A ausência de detalhes sobre retorno ou erros é aceitável, pois a operação é direta e o schema já documenta todos os parâmetros.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
O schema já cobre 100% dos parâmetros, mas a descrição agrupa offset_lines/limit_lines e tail_lines em modos de uso (fatia vs últimas linhas), adicionando significado relacional que auxilia o agente a escolher a combinação correta.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A descrição usa o verbo 'Lê' e o recurso 'arquivo de texto', definindo claramente a operação. A menção a leitura parcial também ajuda a distingui-la de read_multiple_files e das ferramentas de busca.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A descrição fornece contexto de uso claro para arquivos grandes, citando os modos de leitura parcial. Não menciona explicitamente alternativas como read_multiple_files, mas o escopo 'um arquivo' já fica implícito pelo nome e descrição.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_media_fileLer imagem/binárioA
Lê um arquivo de imagem (retorna como imagem) ou outro binário (retorna base64). Respeita o limite de tamanho.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo ao workspace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the return format (image vs base64) and that a size limit is respected, but it does not specify what the size limit is or what happens when it is exceeded, leaving important behavior ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary behavior is front-loaded and the size-limit constraint is stated separately, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool with one well-described parameter and no output schema, the description adequately covers the main return behavior and a key constraint. The main omission is the specific size-limit threshold and failure behavior, but the tool remains usable as described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'path' is already fully described in the schema as relative to the workspace (100% coverage). The description adds no additional parameter-level detail, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Lê um arquivo de imagem') and clarifies the two output modes, distinguishing it from generic file readers like read_file. The purpose is immediately clear and correctly scoped to media/binary files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context for when to use this tool: for image files or other binary files. It does not explicitly name alternatives or state when not to use it, but the binary/media scope is sufficient to guide selection among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_multiple_filesLer vários arquivosA
Lê vários arquivos de texto do workspace de uma vez.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Caminhos relativos ao workspace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden, and it does clearly indicate a read-only batch operation on workspace text files. However, it does not disclose behavior for missing paths, binary files, size limits, or error handling, and there is no output schema to clarify the return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the core action, target, and scope with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, with one well-documented parameter and no nested schema, so the description is mostly adequate. Still, because there is no output schema, the description could have clarified what the tool returns, and it omits practical constraints like maximum number of paths or handling of missing files.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the paths parameter is already described as 'Caminhos relativos ao workspace'. The description adds context that the files are text and multiple, but it does not add meaningful detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lê'), a resource ('vários arquivos de texto do workspace'), and a distinguishing constraint ('de uma vez'). It clearly separates this tool from the sibling read_file, which handles a single file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'de uma vez' implies batch reading, giving some usage context, but it does not explicitly tell the agent when to prefer this over read_file or mention any exclusions. Usage guidance is present only by implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_pdfLer PDF (texto)A
Extrai o texto de um PDF do workspace. Suporta paginação por offset/limit de caracteres.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does so clearly: it discloses a read-only extraction operation, a text return type, and character-based pagination rather than page-based pagination. It does not cover edge cases like scanned PDFs or error behavior, but the core behavioral profile is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with the core action front-loaded and pagination behavior stated immediately. There is no filler, repetition, or unnecessary schema echo.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with three parameters, the description adequately covers what is extracted, where the operation applies, and how pagination works. Since there is no output schema, a slightly more explicit statement of the return shape would help, but an agent has enough context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics by specifying that offset/limit count characters rather than pages and that the target is a PDF inside the workspace. The required path parameter could be described more explicitly, but the most ambiguous pagination parameters are clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb and resource: it extracts text from a PDF in the workspace. The PDF-specific scope distinguishes it from sibling readers like read_docx and read_sheet, and the pagination note adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied by the tool name and description, but there is no explicit comparison to siblings such as read_file or read_docx, and no when-not-to-use guidance. An agent can infer when to use it, but the description does not actively route it away from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_sheetLer planilha (XLSX/CSV)A
Lê uma planilha .xlsx ou .csv do workspace e retorna as linhas como JSON. Paginação por offset/max_rows.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| sheet | No | Nome da aba (XLSX); padrão: a primeira | |
| offset | No | ||
| max_rows | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It discloses the output as JSON and pagination via offset/max_rows, but it does not mention potential error conditions (e.g., file not found, invalid sheet), handling of large files, or whether the operation is read-only. The safety profile is unstated, which is a notable gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences that front-load the core purpose and then mention pagination. There is no wasted text, and the information is presented efficiently. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for basic use but lacks details on error handling, default sheet selection, and the exact JSON structure. Since there is no output schema or annotations, the description should clarify more behavioral aspects, such as what happens if the sheet is missing or how offset/max_rows interact. It covers the essentials but leaves edge cases unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is low (25%), with only the 'sheet' parameter described. The description adds meaning by explaining pagination through offset and max_rows, which partially compensates for the lack of schema descriptions for those parameters. However, it does not clarify the path parameter format or any constraints beyond what the schema provides, leaving some parameters underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads .xlsx/.csv spreadsheets from the workspace and returns rows as JSON, which is specific and distinguishes it from generic file readers like read_file or format-specific readers like read_docx and read_pdf. The verb 'Lê' (reads) and the resource (spreadsheet) are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for spreadsheet files by specifying formats, but it does not explicitly state when to use this tool over alternatives or provide exclusions. It mentions pagination, which is a usage detail, but lacks guidance on when not to use it, such as for non-tabular files. Sibling names hint at alternatives, but the description does not directly reference them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_contentBuscar dentro de arquivos (grep)A
Procura texto/regex dentro dos arquivos do workspace e retorna arquivo:linha: trecho. Ignora .git/node_modules/dist, nao segue symlinks e pula binarios.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| path | No | Diretorio base, relativo ao workspace | . |
| query | Yes | Texto ou regex a procurar | |
| is_regex | No | ||
| ignore_case | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to lean on, the description surfaces non-obvious behaviors: ignored directories (.git/node_modules/dist), no symlink traversal, binary skipping, and the file:line:snippet output format. This is exactly the behavioral context an agent needs before invoking a grep-like search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the purpose and packs exclusions and output format into the second clause without redundancy. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search with no output schema, the description provides the return format and important scope limits. It lacks an explicit comparison to search_files and a mention of the max-result cap, but the schema supplies defaults and the core invocation is fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, so the description should compensate for undocumented parameters. The only param-related clarification is 'texto/regex' (query/is_regex); max, ignore_case, and path receive no added meaning, and path is already covered by the schema. The description does not fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and object ('Procura texto/regex dentro dos arquivos do workspace') and completes it with the return shape 'arquivo:linha: trecho'. The title '(grep)' reinforces content search, making it easy to distinguish from the sibling search_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly establishes when to use the tool: whenever file contents need to be searched with literal text or regex. It does not give explicit exclusions or name an alternative like search_files, so it misses the top tier, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesBuscar arquivos por nomeA
Procura arquivos cujo nome contem o termo (recursivo, ignora .git/node_modules/dist, nao segue symlinks).
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| path | No | Diretorio base, relativo ao workspace | . |
| query | Yes | Substring do nome do arquivo (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the recursive search, exclusions (git/node_modules/dist), and symlink behavior, which is valuable context beyond the schema. It doesn't detail return format or error handling, but those are less critical for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs essential information: purpose (search files by name), scope (recursive), exclusions (ignores specific dirs), and symlink behavior. It is front-loaded with the action and resource. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the search behavior well, but it doesn't specify the return format (e.g., list of paths, relative/absolute) or clarify how 'max' affects results. For a tool with 3 parameters and no output schema, it's slightly incomplete but adequate for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with 'query' and 'path' having descriptions, but 'max' lacks description. The description reinforces the 'query' semantics (substring of filename) and the exclusions, adding clarity. For 'max' and 'path', the schema provides default and constraints, and the description adds the context of 'relative to workspace' for path. With 100% coverage, the description adds moderate value, justifying a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for files by name containing a term, with specific exclusions (recursive, ignores .git/node_modules/dist, does not follow symlinks). It distinguishes itself from search_content, which presumably searches file contents, and from read_file/list_dir, by specifying the search-by-name behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (search files by name) versus alternatives like search_content (implied for content search) and read_file (for reading). However, it does not explicitly state 'use this when you need to find files by name' or mention alternatives by name, leaving some room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_pollVer mudanças observadasA
Retorna e limpa os eventos acumulados de um watch (ou lista os watches se omitir watch_id).
| Name | Required | Description | Default |
|---|---|---|---|
| watch_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly reveals a critical side effect: calling the tool clears the accumulated events. It also discloses the dual-mode behavior (poll vs. list). This is strong, though it does not mention error conditions or response format, which are minor gaps for a simple poll tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the primary action ('returns and clears accumulated events') and appends the alternative mode in parentheses. Zero wasted words, clear structure, and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description explains both execution modes and the key side effect. It does not describe the shape of returned events, but that is arguably discoverable from usage context. Given the tool's simplicity, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is one optional parameter. The description fully compensates by explaining that providing watch_id polls that watch, while omitting it lists all watches. This adds meaning the schema alone lacks, making it clear how the parameter controls behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb-resource pair: 'returns and clears accumulated events of a watch,' and also distinguishes the alternative behavior of listing watches when watch_id is omitted. This differentiates it from siblings like watch_start and watch_stop, which are lifecycle tools with different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying it returns and clears accumulated events, which logically follows watch_start, but it does not explicitly state 'use after watch_start' or contrast with watch_stop. It does give a clear conditional for the alternative behavior (omit watch_id), but no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_startMonitorar arquivosC
Começa a observar um arquivo ou pasta do workspace. Retorna um watch_id.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Caminho relativo ao workspace | . |
| recursive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action and return value, but omits that this creates a persistent watch, whether events are queued, or that watch_stop should eventually be called. This is a significant gap for a stateful tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action, and contains no filler. However, it achieves brevity by omitting useful lifecycle and parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that starts an ongoing watch, with no annotations and no output schema, this description is too thin. It does not explain how the returned watch_id should be used, mention the recursive option, or relate the tool to watch_poll and watch_stop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: path is documented, but recursive is not. The description adds no explanation of the recursive flag or how the path is resolved, so it fails to compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb ('começa a observar'), identifies the resource as a file or folder in the workspace, and notes that it returns a watch_id. It is clear, though it does not explicitly distinguish itself from sibling tools like watch_poll and watch_stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use watch_start instead of watch_poll or watch_stop, nor are any conditions, prerequisites, or exclusions mentioned. The intended workflow around the watcher lifecycle is left entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_stopParar de monitorarB
Encerra um watch pelo watch_id.
| Name | Required | Description | Default |
|---|---|---|---|
| watch_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action (ending a watch) without explaining side effects, idempotency, error behavior if the watch does not exist, or any return value. This is insufficient for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence with no superfluous words. The information is front-loaded and the structure is optimal for such a simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and any parameter descriptions, the tool definition is incomplete. It does not explain what happens after stopping a watch, whether it returns a result, or any constraints (e.g., watch must be active). An agent cannot fully anticipate the tool's behavior from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only the type and requirement for watch_id, with zero description coverage. The description adds that the watch is ended 'pelo watch_id', clarifying that the parameter is the identifier of the watch to stop. However, it does not provide format, examples, or validation details, so it only partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Encerra' (ends) and the resource 'watch', with the mechanism 'pelo watch_id'. It is unambiguous and distinct from siblings like watch_start and watch_poll, making the tool's purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, such as requiring an active watch, or any relationship to watch_start or watch_poll. An agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_docxCriar DOCXA
Cria um .docx a partir de parágrafos (array de strings). Sujeito a aprovação.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Destino .docx, relativo ao workspace | |
| paragraphs | Yes | Parágrafos do documento | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does disclose a key trait: 'Sujeito a aprovação' (subject to approval), which is valuable. But it does not explain how approval is granted (despite an optional confirm_token parameter), whether the operation overwrites existing files, or what it returns after execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundant content. The first sentence efficiently states the operation and input format; the second adds the critical approval constraint. Both sentences earn their place, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the primary purpose and the approval requirement, which are the core elements for an agent to understand. However, for a write tool with no annotations and no output schema, the lack of detail on the approval workflow (especially the role of confirm_token) and on overwrite/return behavior leaves notable gaps that could confuse an agent during execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover path and paragraphs (67% coverage); confirm_token is undocumented in the schema. The description adds meaning by linking paragraphs to the docx-generation goal and hinting at approval, but it does not explicitly clarify confirm_token or path semantics. It provides modest value over the schema without fully compensating for the missing parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Cria'), the output format ('.docx'), and the input structure ('parágrafos (array de strings)'), making it unambiguous what the tool does. The title 'Criar DOCX' and sibling context (e.g., write_file, write_pdf) reinforce that this is the dedicated docx generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by the purpose ('criar um .docx a partir de parágrafos'), so an agent can infer when to invoke it. However, there is no explicit guidance on when not to use it or how it compares to alternatives like write_file for plain text or write_pdf for PDFs, leaving the selection partly to judgment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileEscrever arquivoA
Cria ou sobrescreve um arquivo de texto no workspace. Cria diretórios pais. Sujeito a política e aprovação.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo ao workspace | |
| content | Yes | Conteúdo completo do arquivo | |
| confirm_token | No | Token da etapa de confirmação |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does it well: it discloses destructive overwrite, the parent-directory creation side effect, and the policy/approval gate. This adds context that annotations would otherwise need to supply, though the confirm_token confirmation workflow is left unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the primary action front-loaded first, followed by the side effect and the constraint. Every sentence contributes a distinct fact and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description covers the essential operational facts: core action, destructive overwrite, directory side effect, and approval gate. The notable gap is that the confirm_token parameter implies a two-step confirmation workflow the description does not explain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, placing the baseline at 3, but the description adds genuine semantic value to the path parameter by stating parent directories are auto-created — telling the agent it can supply a path in a non-existent directory. The schema conveys this nowhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('cria ou sobrescreve' — creates or overwrites) on a specific resource ('arquivo de texto no workspace'), which makes the tool's purpose unambiguous. The create-or-overwrite semantics immediately distinguish it from the closest sibling edit_file and from read_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. The overwrite-vs-edit contrast with edit_file is only implied, and the note that parent directories are auto-created implies make_dir may be unnecessary, but no sibling is named and no exclusion conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_pdfCriar PDFB
Cria um .pdf simples a partir de texto (uma linha por parágrafo). Sujeito a aprovação.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Destino .pdf, relativo ao workspace | |
| text | Yes | Conteúdo do PDF | |
| font_size | No | ||
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the only source of behavioral context. It discloses that each line becomes a paragraph and that the action is 'Sujeito a aprovação', which is useful. It does not mention overwrite behavior, return value, or what happens after approval, but it is not a pure tautology.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, with no filler. Every phrase adds information: file type, input mode, paragraph behavior, and approval requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No annotations or output schema make the description responsible for the full call context. It omits the meaning of confirm_token, overwrite/error behavior, and return format. The approval note is valuable but does not make the definition complete for a mutating file tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Path and text are already described in the schema, and the description adds one useful semantic: 'uma linha por parágrafo' clarifies how the text parameter is interpreted. However, font_size and confirm_token have no schema description and are not addressed in the description, so the low 50% coverage is only partially compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Cria') and resource ('.pdf'), states the input ('texto'), and adds a formatting rule ('uma linha por parágrafo'), which makes the tool clearly distinct from siblings like write_docx and write_file. The file type alone disambiguates it within the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided, and no alternative tool is named. The phrase 'simples' and 'a partir de texto' offer only an implicit hint that this is for plain-text PDF generation, but the description does not differentiate conditions from write_docx or write_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_sheetCriar planilha (XLSX/CSV)A
Cria uma planilha .xlsx ou .csv (pela extensão) a partir de linhas (array de arrays). Sujeito a aprovação.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Destino .xlsx ou .csv, relativo ao workspace | |
| rows | Yes | Linhas: array de arrays | |
| sheet | No | Sheet1 | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the key behavioral trait of requiring approval ('Sujeito a aprovação') and implicitly indicates a write operation. However, it does not mention overwrite behavior, return values, or error conditions, which are useful but secondary for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core purpose. Every word earns its place, and the approval condition is included without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters with 2 required and no output schema. The description covers the essential action and approval but does not explain the confirm_token parameter (likely tied to approval) or the sheet parameter (default 'Sheet1'). An agent may not know how to supply the confirmation token correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (path and rows have descriptions). The description adds meaning to path (format determined by extension) and rows (array of arrays), but does not explain sheet or confirm_token. It partially compensates for the coverage gap but leaves two parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (creates) and resource (a .xlsx or .csv spreadsheet) determined by the extension. It clearly distinguishes from generic write_file and other format-specific writers like write_docx/write_pdf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for spreadsheet formats but provides no explicit guidance on when to use it versus alternatives such as write_file. The 'Subject to approval' note is a condition, not usage direction. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v0.7.0- Added
get_policy - Changed
get_workspace_info2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / include_absolute_pathAdded value: +{ + "default": false, + "description": "Incluir o caminho absoluto do workspace", + "type": "boolean" +}
- Added
read_docx - Added
read_media_file - Added
read_pdf - Added
read_sheet - Changed
search_content1 field changed- changed
Input schema / properties / path / descriptionPrevious value: -"Diretório base, relativo ao workspace"New value: +"Diretorio base, relativo ao workspace"
- Changed
search_files1 field changed- changed
Input schema / properties / path / descriptionPrevious value: -"Diretório base, relativo ao workspace"New value: +"Diretorio base, relativo ao workspace"
- Added
watch_poll - Added
watch_start - Added
watch_stop - Added
write_docx - Added
write_pdf - Added
write_sheet
12 tool updates
v0.3.0- First observed
create_project - First observed
edit_file - First observed
get_file_info - First observed
get_workspace_info - First observed
list_dir - First observed
make_dir - First observed
move_path - First observed
read_file - First observed
read_multiple_files - First observed
search_content - First observed
search_files - First observed
write_file
TDQS
Scored across 23 tools
Each tool targets a distinct action/resource pair: generic text reading, format-specific readers/writers, filesystem operations, search, watch, and policy/info. Even the similar-looking read_file and read_multiple_files are clearly separated by singular vs. batch purpose.
All tool names follow a consistent snake_case verb_noun pattern such as read_file, write_sheet, watch_start, and search_content. The naming is predictable and makes the purpose of each tool easy to infer.
With 23 tools, the server sits in the heavy range for a workspace file bridge. The count is understandable given the variety of file formats, watch operations, and search capabilities, but it still feels like more surface area than strictly necessary.
The toolset covers listing, reading, writing, editing, moving, searching, watching, and project creation well. However, there is no delete/remove operation for files or directories, and document-format writers are create-only, leaving a notable lifecycle gap.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Remote MCP server to run your Atako AI agents: chat, projects, files, integrations and channels.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Project management shared by people and AI agents, with persistent project state through MCP.
151
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP server that gives any LLM a managed Docker workspace with live browser, terminal, code execution, document skills, and autonomous sub-agents.4,709 npm126MIT
- AlicenseAqualityBmaintenanceSelf-hosted MCP server that gives AI assistants a real Linux development environment: file editing, shell commands, tmux terminals, and browser screenshots, with bounded access through a project registry and write gates.39MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to securely operate isolated coding workspaces with file, command, Git, and deployment tools via authenticated remote MCP.71MIT
- AlicenseNot gradedqualityBmaintenanceGives any MCP-compatible AI chat or agent a safe, model-neutral coding runtime with file read/search, structured multi-file patches, command execution, interactive sessions, and git operations, all confined to a single workspace and gated by permission modes.Apache 2.0