Skip to main content
Glama
VanguardIA-Tech

winthor-mcp

winthor-mcp

Servidor MCP para o ERP TOTVS WinThor. Ele lê o catálogo de rotinas direto do Oracle da sua instalação, resolve a permissão da própria pessoa com a mesma regra que o ERP aplica e executa rotinas nativamente pelo WinThor Anywhere (WTA). Este é o primeiro MCP de WinThor — não existe hoje nenhum outro, oficial ou de comunidade.

A ideia é simples: em vez de manter uma lista de rotinas escrita à mão dentro do projeto, o servidor pergunta ao seu banco. Numa base real isso dá 1.686 rotinas, e a rotina que a sua casa desenvolveu aparece exatamente como as de fábrica. A permissão sai do mesmo lugar de sempre — rotina 530 / PCCONTRO para as rotinas desktop e rotina 807 (perfis) para as rotinas web —, então ninguém enxerga pelo MCP nada que já não enxergasse no WinThor.

Onde este servidor roda

Dentro da rede do cliente. Não é um SaaS e não há serviço hospedado.

O WinThor é on-premise: o Oracle fica na sua infraestrutura e o WTA quase sempre responde num IP privado. O servidor precisa alcançar os dois ao mesmo tempo, e o único lugar onde isso é verdade é dentro da sua rede. Ele fala com o cliente MCP (Claude Desktop, Claude Code, Cursor) por stdio, como um processo local — não abre porta, não escuta conexão de fora.

Related MCP server: TOTVS RM Database MCP Server

O que ele consegue

  • Listar o catálogo de rotinas lido de PCROTINA, com módulo, submódulo, executável, versão e se a tela é web.

  • Descrever uma rotina específica e dizer por onde ela pode ser executada.

  • Resolver quem é a pessoa conectada e quais rotinas ela pode abrir, com a regra do próprio ERP.

  • Executar rotinas que têm serviço no WTA, chamando o serviço REST da TOTVS.

  • Diagnosticar a instalação: se o Oracle responde, se o WTA está configurado e se a identidade informada é válida.

Ferramentas MCP expostas: whoami, listar_rotinas, descrever_rotina, executar_rotina, diagnostico.

O que ele não consegue

Vale ler esta lista antes de instalar.

  • Rotina sem serviço no WTA não executa. Muita rotina do WinThor só existe como executável Delphi. Nesses casos o servidor declara "só no desktop" e para por aí — ele não reimplementa a rotina.

  • Sem WINTHOR_WTA_URL configurada, o servidor é só leitura. Ele continua útil para catálogo, permissão e diagnóstico, mas diz com todas as letras que não executa nada.

  • Ele não emula regra de negócio em SQL. O servidor nunca monta INSERT ou UPDATE contra as tabelas do ERP para simular o efeito de uma rotina. Reproduzir a regra em SQL seria criar uma segunda versão do WinThor, com divergências que só aparecem no fechamento.

  • Ele não amplia permissão de ninguém. Se a pessoa não tem a rotina liberada na 530 ou no perfil da 807, o MCP também não tem.

Requisitos

  • Python 3.12 ou superior (só se você for instalar via uvx/pipx; com Docker, não precisa de Python na máquina).

  • Uma conta Oracle de leitura no schema do WinThor, com acesso a PCROTINA, PCCONTRO, PCUSUARI, PCMODULO e às demais tabelas de cadastro.

  • Opcionalmente, a URL do WinThor Anywhere. Sem ela o servidor sobe em modo leitura.

O driver Oracle roda em modo thin: não é preciso instalar Instant Client, tnsnames.ora nem wallet.

Instalação

uvx (recomendado)

uvx winthor-mcp

Não instala nada permanente: o uv baixa, resolve e executa.

pipx

pipx install winthor-mcp
winthor-mcp

Docker

A imagem é construída a partir da raiz do repositório:

docker build -f docker/Dockerfile -t winthor-mcp .
docker run --rm -i --env-file .env winthor-mcp

Ou com Compose:

