agente-local
Provides tools for common Git operations, including checking status, pulling changes, creating branches, committing, merging, and pushing in permitted repositories.
Uses the authenticated GitHub CLI to support repository workflows such as pushing changes and opening pull requests.
Controls a dedicated Chrome browser profile to open and read pages, click, fill forms, send keys, and close the browser, with confirmations for risky actions.
Integrates with local Ollama models to answer simple requests privately, select models based on available GPU memory, and report Ollama status.
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., "@agente-localrun the tests and commit if they pass"
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.
agente-local
A free AI helper that runs on your own graphics card and does the mechanical work for Claude Code: running tests, git, pull requests, summaries, code review, project search and the browser. Claude gets a short answer instead of thousands of lines, so you spend far fewer tokens.
On the author's PC it has already saved over 370,000 Claude tokens in about 100 tasks.
How it works
Every request climbs a cost ladder and stops at the first step that solves it:
direct command → local model (Ollama) → free cloud AI (OmniRoute, optional) → Claude
free, instant free, private free, needs internet paidClaude talks to the agent through MCP (Model Context Protocol). Inside, a few small agents share the work:
Agent | What it does |
Maestro | Reads each request and sends it to the right agent. |
Gatekeeper (Porteiro) | Answers simple questions locally or on free cloud AI; passes the rest to Claude. |
Memory (Memória) | Indexes your projects and hands Claude only the relevant snippets. |
Reviewer (Revisor) | Runs lint, types and tests; blocks commits with passwords or conflict markers. |
Arm (Braço) | Controls the browser and screen, asking before anything risky. |
Every answer is labelled with where it came from ([Ollama local · model],
[OmniRoute · model]), so you always know who answered.
Related MCP server: claude-token-saver-mcp
Requirements
Minimum | Recommended | |
OS | Linux or Windows 10/11 | Ubuntu 24.04+ / Windows 11 |
GPU | none (CPU works, slowly) | NVIDIA with 8–12 GB |
RAM | 8 GB | 16 GB |
Software | Python 3.10+, Git, Ollama, Claude Code | + Node.js (for OmniRoute), Google Chrome (for the browser tools), GitHub CLI (for PRs) |
agente init picks models that fit your GPU:
GPU memory | Models |
12 GB or more | qwen3:8b, qwen2.5-coder:7b, qwen2.5vl:7b |
8 GB | qwen3:8b, qwen2.5-coder:7b |
6 GB | qwen3:4b, qwen2.5-coder:3b |
CPU only | qwen3:1.7b, qwen2.5-coder:1.5b |
Install
Linux
git clone https://github.com/felipebherve/agente-local.git
cd agente-local
./install.sh # add --voz for the voice shortcut, --sim to accept all defaultsWindows (PowerShell)
git clone https://github.com/felipebherve/agente-local.git
cd agente-local
powershell -ExecutionPolicy Bypass -File .\install.ps1 # -Voz, -SimThe installer installs what is missing (Ollama; on Windows also Python and Git through
winget), creates the agent's environment, downloads the models, writes config.yaml,
registers the agent in Claude Code and Claude Desktop and creates an Agente local
shortcut that opens the panel in your browser.
Something wrong? Run agente doctor (Windows: .venv\Scripts\agente.exe doctor).
Connect your accounts
The agent never stores passwords. It uses the logins you already have:
Claude: sign in to Claude Code as usual. The agent is just an MCP tool inside it.
GitHub: run
gh auth loginonce. The agent uses it for push and pull requests.OmniRoute (free cloud AI, optional):
npm install -g omnirouteand runomniroute.Open
http://localhost:20128, go to Providers and connect a free provider with your own account (Groq, Gemini, NVIDIA NIM and others offer free tiers).In
config.yaml, setomniroute.ligado: trueand add the model ids underomniroute.modelos, e.g.- groq/llama-3.3-70b-versatile.
Browser: the Arm uses its own Chrome profile. Sign in to sites there once; the logins stay in Chrome, not in the agent.
Use
You do not need to do anything special: Claude Code calls the agent on its own
(agente init adds the instructions to ~/.claude/CLAUDE.md). Some things you can ask:
"run the tests" · "commit this" · "open a draft PR"
"what changed in this project?" · "where is the login handled?"
"review the project before I ship"
Panel (agente-painel or the Agente local shortcut): PC usage, Ollama and
OmniRoute status, switches for each agent, a chat that shows the route of every answer,
microphone, history, savings chart, your projects and a Settings tab to sign in to
Claude and GitHub, pick your OmniRoute models, choose which folders the agent may use
and change the voice shortcut.
Voice (optional, --voz): press Ctrl+Alt+F to start talking and press it again
to send. You can change the shortcut in the panel (Settings).
pedir_ao_agente, perguntar_local, segunda_opiniao, resumir_texto,
resumir_arquivo, rodar_testes, git_status, git_pull, git_criar_branch,
git_commit, git_merge, git_push, abrir_pr, relatorio_economia, status_agente,
contexto_projeto, ler_relevante, indexar_projeto, lembrar, revisar_projeto,
organizar_pasta, navegador_abrir, navegador_ler, navegador_clicar,
navegador_preencher, navegador_tecla, navegador_fechar, janelas_listar,
janela_ler, janela_clicar, janela_digitar, abrir_app, tela_descrever,
tela_clicar, braco_liberar, reiniciar_claude, falar.
Safety and privacy
Reads only the folders in
pastas_permitidasand runs only the commands incomandos_liberados.Asks before submitting forms, logging in, paying, buying, deleting or typing into a password field. To stop the Arm at once, turn off its switch in the panel (on Windows, Ctrl+Alt+P also works).
Web pages can contain text that tries to give the agent orders (prompt injection). Keep the confirmations on.
No telemetry and no server of ours: everything runs on your PC, except what you send to OmniRoute providers or to Claude.
See SECURITY.md to report a problem.
License and disclaimers
MIT © 2026 Felipe Bruno Hervé. Third-party licenses are listed in THIRD_PARTY_NOTICES.md; the optional voice extra uses Piper, which is GPL-3.0.
This is an independent project, not affiliated with Anthropic, Ollama, OmniRoute or GitHub. "Claude" is a trademark of Anthropic. The agent runs commands and clicks on your computer: use it at your own risk, and follow the terms of every AI provider you connect.
The code and comments are in Brazilian Portuguese; the docs are in English and Portuguese. Contributions are welcome: see CONTRIBUTING.md.
Available Tools
37 toolsabrir_appB
Abre um app liberado no config.yaml (ex.: 'bloco de notas', 'calculadora', 'vscode').
| Name | Required | Description | Default |
|---|---|---|---|
| nome | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose a meaningful constraint — only apps pre-approved in config.yaml can be opened — which hints at a failure mode, but it says nothing about what happens when the name is not allowlisted, whether the app is brought to the foreground, or whether a handle is returned (the output schema covers the last part).
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 with no filler; the constraint and the value examples both earn their place. Slightly compressed into one clause, but nothing is wasted.
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?
An output schema exists, so return values need not be explained, and the one required parameter is illustrated. Still, for a launcher with no annotations, the description leaves the agent guessing about failure behavior for non-allowlisted names and about whether the call blocks or launches asynchronously.
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 for the single 'nome' parameter. The inline examples ('bloco de notas', 'calculadora', 'vscode') add real value by showing the expected value vocabulary, but matching rules such as case sensitivity, exact config key vs human-readable name, and whether aliases work remain undocumented.
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?
States a specific verb ('Abre') plus the resource ('um app'), and names the source of truth ('liberado no config.yaml'). The examples ('bloco de notas', 'calculadora', 'vscode') make clear this is a desktop app launcher rather than the browser/window siblings (navegador_abrir, janelas_listar), though the distinction is only implicit.
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 'liberado no config.yaml' implies that this tool is only usable for allowlisted apps, which is useful scoping context. However, it never states when to choose this over navegador_abrir or janelas_listar, nor what to do if the desired app is not on the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
abrir_prB
Envia a branch atual e abre um PR em rascunho com título e descrição gerados localmente.
simular=true só mostra o texto que seria usado, sem enviar nada.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | main | |
| pasta | Yes | ||
| simular | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the whole behavioral load; it does disclose that the PR is created as a draft and that title/body are generated locally rather than by a service. It omits what happens on failure, whether an existing PR causes an error, auth requirements, and that pushing is an externally visible mutation.
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 with no filler; the primary action is front-loaded and the dry-run caveat follows immediately. Nothing needs to be trimmed.
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?
An output schema exists, so return values need no explanation, but for a destructive, externally visible mutation with zero annotation coverage the description is thin on prerequisites and parameter meanings. It is adequate to attempt the call correctly but not to predict its side effects.
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 should compensate, but it explains only 'simular' and says nothing about 'pasta' (apparently the repository folder) or 'base' (target branch). Two of three parameters remain ambiguous from 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 names a specific compound action — push the current branch and open a draft PR with a locally generated title and description — which is more than the name alone conveys. It is distinguishable from git_push and git_commit because of the PR-creation step, though it never explicitly contrasts itself with those siblings.
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 one explicit usage rule is that simular=true performs a dry run showing the text without sending anything, which is genuinely useful. There is no guidance on when to prefer this over git_push plus a manual PR, nor any stated prerequisites (remote configured, authentication, clean working tree).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
braco_liberarA
Libera o braço depois da parada de emergência (Ctrl+Alt+P). Só com o OK do usuário.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the whole burden; it does disclose the most important trait, that the action must be gated on explicit user confirmation, and that it operates on a post-emergency-stop state. It omits whether release is reversible, what physical side effects follow, or what happens if the tool is called without consent, which are material for a hardware-affecting operation.
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: the action and its trigger first, the consent requirement second. Nothing is redundant and the safety gate is not buried.
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 zero-parameter action with an output schema present, the description supplies the essentials: what it does, when, and the consent requirement. It is slightly thin on post-release behavior and failure modes, which matters given this affects physical hardware.
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 declares zero parameters, so there is no parameter meaning to add and the baseline is 4. The description correctly implies no arguments are needed beyond the confirmation gate.
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 names a specific verb ('Libera' / release) and object ('o braço') plus the triggering condition ('depois da parada de emergência'), which is enough for an agent to identify the action. No sibling tool touches the arm or emergency stop, so differentiation is implicit rather than stated, which keeps it just below the top band.
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 states the situation in which the tool applies (after the emergency stop, Ctrl+Alt+P) and a hard precondition (only with the user's OK). It does not name an alternative or say what to do if the user refuses, but no sibling overlaps this function, so no routing ambiguity is created.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contexto_projetoA
Trechos do projeto mais relevantes para a tarefa, com arquivo e linhas.
Use ANTES de abrir ou procurar arquivos num projeto: em vez de ler pastas inteiras, recebe
só os trechos certos e as decisões e erros já resolvidos (guardados com lembrar).
Atualiza o índice sozinho (só arquivos alterados). pasta: raiz do projeto.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes | ||
| tarefa | Yes | ||
| quantos | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses two important behaviors: the index refreshes itself (only changed files) and results include previously resolved decisions/errors stored via `lembrar`. What it omits is that auto-indexing implies a write side effect and any cost/latency characteristics of the first scan.
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 short sentences with the outcome stated first and the usage rule second; little waste. The trailing 'pasta: raiz do projeto' fragment is slightly awkward but still 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?
An output schema exists, so return values needn't be described, and the behavioral story is reasonably complete for a retrieval tool. However, the near-total absence of parameter semantics for a 3-parameter tool with 0% schema coverage leaves a real gap.
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 should compensate for all three parameters. It only clarifies `pasta` ('raiz do projeto'); `tarefa` is only implied by the phrase 'relevantes para a tarefa', and `quantos` (default 5) is never explained, leaving the agent to guess its meaning and units.
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 resource and result: the most relevant project excerpts for a task, including file and line positions. It implicitly distinguishes itself from file-listing/search siblings by framing itself as an alternative to 'abrir ou procurar arquivos' and by naming the related 'lembrar' tool. It is missing only an explicit contrast with close siblings like 'ler_relevante' or 'indexar_projeto'.
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 gives clear timing guidance: 'Use ANTES de abrir ou procurar arquivos num projeto', and explains the benefit versus reading whole folders. There are no explicit exclusion conditions, but the when-to-use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
falarA
Fala o texto em voz alta no alto-falante do PC (voz brasileira local, Piper).
Use quando o usuário pedir para ouvir a resposta. Texto curto: markdown e código são tirados, e mais de ~1200 caracteres é cortado.
| Name | Required | Description | Default |
|---|---|---|---|
| texto | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the voice is local (Piper), Brazilian Portuguese, that markdown and code are stripped before speaking, and that input over ~1200 characters is cut. What it omits is operational behavior — whether the call blocks until speech finishes, what happens if there is no audio device, and what the output schema returns.
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 short sentences: what it does, when to use it, and the input constraints — front-loaded with the action and with no filler or repetition of schema fields.
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 one-parameter, non-destructive audio tool with an output schema already covering the return value, this is nearly complete. The only meaningful gap is the lack of any note on call behavior (blocking vs. fire-and-forget) or failure mode when audio is unavailable.
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%, so the description must compensate, and it does: the single parameter 'texto' is explained as being spoken aloud, with preprocessing (markdown/code removed) and a ~1200-character truncation limit. It still says nothing about how the truncation is signalled or whether the caller should pre-shorten the text.
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?
States a specific verb and resource ('fala o texto em voz alta no alto-falante do PC') plus the engine and voice ('voz brasileira local, Piper'), which is enough for an agent to know exactly what the tool does and that it is not a file/audio-generation tool. No sibling overlaps with text-to-speech, so the absence of explicit sibling differentiation is not a gap.
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?
Gives an explicit trigger condition: 'Use quando o usuário pedir para ouvir a resposta.' It does not name a when-not case or an alternative, but no plausible alternative exists in the sibling list, so the guidance is effectively complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_commitC
Adiciona todas as mudanças e commita. Sem mensagem, o modelo local escreve uma.
Arquivos sensíveis (.env, chaves) nunca são commitados.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes | ||
| mensagem | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two genuinely useful behaviors: a local model auto-writes the message when none is given, and sensitive files (.env, keys) are never committed. However it omits key traits an agent needs: whether staging includes deletions/untracked files, whether the commit is local-only, and any prerequisites or failure modes.
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 with no waste; the staging scope is front-loaded and the sensitive-file caveat follows. Slightly terse for a mutation tool, but nothing is padding.
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?
An output schema exists so return values need not be explained, but for a commit tool with zero schema coverage the required `pasta` parameter and the exact scope of "todas as mudanças" remain undefined. The definition is thinner than the tool's mutation complexity warrants.
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 supply all parameter meaning. It explains the optional `mensagem` fallback behavior well, but the required `pasta` parameter is never mentioned or defined, leaving the agent to guess whether it is a repo root, a subfolder, or a path filter.
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?
"Adiciona todas as mudanças e commita" states a specific verb (commit) and the staging behavior (adds all changes), which implicitly distinguishes it from siblings like git_push or git_status. It is clear what the tool does, but it never explicitly names the alternatives it is not, leaving sibling differentiation to inference.
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?
There is no when-to-use or when-not-to-use guidance: nothing about running it after git_pull, on which branch, or how it relates to git_push. The agent must infer the whole workflow position of this tool from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_criar_branchC
Cria uma branch nova a partir da atual e muda para ela.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | Yes | ||
| pasta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It does disclose the two side effects (creating a branch and moving HEAD to it), which is real value, but says nothing about failure modes, whether an existing branch name errors out, or what state is left behind.
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 well-formed sentence with zero filler, and the primary action is front-loaded. It is appropriately terse, though the brevity leans toward under-specification rather than economy.
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?
An output schema exists, so return values need no explanation, but with no annotations, 0% parameter coverage, and no mention of the two required inputs, the definition is too thin for a mutating git operation. It should at least identify what 'pasta' and 'nome' mean.
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 neither parameter is mentioned in the description. 'nome' (branch name) and 'pasta' (repository folder path) are undocumented in both places, leaving the agent to guess meaning, format, and naming conventions.
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 ('Cria uma branch nova') and adds the resulting state change ('muda para ela'), so an agent knows this is a branch-create-plus-checkout operation. It does not name or contrast itself with any sibling, which keeps it from a 5.
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?
There is no when-to-use guidance, no note on prerequisites (clean working tree, existing branch name collisions), and no routing to or away from siblings such as git_pull, git_merge, or git_commit. The agent must infer entirely when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_mergeA
Faz merge de 'origem' na branch atual. Em conflito, desfaz e lista os arquivos.
Merge na main/master exige confirmado=true, que só deve ser passado com o OK do usuário.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes | ||
| origem | Yes | ||
| confirmado | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does disclose a key behavior: on conflict the merge is undone and the affected files are listed, so the agent knows the operation is atomic. It also flags the safety gate on main/master. It leaves unstated whether a successful merge creates a commit or only fast-forwards.
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: the core action plus conflict behavior first, then the confirmation rule. Nothing redundant and nothing buried.
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?
An output schema exists, so return values need not be explained, and the mutation/rollback semantics plus the confirmation gate are covered. The remaining gap is the meaning of the required 'pasta' parameter, which an agent must guess.
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 supply meaning, and it does for 'origem' (the branch being merged in) and 'confirmado' (only with user approval, mandatory for main/master). The required 'pasta' parameter is never explained — presumably the repository/working directory — leaving one of three parameters undefined in both description and 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?
States a specific verb (merge) and the exact resource/scope: 'origem' merged into the current branch. An agent can separate this from siblings like git_pull or git_commit without opening any schema.
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?
Gives explicit conditional guidance for the optional flag: merging into main/master requires confirmado=true, and it should only be passed with the user's OK. It does not name an alternative tool (e.g. git_pull) or say when not to merge, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_pullA
Atualiza a branch atual (só fast-forward; nunca cria merge nem perde trabalho).
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does disclose the two behaviors that matter most for a pull: it is fast-forward only and it will not create a merge commit or discard work. It stops short of saying what happens when the branch has diverged (does it fail or abort?) and whether network credentials are needed.
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?
One short sentence, front-loaded with the action and followed by the critical constraint in parentheses. There is no filler or repetition of the tool name.
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 and an output schema exists, so the description mainly needs to cover behavior and the one input. Behavior is handled well, but the total omission of the 'pasta' parameter leaves a real gap for a tool whose only required argument is undocumented.
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 single required parameter, 'pasta', is never mentioned in the description at all. The agent must infer that it is the repository folder path, and nothing is said about whether it accepts absolute/relative paths or what happens with an invalid folder.
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?
States a specific verb and resource: updates the current branch. It also implicitly distinguishes itself from the git_merge sibling by declaring 'nunca cria merge', so an agent can tell what it does and does not do without opening the schema.
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 rather than stated: it is the tool to reach for when the current branch needs refreshing from upstream, and the 'no merge' clause hints that git_merge is the alternative when integration is wanted. There is no explicit when-to-use/when-not-to-use routing and no mention of prerequisites such as a configured remote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_pushA
Envia a branch atual para o GitHub (nunca com força).
Push direto na main/master exige confirmado=true, só com o OK do usuário.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes | ||
| confirmado | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does disclose key behavioral traits: force-push is never performed, and main/master pushes are gated behind confirmation. It omits failure modes (non-fast-forward rejection, auth failures) and what happens to the remote on rejection, which keeps it short of a 5.
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 with the core action and the safety constraint front-loaded. No filler or 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?
The output schema means return values need not be explained, and the safety behavior is covered. But the required 'pasta' parameter is unexplained in both schema and description, and there are no annotations, leaving the definition short of complete for a mutation 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?
Schema description coverage is 0%, so the description must compensate. It adds meaning for 'confirmado' (required for main/master, needs user OK) but never mentions 'pasta', the one required parameter, leaving it fully undocumented.
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?
States a specific verb and resource ('Envia a branch atual para o GitHub') plus scope qualifiers ('nunca com força', main/master restriction). An agent can tell this apart from git_pull, git_merge, and git_commit without opening any schema.
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?
Gives a conditional rule for pushing to main/master (requires confirmado=true and explicit user approval), which is useful usage guidance. However, it never states when to choose this over siblings like git_commit or git_pull, so the broader when-to-use context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_statusC
Branch, situação com o remoto e arquivos alterados, em poucas linhas.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. 'Em poucas linhas' usefully signals a deliberately compact, summarized output rather than full porcelain output, but it says nothing about read-only semantics, the need for the target to be a git repository, or what happens when the repo has no remote.
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 short clause listing the three things reported, front-loaded and free of filler. It is arguably too terse rather than padded, so conciseness itself is not the problem.
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?
An output schema exists, so return values need not be explained, but the tool still requires a 'pasta' argument that neither the schema nor the description characterizes. Given zero annotation coverage and 0% parameter documentation, the definition leaves the agent without enough to invoke it confidently in the right directory.
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 sole required parameter 'pasta' is never mentioned in the description. Whether it is a path relative to the workspace, an absolute path, or a repository root is left entirely undocumented, so the description adds no meaning beyond the bare 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 names the concrete content produced: branch, relationship with the remote, and changed files, which clearly identifies a git status-style report and distinguishes it from mutating siblings like git_commit, git_pull and git_push. It lacks an explicit verb (e.g. 'mostra/exibe'), but the resource and scope are unambiguous.
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?
There is no guidance on when to call this versus the other git siblings (git_pull, git_commit, git_merge, git_push) or versus contexto_projeto. The agent must infer that this is the read-only inspection step before committing or pushing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indexar_projetoC
Atualiza o índice de busca do projeto (só reprocessa arquivos alterados).
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully reveals incremental behavior (only changed files are reprocessed), which tells the agent the call is cheap to repeat, but says nothing about what determines 'changed', whether removals are handled, cost/locking, or whether the operation is safe to interrupt.
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?
One compact sentence with the core action front-loaded and the incremental qualifier parenthetically scoped. Nothing is wasted, but the extreme brevity leaves no room for the missing parameter and precondition information.
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?
An output schema exists, so return values need not be explained, but the sole required parameter is left undefined and no annotations cover safety or side effects. For an index-mutating tool, the definition is too thin for an agent to call it confidently.
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 never mentions the single required parameter 'pasta'. An agent cannot tell whether it should be the project root, a relative path, or a subfolder, nor what happens when a narrower folder is supplied. The description fails to compensate 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?
States a specific verb and resource — updating the project's search index — which is unique among the siblings (no other tool touches the index). It does not explicitly distinguish itself from adjacent tools like contexto_projeto or ler_relevante, which also read project content, so it falls short of 5.
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?
There is no statement of when to call this versus alternatives, nor any prerequisites. The parenthetical about reprocessing only changed files is a behavioral trait, not guidance about when indexing is needed or when it should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
janela_clicarB
Clica num controle da janela pelo número da leitura ou pelo nome (ex.: 'Salvar').
Ações de enviar, apagar, pagar etc. exigem confirmado=true, só com o OK do usuário.
| Name | Required | Description | Default |
|---|---|---|---|
| alvo | Yes | ||
| titulo | Yes | ||
| confirmado | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full disclosure burden and does add one important behavioral rule: dangerous actions are gated behind confirmado=true and user consent. It does not say what happens when confirmado is false for such an action (refusal, error, no-op), nor does it state that the click mutates UI state, what window matching behavior is, or whether a click failure is reported.
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 purpose then the safety rule; nothing is padded. It is under-specified rather than verbose, which is the right failure mode for conciseness but leaves gaps elsewhere.
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?
An output schema exists, so return values need no explanation. However, for a UI-automation click with destructive potential and zero annotation coverage, the definition leaves the required 'titulo' parameter and the choice among three sibling click tools unaddressed — an agent could invoke it on the wrong surface or with an unset window target.
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 for three bare parameters. It explains 'alvo' (reading number or control name) and 'confirmado' (required for destructive actions), but 'titulo' — presumably the target window identifier and required — is never mentioned, leaving a required parameter entirely undefined.
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 names a specific verb and resource ('Clica num controle da janela') and even explains how the target is addressed — by reading number or by control name, with a concrete example ('Salvar'). It does not, however, distinguish this from the sibling click tools navegador_clicar and tela_clicar, which an agent must choose between.
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?
There is real conditional guidance: destructive actions ('enviar, apagar, pagar etc.') require confirmado=true and explicit user approval, which tells the agent when to set that flag. Missing is any guidance on which surface to click on — window vs browser vs screen — or a prerequisite pointing at janela_ler as the source of the reading number it references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
janela_digitarB
Digita texto na posição do cursor de um campo da janela (não apaga o que já existe).
alvo: número ou nome do campo; vazio usa o campo principal.
| Name | Required | Description | Default |
|---|---|---|---|
| alvo | No | ||
| texto | Yes | ||
| titulo | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the non-destructive insert-at-cursor semantics, but says nothing about required focus/active window, failure modes if the field or window is not found, or any return 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?
Two short, front-loaded sentences with no wasted wording; the destructive-behavior caveat is placed prominently. Only minor awkwardness from the line-broken 'alvo:' clause.
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?
An output schema exists, so return values need not be explained. Still, for a 3-parameter tool with zero schema coverage and no annotations, the unmentioned required 'titulo' parameter and absent routing guidance leave real gaps.
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%, so the description must compensate. It explains 'alvo' well (number or field name, empty means main field), but the required 'titulo' parameter is never mentioned and 'texto' is only implied by the verb.
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?
States a specific verb and resource: typing text at the cursor position in a window field, with the non-destructive caveat '(não apaga o que já existe)'. It does not name a sibling to contrast with (janela_clicar, navegador_preencher), so differentiation is left implicit.
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 by 'digita texto na posição do cursor' and the note that existing content is preserved, which hints at when this beats a clear-and-replace approach. However, no explicit when-to-use/when-not or comparison to janela_clicar or navegador_preencher is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
janela_lerA
Lista os botões, campos e menus de uma janela (parte do título basta), numerados.
| Name | Required | Description | Default |
|---|---|---|---|
| titulo | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description must carry the full load; it does disclose that this is a read-only enumeration and that partial title matching is accepted. It says nothing about what happens when the title is ambiguous or no window matches, and no permission or side-effect context is given.
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 short sentence, front-loaded with the action and ending with the parenthetical that carries the parameter rule. 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?
An output schema exists, so return values need not be described, and the tool is simple with one argument. Still, the failure and ambiguity behavior of partial title matching is unaddressed, which matters for an agent driving windows.
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%, so the description must compensate, and it does: it explains that the single titulo argument accepts a partial title. It does not clarify how matching is resolved if several windows share the substring.
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?
States a concrete verb and resource: lists buttons, fields and menus of a window, with numbered enumeration. That distinguishes it from janelas_listar (which enumerates windows) and from tela_descrever, though the description never names those siblings explicitly.
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 only implied: the mention of numbering hints that the output feeds into janela_clicar or janela_digitar, but the description never says when to pick this over tela_descrever or navegador_ler, nor any precondition such as the window being open.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
janelas_listarB
Lista os títulos das janelas abertas no Windows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state whether the operation is read-only, whether hidden or minimized windows are included, whether it requires an active desktop session, or 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 single front-loaded sentence with no unnecessary wording. It states the action and scope directly.
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 zero-parameter listing tool with an output schema, the description is sufficient to identify the action. However, absent annotations, it should disclose more about read-only behavior, window scope, and environment requirements.
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 takes zero parameters, so there is no parameter meaning for the description to add. The baseline for a parameterless tool is 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 names a specific verb, "Lista", and a specific resource, "os títulos das janelas abertas no Windows". It is clear what the tool returns, though it does not explicitly distinguish itself from siblings such as janela_ler or tela_descrever.
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 like janela_ler or tela_descrever. Usage is only implied by the listing purpose, with no exclusions or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lembrarA
Guarda uma decisão do projeto (tipo 'decisao') ou um erro e como foi resolvido ('erro').
Volta junto em contexto_projeto quando a tarefa for parecida, para não repetir a conversa. Escreva curto e completo, ex.: 'erro: X falhava por Y; resolvido com Z'.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | decisao | |
| pasta | Yes | ||
| texto | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does disclose the key non-obvious behavior: the entry is later injected into `contexto_projeto` when a similar task occurs, which is the effect an agent most needs to know. It omits append-vs-overwrite semantics, deduplication of near-identical entries, and any size or storage limits, so it stops short of full behavioral 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?
Three short sentences, each doing distinct work: purpose and record kinds first, downstream effect second, writing style with an example third. It is front-loaded and free of 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?
An output schema exists, so return values need not be described, and the persistence effect is covered. However, for a 3-parameter mutation/creation tool with zero schema documentation and no annotations, the unexplained required `pasta` parameter and the absence of duplicate-handling guidance leave real gaps.
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 partially does: `tipo` values are implied ('decisao' default, 'erro'), and `texto` gets content guidance with a concrete example format ('erro: X falhava por Y; resolvido com Z'). The required `pasta` parameter is never explained — no hint whether it is a project path, a folder name, or a memory namespace.
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?
States a specific verb and resource: 'Guarda uma decisão do projeto ... ou um erro', and names the two record kinds ('decisao', 'erro') that map to the `tipo` parameter. It also distinguishes itself from the read-side sibling by naming `contexto_projeto` as where the stored item resurfaces, so an agent can separate this write tool from retrieval tools without opening either schema.
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?
Gives clear usage context: record a project decision or an error plus its fix, so the information is available later for similar tasks. It does not state exclusions — for example versus `indexar_projeto`, `ler_relevante`, or general note-taking siblings — but the 'decision or resolved error' framing is specific enough to route most calls correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ler_relevanteA
Lê um arquivo grande pela metade do custo: mapa das funções com linhas + só os trechos ligados à tarefa. Use no lugar de abrir o arquivo inteiro quando ele passar de ~150 linhas.
| Name | Required | Description | Default |
|---|---|---|---|
| tarefa | Yes | ||
| arquivo | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It does disclose the single most important trait — that the caller will NOT receive the whole file, but a function map and a task-filtered subset — plus a cost claim. It says nothing about failure modes (file not found, no matching excerpts), truncation limits, or file-type constraints.
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 compact sentences, front-loaded with the value proposition and mechanism before the routing instruction. Nothing is filler, though 'pela metade do custo' is a loose quantitative claim that earns its place only as a heuristic.
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?
An output schema exists, so return-value detail is not required, and with only two required params the description's coverage of mechanism and trigger threshold is close to sufficient. Remaining gaps are edge-case behavior and the fact that selection is heuristic, so the output may miss content the agent expects.
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%, so the description must carry the semantics. It implies both roles well: 'arquivo grande' anchors the file parameter and 'trechos ligados à tarefa' anchors the task parameter as the relevance filter. It adds no guidance on path format (relative/absolute) or on how specifically the task string should be phrased to steer selection.
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 pairs a specific verb (lê/read) with a specific resource (arquivo) and explains the mechanism: a function map with line numbers plus only task-relevant excerpts. It is clearly distinguishable from summarize-style siblings, though it never names a concrete sibling tool for the 'read the whole file' alternative it positions itself against.
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?
Gives an explicit trigger condition ('when the file exceeds ~150 lines') and an explicit alternative behavior ('use instead of opening the whole file'). It stops short of stating exclusions, such as when a caller genuinely needs the complete file content or when the file is small enough that the overhead is not worth it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organizar_pastaA
Levanta uma pasta (inventário, duplicados por hash, sugestão de estrutura via OmniRoute) e grava o relatório em JSON, Markdown e PDF em dados/organizador/.
Só leitura: nunca move, renomeia ou apaga nada. Pasta grande (muitos GB) pode demorar — a duplicata só lê o arquivo inteiro quando o tamanho e um pedaço já bateram.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it declares the tool is strictly read-only ("nunca move, renomeia ou apaga nada"), discloses that it writes report files to disk, and warns about runtime on multi-GB folders along with the mitigation (hash comparison only reads whole files when size and a chunk match). It stops short of stating whether existing reports are overwritten or what credentials/OmniRoute access are required.
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 paragraphs, front-loaded with what it does and what it produces, then the safety/performance caveats. The duplicate-hashing detail is technical but earns its place by justifying the slow-runtime warning; nothing is padded.
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?
An output schema exists, so return values need not be explained, and the description still adds the artifact formats and destination directory. Combined with the read-only guarantee and performance caveat, an agent has enough to call it correctly; only the "pasta" path format remains unspecified.
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% for the single required parameter "pasta", and the description adds nothing about expected format, absolute vs relative path, whether a trailing slash matters, or whether the folder must exist. The one parameter the agent must supply is left entirely to guesswork.
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 ("Levanta uma pasta") plus the exact artifacts produced (inventário, duplicados por hash, sugestão de estrutura) and where they are written (dados/organizador/). No sibling tool does folder analysis, so an agent can route here unambiguously without opening the schema.
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 by the described outcome — use it when you want an inventory/duplicate analysis of a folder — but there is no explicit when-to-use, when-not, or named alternative among the siblings. The only guidance is the implicit inference from the read-only nature of the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pedir_ao_agenteA
Pedido em português; o Maestro local escolhe quem resolve (Revisor, testes, git, Memória ou o Cérebro para perguntas simples) e devolve a resposta curta.
Chame em toda conversa, antes de trabalhar: o Maestro liga o agente certo (e desliga depois). pasta: projeto (opcional, se o pedido não citar o nome). Se voltar 'PRECISA DO CLAUDE', faça você mesmo; resposta local é de modelo pequeno, confira fatos.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | No | ||
| pedido | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: the Maestro turns a worker on and off around the call, the response is short, and the answer comes from a small local model whose facts must be verified. The sentinel return value 'PRECISA DO CLAUDE' is also a genuine behavioral disclosure that the agent must handle. It stops short of stating latency, cost, or failure modes, which would round out a dispatcher that can silently route work elsewhere.
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 routing purpose is front-loaded and the text is short, but the parenthetical '(pasta: projeto ...)' is jammed into the running prose in a way that reads like a stray parameter note rather than a structured line. The telegraphic, run-on phrasing costs a little parsing effort without adding information.
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?
An output schema exists, so return-shape explanation is not required, and the description still flags the one return value that changes agent behavior ('PRECISA DO CLAUDE'). For a two-parameter orchestrator this is close to complete; what is absent is any notion of the tool's cost or latency, which matters for something the description tells the agent to call on every turn.
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 and only partly does: 'Pedido em português' tells the agent the request must be written in Portuguese, and 'pasta: projeto (opcional, se o pedido não citar o nome)' explains that the folder is optional and only needed when the request does not name the project. Neither parameter gets format examples, naming conventions, or an explanation of what happens if the folder is omitted and unresolvable.
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 concrete routing behavior: the local Maestro picks which worker (Revisor, testes, git, Memória, or the Cérebro for simple questions) handles the request and returns a short answer. That is a real verb-plus-mechanism, not a restatement of the name. The gap is sibling differentiation: it never contrasts itself with perguntar_local or segunda_opiniao, which overlap heavily with the 'Cérebro para perguntas simples' 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?
It gives an unusually explicit trigger: 'Chame em toda conversa, antes de trabalhar' (call in every conversation, before working), plus a fallback rule when the sentinel 'PRECISA DO CLAUDE' comes back. What is missing is when NOT to use it, i.e. whether perguntar_local or segunda_opiniao should be preferred for direct local queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perguntar_localA
Pergunta ao modelo local no PC do usuário (grátis, sem gastar tokens do Claude).
Bom para: explicar um erro, rascunhar texto, gerar código simples. papel: 'codigo' (padrão) ou 'cerebro' (raciocínio geral).
| Name | Required | Description | Default |
|---|---|---|---|
| papel | No | codigo | |
| pergunta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the meaningful runtime fact that execution happens on the user's local machine at zero token cost. It omits what happens if the local model is unavailable, expected latency, and whether output quality differs from Claude — all relevant for an agent choosing this over a cloud call.
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 short lines, front-loaded with the core action and the cost-saving rationale, then use cases, then parameter modes. No filler; it could be marginally tighter by folding the papel note into a single clause.
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?
An output schema exists, so return-value explanation is correctly omitted, and both parameters are covered at a basic level. What is missing for a delegation tool is failure/fallback behavior when the local model is down or slow, which an agent needs to decide whether to retry or escalate to a sibling.
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 schema defines no enum for 'papel', so the description is doing real work by explaining the two modes: 'codigo' (default) for code and 'cerebro' for general reasoning. 'pergunta' is left implicit, but its meaning is self-evident from the name.
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?
States a specific verb and resource: it asks the local model running on the user's own PC, with the explicit qualifier that it is free and consumes no Claude tokens. This differentiates it in spirit from siblings such as segunda_opiniao and pedir_ao_agente, though none of those siblings is named directly.
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?
'Bom para: explicar um erro, rascunhar texto, gerar código simples' gives concrete positive use cases, which is more than most definitions offer. However, it never says when NOT to use it or when to prefer the cloud/agent siblings (segunda_opiniao, pedir_ao_agente, resumir_texto), so routing remains inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reiniciar_claudeA
Fecha e reabre o Claude Desktop (para carregar ferramentas novas do agente).
A conversa atual é interrompida por uns 10 s. Exige confirmado=true, só com o OK do usuário.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmado | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does well: it discloses the destructive side effect (the app is closed), the concrete cost ('A conversa atual é interrompida por uns 10 s'), and the confirmation requirement. It stops short of saying whether unsaved work beyond the conversation is affected.
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: the action and its purpose come first, then the cost and the confirmation gate. No filler, nothing redundant with the schema.
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?
An output schema exists, so return values need no explanation, and the description covers action, rationale, side effect, and the confirmation gate. Minor gap: it does not say what the caller should do if the restart fails or whether a success/failure result must be surfaced to the user.
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% for the single 'confirmado' boolean, so the description must compensate, and it does: it explains that confirmado=true is mandatory and that it must reflect actual user approval, not agent initiative. The type/default are left to the schema, which is acceptable for one flag.
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 names a specific verb+resource ('Fecha e reabre o Claude Desktop') and even supplies the reason ('para carregar ferramentas novas do agente'). No sibling tool does app restart, so the boundary is unambiguous.
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 states the triggering situation (loading new agent tools) and a hard precondition ('só com o OK do usuário'), which functions as a when-not rule. It does not enumerate alternative approaches for refreshing tools, but for a single-purpose restart tool the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
relatorio_economiaB
Quantos tokens o agente local já poupou (estimativa), por tipo de tarefa.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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; it does disclose that the figure is an estimate rather than an exact measurement, which is meaningful behavioral context. However, it says nothing about the data source, the time window covered, whether it is strictly read-only, or whether the local agent must be running. For a zero-parameter report tool the risk is low, so a 3 is appropriate.
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 short sentence that leads with the quantity being reported and immediately qualifies it as an estimate and states the breakdown dimension. No filler, no repetition of the tool name.
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 (no parameters) and an output schema exists, so return-value detail need not be described. What is missing is the scope of the report — time range, whether it covers one session or all history, and how 'savings' is defined — which an agent would likely want before invoking it.
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 takes zero parameters and the schema description coverage is 100%, so there is no parameter surface for the description to explain. Baseline 4 applies; the mention of 'por tipo de tarefa' does hint at the shape of the aggregation, which adds slight 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 names a concrete metric (tokens saved by the local agent) and its grouping (per task type), with the caveat that it is an estimate. The verb is implicit — it is a report/read tool rather than an action — but an agent can still tell what it returns. There is no explicit differentiation from siblings, though none of the listed siblings appear to cover cost/economy reporting.
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 gives no indication of when to call this versus alternatives, or under what conditions the report is meaningful (e.g. after a session, over what period). Usage is only inferred from the noun phrase itself. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resumir_arquivoA
Lê um arquivo grande no PC do usuário e devolve só um resumo (ex.: log, CSV, código).
Use antes de abrir arquivos longos inteiros. foco: o que procurar no arquivo.
| Name | Required | Description | Default |
|---|---|---|---|
| foco | No | ||
| caminho | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the key behavioral trait that the file contents are not returned in full, only a condensed summary, but it omits limits such as maximum file size, permission/path constraints, and what happens on unreadable or binary files.
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 with the core capability and usage trigger front-loaded; nothing is wasted. The trailing "foco: o que procurar no arquivo" is a fragment rather than a sentence, which slightly hurts polish.
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?
An output schema exists, so return values needn't be explained. However, with no annotations and zero schema description coverage on a two-parameter tool that touches the user's local filesystem, the definition should say more about path expectations and size/error limits to be fully callable with confidence.
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 real meaning for "foco" (what to look for in the file) and implies "caminho" is a local filesystem path, but leaves format details (absolute vs relative path, encoding, whether foco is required in practice) unstated.
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: it reads a large file on the user's local machine and returns only a summary, with concrete examples (log, CSV, code). This clearly distinguishes it from browser/window readers and from resumir_texto, though it never names a sibling explicitly.
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?
"Use before opening long files entirely" gives a clear trigger condition tied to file length, which is the deciding factor for choosing this tool. It stops short of naming alternatives (resumir_texto, ler_relevante) or stating when-not to use it, so no explicit routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resumir_textoA
Resume um texto longo (log, saída de comando, diff) em poucas linhas, localmente.
Prefira esta ferramenta a ler saídas grandes inteiras: só o resumo entra no contexto. foco: o que importa no resumo (ex.: 'quais testes falharam e por quê').
| Name | Required | Description | Default |
|---|---|---|---|
| foco | No | ||
| texto | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full disclosure burden; it does add real value by stating processing is local ('localmente') and that only the summary is injected into context, which is the key behavioral trait for an agent managing its window. It does not say whether the submitted text is stored or logged anywhere, nor confirm that the operation has no side effects on the source.
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 short lines with the purpose front-loaded, followed by the usage preference and a parameter hint — no filler or repetition. The trailing 'foco:' fragment is terse but readable; slightly cleaner formatting would make the parameter note stand out more.
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?
An output schema exists, so return-value explanation is not needed, and the tool is low-complexity with two parameters. The description covers purpose, selection rationale, execution locality, and parameter intent; only edge behavior (empty 'foco', input size limits) is unaddressed.
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% (properties have only titles 'Texto' and 'Foco'), so the description must compensate, and it largely does: 'texto' is characterized by example content types (log, command output, diff) and 'foco' is explained with a concrete sample value ('quais testes falharam e por quê'). It omits what happens when 'foco' is left empty (the default ""), which is the remaining semantic 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?
States a specific verb and resource: 'Resume um texto longo (log, saída de comando, diff) em poucas linhas, localmente' — verb, input type, output shape, and execution locality are all named. It does not explicitly contrast with the sibling 'resumir_arquivo', but the enumerated input types (log, command output, diff) make the text-in vs. file-in distinction inferable.
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?
Gives explicit when-to-use guidance plus a rationale: 'Prefira esta ferramenta a ler saídas grandes inteiras: só o resumo entra no contexto', which tells the agent this tool should replace raw reads for context economy. No explicit when-not-to-use or named-alternative routing (e.g., toward resumir_arquivo) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revisar_projetoA
Revisão local antes da sua: lint, tipos, testes e o que há de suspeito nas alterações (senhas e chaves, marcas de conflito, depuração esquecida, arquivos grandes).
Devolve só os problemas, com arquivo e linha. Use antes de revisar código ou de dar uma tarefa como pronta. testes=False pula os testes; opiniao=True pede ao modelo de código local uma leitura do diff (confira antes de agir).
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes | ||
| testes | No | ||
| opiniao | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses that only problems are returned, with file and line, and warns that opiniao output comes from a local model and should be verified before acting. It omits whether the tool is read-only or how long a run takes, but the trust caveat on opiniao is a genuinely useful behavioral detail.
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?
Front-loads the scope, then output behavior, then usage, then parameter notes; each sentence earns its place. The parenthetical enumeration of suspicious patterns is dense but informative rather than redundant.
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?
An output schema exists, so the brief return-value note ('only problems, with file and line') is a bonus rather than a necessity. Combined with the scope list, usage trigger, and parameter toggles, an agent has enough to call it correctly; only read-only/permission behavior is unaddressed.
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, and it explains two of three parameters: testes=False skips tests, and opiniao=True asks the local code model to read the diff. The required pasta parameter's meaning is left implicit from the name, which is a minor 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?
Opens with a specific verb-plus-scope: a local review that runs lint, type checks, tests, and scans changes for secrets, conflict markers, leftover debug code, and large files. That enumeration makes it clearly distinct from narrow siblings like rodar_testes (testing only) and segunda_opiniao (model opinion only), since this tool composes all of them.
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?
Gives an explicit trigger: use it before reviewing code or declaring a task done. It does not name alternatives explicitly (e.g. when to call rodar_testes alone instead), but the timing guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rodar_testesA
Roda os testes do projeto (pytest ou npm test) e devolve só contagem, falhas e causa.
Use no lugar de rodar os testes no terminal e ler a saída inteira. pasta: raiz do projeto no PC do usuário.
| Name | Required | Description | Default |
|---|---|---|---|
| pasta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden. It usefully discloses the framework auto-detection and the aggressive output summarization, but says nothing about execution semantics: how long it may run, whether it can hang or time out, whether a failing suite is returned as data or raised as an error, and what happens if no test setup exists. These are the traits that matter most for a tool that executes code on the user's machine.
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 short lines, front-loaded with what the tool does and what it returns, then the usage rule, then the parameter note. Nothing is padded, and the only mild repetition ("Roda os testes do projeto" echoed by the usage line) is functional restatement of intent.
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?
An output schema exists, so the description needn't enumerate return values, and it explicitly does not. For a one-parameter execution tool the definition is nearly sufficient; the remaining gap is failure/timeout behavior and required project preconditions, which the agent cannot infer from the schema or the absence of annotations.
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 the schema only says the string parameter is titled "Pasta", so the description must compensate. It does, clarifying that the value is the project root directory on the user's own PC, which tells the agent this is a local filesystem path rather than a container or remote path — meaningful context the schema lacks.
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?
States a specific verb and resource: runs the project's tests, explicitly detecting pytest or npm test, and returns only counts, failures and cause. The scope of the result is named up front, so an agent knows this is a condensed test runner rather than a generic shell executor. No sibling tool in the list runs tests, so differentiation is trivially satisfied.
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?
"Use no lugar de rodar os testes no terminal e ler a saída inteira" gives an explicit alternative (terminal) and the condition that selects this tool (you want the summarized result, not raw output). It stops short of stating when not to use it, e.g. when no test framework is configured or when the user wants the full log.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segunda_opiniaoA
Pede uma segunda opinião a um modelo local (grátis), ao estilo do zen-mcp-server.
Use para conferir uma decisão, um trecho de código ou um plano antes de seguir, sem gastar tokens do Claude. papel: 'codigo' (padrão, revisão técnica), 'cerebro' (raciocínio geral) ou 'visao' (se contexto describer algo visual). contexto: código ou texto relevante (opcional). A resposta é de um modelo pequeno: confira antes de agir.
| Name | Required | Description | Default |
|---|---|---|---|
| papel | No | codigo | |
| contexto | No | ||
| pergunta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does reasonably well: it discloses that the model is local and free, that it does not consume Claude tokens, and critically that the answer comes from a small model and should be verified before acting. That reliability caveat is genuinely useful and not inferable from structured fields. It still omits latency expectations and whether the call has any side effects.
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?
Purpose and the token-saving rationale are front-loaded, and the parameter explanations follow in a compact block. The 'ao estilo do zen-mcp-server' reference and some parenthetical asides are expendable, but the text is short and no sentence is redundant.
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?
An output schema exists, so return values need not be described, and the description goes further by warning about output reliability. For a three-parameter advisory tool this covers what an agent needs to invoke it correctly. The main missing piece is sibling differentiation against 'perguntar_local' and the other summarize/ask tools.
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 schema declares no enum for 'papel', so the description is doing essential work by enumerating 'codigo' (default, technical review), 'cerebro' (general reasoning), and 'visao' (when the context describes something visual). It also explains 'contexto' as optional relevant code or text. 'pergunta' is left to its self-evident name, which is acceptable.
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 gives a concrete verb+resource: it asks a local model for a second opinion on a decision, code snippet, or plan, and explicitly frames it as a free alternative that avoids Claude token spend. That is a clear, specific purpose an agent can act on. It stops short of a 5 because it never contrasts itself with the nearby sibling 'perguntar_local', which an agent could plausibly confuse with this tool.
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 states the triggering situation precisely: use to check a decision, code fragment, or plan before proceeding, without spending Claude tokens. The 'papel' values also route sub-use-cases (technical review vs. general reasoning vs. visual context). It lacks explicit when-not-to-use or a named alternative among the 38 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_agenteA
Mostra se o Ollama está no ar, os modelos instalados e quanto do PC está em uso.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. "Mostra" implies a read-only inspection with no side effects, and it discloses the categories of data returned, but it says nothing about cost, latency, failure behavior (e.g., what happens when Ollama is down), or whether any permissions are needed.
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 short sentence with no filler, and the primary signal (is Ollama up) is placed first, followed by the secondary details. Every clause corresponds to something the tool actually reports.
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?
An output schema exists, so return values need not be re-explained, and the description already previews the main outputs. For a zero-parameter diagnostic tool this is close to sufficient; the only gap is the absence of any note on when to prefer it over simply proceeding with a model call.
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 takes zero parameters, so there is no parameter meaning to convey; the baseline for a parameterless schema is 4. The description correctly avoids inventing arguments that do not exist.
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?
"Mostra se o Ollama está no ar, os modelos instalados e quanto do PC está em uso" names a specific verb (Mostra) and three concrete pieces of information returned: Ollama availability, installed models, and machine resource usage. It is clearly a status/health-check tool, distinguishable from the browser, git, and window siblings by domain. It stops short of explicitly framing itself as a read-only diagnostic, which keeps it at 4.
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?
There is no explicit when-to-use statement, no prerequisites, and no named alternative among the many siblings. Usage is only implied by the content: an agent can infer it should call this to verify the local model runtime is available before invoking model-dependent tools, but the description never says so.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tela_clicarC
Clica em qualquer botão visível pelo nome, procurando em todas as janelas e na barra de tarefas (ex.: 'Claude - 1 janela em execução'). Nome exato é bem mais rápido.
| Name | Required | Description | Default |
|---|---|---|---|
| alvo | Yes | ||
| confirmado | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It usefully discloses that the search spans every window and the taskbar, but says nothing about what happens on no-match or on multiple matches, whether it needs an unlocked GUI session, or what side effects result from an accidental click on a similarly named control.
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 the scope stated first and the matching-performance tip second; nothing is padded. The trailing example is slightly noisy but earns its place by showing the real taskbar caption format.
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?
An output schema exists, so return values need no explanation, but for a desktop-automation click tool the definition omits failure modes, ambiguity handling, and half of the parameter surface ("confirmado"). An agent cannot tell what happens when several windows expose the same button label.
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%, so the description must explain both parameters. It adds meaning for "alvo" via the exact-name preference, but "confirmado" is never mentioned at all — its name suggests a confirmation gate whose effect on execution is entirely undocumented.
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?
States a concrete verb and resource ("Clica em qualquer botão visível pelo nome") plus the search scope ("procurando em todas as janelas e na barra de tarefas"), with a concrete example. It implicitly distinguishes itself from the window- and browser-scoped siblings (janela_clicar, navegador_clicar) by claiming a whole-desktop search, but never names them.
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 all-windows scope implies when to reach for this over a window-specific click, and "Nome exato é bem mais rápido" hints at an alternative matching strategy, but the agent must infer both. No sibling is named and no exclusion (e.g. "prefira janela_clicar quando sabe a janela") is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tela_descreverA
Tira um print e o modelo de visão local descreve em texto (nenhuma imagem para você).
pergunta: o que você quer saber da tela (ex.: 'apareceu alguma mensagem de erro?').
| Name | Required | Description | Default |
|---|---|---|---|
| pergunta | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose one meaningful trait: the image never reaches the caller, only a textual description produced by a local vision model. It omits other operationally relevant facts such as capture scope (whole desktop vs. focused window), latency, or whether an active/visible screen is required.
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 statements, front-loaded with the core action and followed by the parameter meaning. The line break and quoted parameter line are slightly awkward but nothing is wasted; it could be tightened into a single sentence without loss.
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?
An output schema exists, so return-value explanation is rightly omitted, and the single-parameter surface is small. What remains underspecified is the capture target — the family of siblings suggests window-level and browser-level reading tools exist, so knowing whether this captures the whole screen or a focused window matters for 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?
Schema coverage is 0%, so the description must compensate, and it does: it explains that "pergunta" is what the agent wants to know about the screen and supplies a concrete example. It does not state that the parameter is optional with an empty default or describe behavior when it is omitted.
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?
States a specific verb-and-resource pair: takes a screenshot and has a local vision model describe it as text. The parenthetical "nenhuma imagem para você" usefully clarifies that the caller receives a description, not pixels. It does not, however, contrast itself with visual-reading siblings such as janela_ler or navegador_ler, so an agent must infer the distinction.
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 "pergunta" line implies the usage pattern — ask a targeted question about the screen — and the example ('apareceu alguma mensagem de erro?') reinforces it. There is no explicit when-to-use versus when-not guidance and no mention of alternatives like janela_ler for reading a specific window's text.
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.
37 tool updates
v1.0.0- First observed
abrir_app - First observed
abrir_pr - First observed
braco_liberar - First observed
contexto_projeto - First observed
falar - First observed
git_commit - First observed
git_criar_branch - First observed
git_merge - First observed
git_pull - First observed
git_push - First observed
git_status - First observed
indexar_projeto - First observed
janela_clicar - First observed
janela_digitar - First observed
janela_ler - First observed
janelas_listar - First observed
lembrar - First observed
ler_relevante - First observed
navegador_abrir - First observed
navegador_clicar - First observed
navegador_fechar - First observed
navegador_ler - First observed
navegador_preencher - First observed
navegador_tecla - First observed
organizar_pasta - First observed
pedir_ao_agente - First observed
perguntar_local - First observed
reiniciar_claude - First observed
relatorio_economia - First observed
resumir_arquivo - First observed
resumir_texto - First observed
revisar_projeto - First observed
rodar_testes - First observed
segunda_opiniao - First observed
status_agente - First observed
tela_clicar - First observed
tela_descrever
TDQS
Scored across 37 tools
Most tools have clearly distinct scopes (git_*, navegador_*, janela_*, índice de projeto), but three tools—pergunta_local, segunda_opiniao and pedir_ao_agente—all delegate to local models with overlapping intent, and three separate click tools (navegador_clicar, janela_clicar, tela_clicar) force the agent to infer which layer a button belongs to. The descriptions do help disambiguate, but an agent must read carefully before choosing. A single Maestro router plus two direct LLM tools is redundant surface.
Most names follow a readable Portuguese resource_action pattern (navegador_abrir, janela_ler, git_status, tela_clicar, contexto_projeto), but this is mixed with verb_noun forms (abrir_pr, abrir_app, ler_relevante, indexar_projeto, resumir_texto) and bare verbs/nouns (lembrar, falar, segunda_opiniao, relatorio_economia, status_agente, braco_liberar). All snake_case and legible, but no single predictable convention.
37 tools is well above the practical ceiling for a single MCP server and requires the agent to scan a long catalog before every action. The breadth (browser, desktop windows, vision, git, project indexing, local LLM, TTS, file organizing) is real but would be better split into domain-specific servers or namespaced groups.
Coverage is impressively broad for a local PC agent: browser and window control, git lifecycle (status/pull/branch/commit/merge/push/PR), project indexing and memory, testing, review, and local-model delegation are all present. The main gap is file writing/editing—there are readers and summarizers (ler_relevante, resumir_arquivo) but no clear tool to create or modify a file's content.
Maintenance
Related MCP Connectors
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Source-checked CLI guides and model-aware planning for Claude Code, Codex, and Grok Build.
No-data MCP handoff for local Claude Code to Codex harness moves. $49 lifetime.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude to delegate coding tasks to local Ollama models, reducing API token usage by up to 98.75% while leveraging local compute resources. Supports code generation, review, refactoring, and file analysis with Claude providing oversight and quality assurance.464 npm26AGPL 3.0
- AlicenseAqualityCmaintenanceEnables Claude Code to offload routine code generation and text processing tasks to a local Ollama LLM, saving Cloud API tokens and costs with automatic model selection and security features.11281 npm3Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables Claude Code to hand off bulk, mechanical, read-heavy tasks to a local model, including agentic loops that can read, write, and run commands sandboxed at zero cloud token cost.MIT
- AlicenseAqualityCmaintenanceEnables Claude Code to offload small coding tasks to local Ollama machines and free or paid AI providers, choosing the cheapest available option while enforcing quotas, budgets, and Claude's final review.11MIT