docker compose -f docker/compose.yaml run --rm winthor-mcp

Use run, não up: é um servidor stdio, ele precisa do stdin ligado ao cliente MCP.

Configuração

Todas as variáveis usam o prefixo WINTHOR_. Podem vir do ambiente ou de um arquivo .env no diretório de trabalho. Copie o .env.example como ponto de partida.

Variável

Obrigatória

Padrão

Para que serve

WINTHOR_DB_HOST

sim

Host do Oracle do WinThor.

WINTHOR_DB_PORT

não

1521

Porta do listener Oracle.

WINTHOR_DB_SERVICE

sim

Service name do banco. O driver thin usa Easy Connect; não é SID.

WINTHOR_DB_USER

sim

Usuário Oracle de leitura.

WINTHOR_DB_PASSWORD

sim

Senha desse usuário Oracle.

WINTHOR_DB_SCHEMA

não

igual ao DB_USER, em maiúsculas

Dono das tabelas do ERP, quando não for o mesmo usuário que lê.

WINTHOR_WTA_URL

não

vazio

Base do WinThor Anywhere, http://host:porta. Sem ela o servidor fica só em leitura.

WINTHOR_WTA_TIMEOUT_SEGUNDOS

não

30.0

Tempo máximo de espera por uma chamada REST ao WTA.

WINTHOR_USUARIO

não

vazio

Matrícula do WinThor de quem vai usar o servidor.

WINTHOR_SENHA

não

vazio

Senha do WinThor dessa mesma pessoa.

WINTHOR_CACHE_SEGUNDOS

não

300

Validade do cache de catálogo e permissão.

WINTHOR_PERMITIR_ESCRITA

não

false

Libera operações de escrita via WTA. Desligado por padrão.

Exemplo (host e credenciais fictícios):

WINTHOR_DB_HOST=oracle.exemplo.local
WINTHOR_DB_PORT=1521
WINTHOR_DB_SERVICE=WINT
WINTHOR_DB_USER=consulta_mcp
WINTHOR_DB_PASSWORD=troque-esta-senha
WINTHOR_DB_SCHEMA=WINTHOR
WINTHOR_WTA_URL=http://winthor.exemplo.local:8080
WINTHOR_USUARIO=1234
WINTHOR_SENHA=troque-esta-senha
WINTHOR_PERMITIR_ESCRITA=false

WINTHOR_USUARIO e WINTHOR_SENHA são a matrícula e a senha que a pessoa já digita no WinThor desktop. Elas identificam quem está usando o servidor e é delas que sai a permissão aplicada. Sem elas, o servidor sobe, mas não consegue resolver a identidade — o diagnostico avisa.

Conectando no cliente MCP

O servidor é stdio. A configuração é a mesma nos três clientes; muda só o arquivo.

  • Claude Desktopclaude_desktop_config.json (macOS: ~/Library/Application Support/Claude/; Windows: %APPDATA%\Claude\)

  • Claude Code.mcp.json na raiz do projeto, ou claude mcp add na linha de comando

  • Cursor.cursor/mcp.json no projeto, ou ~/.cursor/mcp.json

{
  "mcpServers": {
    "winthor": {
      "command": "uvx",
      "args": ["winthor-mcp"],
      "env": {
        "WINTHOR_DB_HOST": "oracle.exemplo.local",
        "WINTHOR_DB_PORT": "1521",
        "WINTHOR_DB_SERVICE": "WINT",
        "WINTHOR_DB_USER": "consulta_mcp",
        "WINTHOR_DB_PASSWORD": "troque-esta-senha",
        "WINTHOR_WTA_URL": "http://winthor.exemplo.local:8080",
        "WINTHOR_USUARIO": "1234",
        "WINTHOR_SENHA": "troque-esta-senha"
      }
    }
  }
}

Com Docker, troque o comando:

{
  "mcpServers": {
    "winthor": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--env-file", "/caminho/para/.env", "winthor-mcp"]
    }
  }
}

Depois de salvar, reinicie o cliente e chame diagnostico para conferir se o Oracle responde e se o WTA foi encontrado.

Como descobrir a URL do WTA na sua instalação

O WinThor Anywhere é uma plataforma OSGi (Karaf + Pax Web). Todos os serviços compartilham a mesma porta HTTP, então basta descobrir host e porta uma vez.

1. Teste as portas comuns. Na prática, a instalação está numa destas: 80, 8080, 8180, 8181, 8182, 9090.

2. Confirme pelo portal. Se o endereço estiver certo, o portal do WTA responde em:

http://host:porta/portal
curl -I http://winthor.exemplo.local:8080/portal

3. Se nenhuma porta responder, leia a configuração. A porta fica no arquivo org.ops4j.pax.web.cfg, na chave org.osgi.service.http.port.

Caminho no Windows:

C:\pcsist\produtos\winthor\etc\org.ops4j.pax.web.cfg

Caminho no Linux:

/opt/pcsist/produtos/winthor/etc/org.ops4j.pax.web.cfg
grep org.osgi.service.http.port /opt/pcsist/produtos/winthor/etc/org.ops4j.pax.web.cfg

O valor encontrado é a porta que vai em WINTHOR_WTA_URL.

Segurança

  • A conta Oracle deve ser só de leitura. O servidor nunca monta INSERT ou UPDATE contra as tabelas do ERP. Crie um usuário dedicado com SELECT e nada além disso — assim o limite não depende do código, depende do banco.

  • Escrita vem desligada. WINTHOR_PERMITIR_ESCRITA é false por padrão. Quem liga é o administrador, conscientemente, sabendo que a partir dali execuções via WTA podem alterar dados.

  • A permissão é sempre a da pessoa. O servidor resolve o acesso com a regra do próprio ERP (530 / PCCONTRO para desktop, 807 para web). Ele não tem caminho para contornar isso.

  • Senha nunca é parâmetro de ferramenta. Nem a do Oracle, nem a do WinThor. As credenciais entram por variável de ambiente ou .env e ficam no processo; nenhuma ferramenta MCP as recebe, e portanto o modelo não as vê e elas não aparecem no histórico da conversa.

  • Não versione o .env. Ele já está no .gitignore.

  • O servidor fica na rede do cliente. Não exponha a máquina que o roda à internet: ela tem acesso simultâneo ao Oracle do ERP e ao WTA.

Licença

MIT. Veja LICENSE.

Aviso

Este é um projeto independente e não tem qualquer vínculo com a TOTVS. WinThor, WinThor Anywhere e TOTVS são marcas da TOTVS S.A., citadas aqui apenas para identificar o sistema com o qual este servidor se comunica. O projeto não é endossado, patrocinado nem suportado pela TOTVS.

Available Tools

6 tools
descrever_rotinaDescrever RotinaA

Detalha uma rotina e diz, com todas as letras, se dá para executá-la.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoYesCódigo da rotina, como aparece no WinThor.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. It adds the useful fact that the tool explicitly states whether the routine can be executed. However, it does not mention read-only status, error handling, or any side effects. The description is minimal but not contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys both the action and the key behavioral output. There is no fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema present), the description covers the core purpose and the critical executability check. It lacks details on edge cases (e.g., non-existent routine) but these are likely covered by the output schema. Adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% – the parameter 'codigo' is described as 'Código da rotina, como aparece no WinThor', which is clear. The description adds no further parameter context, so baseline 3 applies since the schema already documents it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Detalha uma rotina e diz, com todas as letras, se dá para executá-la' clearly states the verb (detail) and resource (routine) and adds the specific behavior of stating executability. It doesn't explicitly contrast with sibling tools like listar_rotinas or diagnostico, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: given a routine code, it describes and tells executability. However, it gives no explicit guidance on when to choose this over listar_rotinas (listing routines) or executar_operacao_winthor (executing), nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnosticoDiagnosticoD

O que está de pé: Oracle, identidade, WinThor Anywhere e o catálogo.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral disclosure burden. It fails to disclose any side effects, authorization requirements, or output characteristics. The tool's behavior is completely opaque beyond the vague listing of components.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise in length but fails to convey essential information. It is not structured to front-load the tool's purpose or usage; it reads as a cryptic note rather than a functional specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description does not explain what the tool returns or how the output relates to the listed components. There is no elaboration on the diagnostic scope, expected results, or error conditions. For a tool with zero parameters and a potentially rich output, the description is severely incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline for parameter semantics is 4. The description does not need to explain parameters, and the empty schema leaves no room for misinterpretation. The description adds no parameter-related value, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'O que está de pé: Oracle, identidade, WinThor Anywhere e o catálogo' implies a status check of specific components but never states a verb or explicit action. It reads more like a fragment of an expected output than a statement of what the tool does, and it does not differentiate from sibling tools such as listar_rotinas or whoami.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions. The description is purely declarative and provides no situational cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

executar_operacao_winthorExecutar Operacao WinthorA

Chama uma operação do WinThor Anywhere com o usuário desta pessoa.

Leitura roda direto. Operação que grava no ERP exige confirmar=true e o administrador ter ligado a escrita — antes disso, mostre à pessoa o que vai acontecer.

ParametersJSON Schema
NameRequiredDescriptionDefault
operacaoYesNome da operação (ver listar_operacoes_winthor).
confirmarNoObrigatório quando a operação grava no ERP.
parametrosNoParâmetros da operação.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the side-effect nature (writes need confirmation) and the user context, which is critical for an execution tool. It does not mention errors or edge cases, but the presence of an output schema covers return values, so this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with the purpose in the first sentence and usage conditions in the second paragraph. It is front-loaded and avoids redundancy. Could be slightly more structured, but it's efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (executing operations with side effects) and the lack of annotations, the description covers the essential operational context: when to confirm, what to show the user, and the user context. The output schema handles return value details, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are documented in the schema. The description adds no extra parameter-level meaning beyond what the schema already states (e.g., confirmar is required for writes). It does not compensate for any gaps because there are none, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Chama uma operação do WinThor Anywhere') and the resource (WinThor Anywhere operation), with the additional context of using the person's user. It distinguishes from siblings by implying execution rather than listing, though it doesn't explicitly name alternatives. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit conditions: reads run directly, writes require confirmar=true and admin-enabled writing, and instructs to show the person what will happen before a write. This gives clear when-to-use guidance, though it doesn't explicitly state when to prefer sibling tools like listar_operacoes_winthor (but that's implied by the schema).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listar_operacoes_winthorListar Operacoes WinthorA

As operações do WinThor Anywhere que dá para chamar aqui.

São as APIs nativas do WTA (clientes, produtos, pedidos, preços, estoque), com os parâmetros de cada uma. É por elas que se consulta e opera o ERP no nome da própria pessoa.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds useful context about identity and scope ('opera o ERP no nome da própria pessoa') and implies the tool is a read-only catalog, but it does not explicitly state that listing causes no side effects or that actual execution is done elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the core message, and stays focused on the operations catalog. It provides a couple of concrete WTA API categories, keeping the text informative without excess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the zero parameters and the existence of an output schema, the description provides enough basic context for this simple catalog tool. It falls short of distinguishing itself from `listar_rotinas` and does not explicitly mention that actual execution happens through `executar_operacao_winthor`.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters in the input schema, so the baseline is 4. The description reasonably mentions the parameter payload of the operations ('com os parâmetros de cada uma'), but there is no provider to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('operações do WinThor Anywhere') and the context ('APIs nativas do WTA'), making clear the tool is a catalog of callable operations. However, the listing verb ('listar') is only present in the name/title, and the description does not explicitly contrast itself with the execution sibling `executar_operacao_winthor`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to see which operations are callable and what their parameters are ('que dá para chamar aqui', 'com os parâmetros de cada uma'), but it gives no explicit guidance about when to use it versus alternatives like `executar_operacao_winthor` or `listar_rotinas`. Usage context is implicit, not structured.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listar_rotinasListar RotinasB

As rotinas que esta pessoa tem liberadas, do catálogo do próprio ERP.

ParametersJSON Schema
NameRequiredDescriptionDefault
buscaNoTexto, código ou nome do executável.
limiteNoQuantas devolver.
moduloNoFiltra por módulo do WinThor.
apenas_executaveisNoSó o que roda pelo WinThor Anywhere.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It adds useful context that only permitted routines are returned and that the source is the ERP's own catalog, but it does not explicitly state that the operation is read-only, whether it reflects the currently authenticated user, or what happens when the person has no liberated routines.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one compact sentence with no filler and puts the central scoping condition ('tem liberadas') right after the noun. It would be slightly stronger with an explicit verb like 'Lista/Devolve', but it is still appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return shape and the input schema covers parameters, so the remaining burden is scope and context, which the description partially addresses with the permission and ERP-catalog information. However, it does not clarify how this listing relates to listar_operacoes_winthor or when an agent should prefer one sibling over the other.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all four optional parameters, so the schema already explains busca, limite, modulo, and apenas_executaveis. The tool description adds no parameter-level meaning beyond that, which is the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('rotinas') and the key scope ('que esta pessoa tem liberadas, do catálogo do próprio ERP'), so an agent understands it lists a user's authorized routines from the ERP catalog. The title supplies the missing verb, but the description never refers to sibling tools and relies on the 'rotinas' vs 'operações' wording to differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool instead of the sibling tools. It does not name alternatives such as listar_operacoes_winthor or descrever_rotina, nor does it state exclusions such as 'when you need a single routine's details'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiWhoamiA

Quem está usando o servidor, e o tamanho do acesso dessa pessoa.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It reveals the tool reports the current user and access size, which implies a read-only introspection operation. However, it does not explicitly mention absence of side effects, authentication requirements, or whether the result changes across the session.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, sentence-long description that directly answers 'who/what does this do' with no fluff or repetition. Every part contributes, and it is appropriately short for a zero-parameter introspection tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters and an output schema present, the description sufficiently covers the tool's purpose and behavior. The phrase 'tamanho do acesso' is a bit vague, but given the output schema would define the exact shape, the context is effectively complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is 100%. There are no parameters requiring additional semantics, and the baseline for a parameterless tool is 4. The description adds no missing parameter information, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states the tool identifies the current user and the extent of their access, with a specific verb and resource. It is clear enough to distinguish from the unrelated sibling tools (routine/operation management), though it does not explicitly name a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended context is clearly implied: use it to determine the authenticated caller and their access level. There are no overlapping sibling tools that need exclusion, so the described context is adequate, though it never explicitly says when to use versus alternatives.

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.

  1. 6 tool updatesv0.1.0
    • First observeddescrever_rotina
    • First observeddiagnostico
    • First observedexecutar_operacao_winthor
    • First observedlistar_operacoes_winthor
    • First observedlistar_rotinas
    • First observedwhoami

TDQS

B3.2/5.0

Scored across 6 tools

Disambiguation5/5

Cada ferramenta tem um propósito claramente distinto: listar operações, executar operações, listar rotinas, descrever uma rotina, identificar o usuário e diagnosticar o sistema. Não há sobreposição significativa entre elas.

Naming Consistency3/5

A maioria segue o padrão verbo_substantivo (listar_operacoes_winthor, executar_operacao_winthor, descrever_rotina, listar_rotinas), mas 'diagnostico' é um substantivo solto e 'whoami' é um comando em inglês, quebrando a consistência do padrão.

Tool Count5/5

Seis ferramentas é um número adequado para um servidor de integração com ERP: descoberta, execução, consulta de rotinas, identidade e diagnóstico. Cada ferramenta é necessária e o conjunto é equilibrado.

Completeness5/5

A superfície cobre bem o domínio: permite descobrir operações, executá-las, listar e descrever rotinas, verificar o usuário e o estado da integração. Não há lacunas óbvias para o escopo proposto.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers