Softoteca
Server Details
Catálogo de software do Brasil: fichas com a origem de cada dado, preços em reais e comparação.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: alternativas finds substitutes from shared categories, buscar_softwares searches the catalog, comparar_softwares compares 2-4 chosen items side by side, listar_categorias enumerates categories, and obter_ficha returns a single software's full record. The descriptions explicitly clarify when to use each (e.g., alternativas for 'substitutes', comparar for 'difference between'). There is minimal risk of an agent misselecting among these.
Four of five tools follow a clean Portuguese verb_noun pattern (buscar_softwares, comparar_softwares, listar_categorias, obter_ficha). 'alternativas' is a bare noun lacking the verb prefix (e.g., listar_alternativas), a minor deviation in an otherwise consistent scheme.
Five tools is a reasonable, well-scoped surface for a read-only software catalog: search, detail, categories, comparison, and alternatives all earn their place. It is slightly lean, with no explicit tool for browsing by provider, but nothing feels redundant.
The core discovery lifecycle is covered: find categories, search, view full detail, compare, and find alternatives. As a read-only catalog this is nearly complete, with only minor gaps such as listing by fornecedor or pagination beyond the 20-result cap left to agents' workarounds.
Available Tools
5 toolsalternativasAlternativasARead-onlyIdempotentInspect
Lista outros softwares publicados nas mesmas categorias de um software do catálogo, com as categorias em comum, primeiro os que têm mais categorias em comum. Use quando a pessoa pedir alternativas, concorrentes ou substitutos de um software.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug do software, como vem da busca ou do endereço softoteca.com.br/software/{slug}. | |
| pagina | No | Página dos resultados, a partir de 1. São 20 por página. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds genuine behavioral value beyond that: it discloses that each result includes the categories in common and that results are sorted by descending shared-category count, which the annotations cannot convey.
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 tight sentences: the first states what is returned and how it is ordered, the second states when to use it. Nothing is redundant and the core behavior is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, non-open-world listing tool with a fully documented two-parameter schema and no output schema, the description covers purpose, trigger, and result ordering well. It could be slightly more complete by noting that pagination limits results to 20 per page in prose, but the schema already carries that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented there (slug format/source, pagina with 20-per-page semantics). The description adds no parameter-level detail such as slug format or pagination interaction, so the baseline 3 applies.
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?
Specific verb+resource: it lists other catalog software published in the same categories as a given software, and even states the ordering rule (most shared categories first). It is clearly distinct in intent from comparar_softwares and obter_ficha, though it never names a sibling explicitly, which is what separates a 4 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?
The second sentence gives an explicit trigger: use it when the user asks for alternatives, competitors, or substitutes for a software. That is clear context for invocation, but there are no exclusions and no routing to alternative tools for adjacent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buscar_softwaresBuscar softwaresARead-onlyIdempotentInspect
Busca softwares no catálogo publicado da Softoteca, o catálogo de software do Brasil (B2B e B2C), com preços em reais. Use quando a pessoa pedir indicação, lista ou opções de software para uma necessidade (ex.: controle de ponto, ERP, emissão de nota fiscal), com filtros opcionais de categoria, tipo, plataforma e preço máximo. Devolve até 20 softwares por chamada, em ordem alfabética, com resumo factual, fornecedor, categorias, menor preço publicado e url_canonica. Para os detalhes de um software, use obter_ficha.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | B2B para software de empresas, B2C para software de consumidores. Software que atende os dois entra nos dois. | |
| pagina | No | Página dos resultados, a partir de 1. São 20 por página. | |
| consulta | Yes | O que se procura, em poucas palavras (ex.: "controle de ponto", "emissão de NFS-e"). Cada palavra precisa aparecer no nome, no resumo, na descrição, no fornecedor ou nas categorias, sem diferença de acento ou de maiúsculas. Pode ficar vazia quando houver outro filtro. | |
| categoria | No | Slug da categoria, como vem da lista de categorias (ex.: "controle-de-ponto"). Veja listar_categorias. | |
| plataforma | No | Plataforma em que o software precisa rodar: web, windows, macos, linux, ios, android. | |
| preco_max_brl | No | Preço máximo em reais. Fica o software com plano gratuito ou com ao menos um plano de preço publicado até esse valor, na periodicidade do próprio plano (mensal, anual ou pagamento único). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real behavioral value beyond that: a hard result cap ('até 20 softwares por chamada'), a deterministic ordering ('ordem alfabética'), and the shape of each returned item. It omits total-match counts and any rate limits, keeping 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?
Front-loaded with purpose, then usage trigger, then filters, then return shape, then the sibling redirect — a clean information hierarchy. It is somewhat dense in a single flowing block, but every sentence carries distinct payload and nothing is repeated.
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?
There is no output schema, and the description compensates by enumerating the returned fields (resumo factual, fornecedor, categorias, menor preço publicado, url_canonica) plus the pagination cap and ordering. Combined with the schema-documented filters and the safety annotations, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents every filter including the enum values and the accent/case-insensitive matching rule. The description only restates the filter categories (categoria, tipo, plataforma, preço máximo) and the 20-per-page size, adding no syntax or format detail. Baseline 3 applies when the schema carries the semantics.
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+resource ('Busca softwares no catálogo publicado da Softoteca') and scopes it (catálogo brasileiro B2B/B2C, preços em reais). It also names the sibling boundary explicitly, pointing to obter_ficha for per-item detail, so an agent can separate it from alternatives without reading 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 an explicit trigger ('Use quando a pessoa pedir indicação, lista ou opções de software para uma necessidade') with concrete examples ('controle de ponto', 'ERP', 'emissão de nota fiscal'), and routes the detail-seeking case to obter_ficha. When-to-use and when-to-use-something-else are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comparar_softwaresComparar softwaresARead-onlyIdempotentInspect
Compara de 2 a 4 softwares do catálogo lado a lado: quadro com preço, campos da ficha, integrações e conformidade, com a origem e a fonte de cada valor. Use quando a pessoa quiser saber a diferença entre softwares ou escolher entre eles.
| Name | Required | Description | Default |
|---|---|---|---|
| slugs | Yes | De 2 a 4 slugs de softwares diferentes, como vêm de buscar_softwares. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds real value beyond that: the output is a comparison table and each value carries its origin/source, and only 2-4 items are accepted — useful expectations for a read tool with no output schema.
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 tight sentences with no filler: the capability and its scope come first, the when-to-use cue second. Nothing repeats the title or wastes space.
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?
With a 1-param schema and no output schema, the description adequately covers purpose, invocation intent and return shape (table plus provenance). Minor omissions remain, such as behavior with unknown or duplicate slugs, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents the 2-4 slug constraint and its origin (buscar_softwares). The description restates the 2-4 range but adds no new syntax, format or edge-case meaning, so the baseline 3 applies.
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 (compara) and resource (2 a 4 softwares do catálogo) and enumerates exactly what the comparison returns: preço, campos da ficha, integrações, conformidade, com origem e fonte. This clearly separates it from single-record siblings like obter_ficha or search-oriented buscar_softwares.
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 quando a pessoa quiser saber a diferença entre softwares ou escolher entre eles" gives an explicit triggering intent. It stops short of naming alternatives (e.g., use obter_ficha for one software) or stating when-not, so it is clear context without explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar_categoriasListar categoriasARead-onlyIdempotentInspect
Lista as categorias do catálogo que têm software publicado, com o slug, o tipo (B2B ou B2C) e quantos softwares cada uma tem. Use para achar o slug certo antes de buscar_softwares com filtro de categoria, ou para mostrar o que o catálogo cobre.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | B2B para software de empresas, B2C para software de consumidores. Software que atende os dois entra nos dois. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered. The description adds genuine extra context beyond that: only categories with published software are returned and the result carries slug/tipo/count. It omits any ordering, pagination or size limits, 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 sentences, zero filler: the first covers what is returned, the second covers when to use it. Purpose is front-loaded ahead of the routing guidance, and there is no redundant restatement of the title.
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?
With no output schema, the description usefully enumerates the returned fields and the filtering constraint, which an agent needs to interpret results. Only ordering and pagination behavior are unmentioned, a minor gap for a small read-only catalog list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'tipo' parameter has 100% schema description coverage including the B2B/B2C semantics and the dual-listing rule, so the schema does the heavy lifting. The description only restates 'tipo (B2B ou B2C)' and does not add filtering syntax or behavior for the parameter, matching the baseline 3.
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 ('Lista as categorias do catálogo') with the exact scope ('que têm software publicado') and the fields returned (slug, tipo, contagem). It also names the sibling it feeds into ('buscar_softwares'), so an agent can differentiate it from the other list/search tools without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two explicit use cases: retrieve the correct slug before calling buscar_softwares with a category filter, or show catalog coverage. The alternative tool and the condition that selects this one are named directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obter_fichaObter fichaARead-onlyIdempotentInspect
Devolve a ficha técnica completa de um software do catálogo: cada campo com valor, origem e URL da fonte, planos e preços em reais, integrações, conformidade (LGPD, eSocial, NF-e e outros), fornecedor e categorias. Use depois de buscar_softwares, ou quando a pessoa citar um software e o slug for conhecido. Cite a url_canonica e a fonte_url de cada dado.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug do software, como vem da busca ou do endereço softoteca.com.br/software/{slug}. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds value beyond them by disclosing the structure of the returned data and imposing an attribution obligation ('Cite a url_canonica e a fonte_url de cada dado'), which is real behavioral context. It does not discuss failure modes for an unknown slug, so not 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 sentences: the first front-loads what the tool returns, the second covers when to use it plus the citation rule. Every clause is informative, though the field enumeration is dense and the citation instruction is slightly buried at the end.
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?
With no output schema, the description carries the burden of explaining returns and does so thoroughly, listing each category of data included. Combined with the precondition on buscar_softwares and the slug source, an agent has everything needed to call and use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and schema description coverage is 100% – the schema already explains that the slug comes from search or the softoteca.com.br/software/{slug} URL. The description merely echoes that the slug must be known, adding no syntax, format, or validation detail. Baseline 3.
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 ('Devolve a ficha técnica completa de um software do catálogo') and enumerates the exact payload (campos com origem e URL, planos e preços, integrações, conformidade, fornecedor, categorias). It also names the sibling it follows (buscar_softwares), so an agent can separate it from comparar_softwares or alternativas without opening a 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 sequencing ('Use depois de buscar_softwares, ou quando a pessoa citar um software e o slug for conhecido'), which tells the agent the precondition and the trigger condition. No when-not guidance or contrast with comparar_softwares/alternativas, so it stops short of full routing coverage.
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.
5 tool updates
- First observed
alternativas - First observed
buscar_softwares - First observed
comparar_softwares - First observed
listar_categorias - First observed
obter_ficha
Related MCP Connectors
Diretório de dados de empresas brasileiras para agentes de IA.
Preços, atas, contratos e sanções das APIs públicas de compras do governo brasileiro
Compare software: verified pricing with its source and date, and ranked alternatives.
Notas fiscais eletrônicas brasileiras: consulta, análise, manifestação e emissão de NFS-e.
Related MCP Servers
AlicenseAqualityCmaintenancerazilian public procurement (PNCP) and Federal Revenue CNPJ data for any MCP client. 18 tools covering bids, contracts, atas de registro de preço, annual procurement plans, CNPJ enrichment, plus temporal aggregation and period comparison. MIT licensed, maintained by Licinexus under Law 14.133/2021.1830 npm80MIT- AlicenseAqualityBmaintenanceDados brasileiros reais (CNPJ, CEP, taxas, CPF) via MCP, pagos em USDC por chamada (x402).546 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with verified, monthly software pricing data for categories like VPNs and cloud backup, enabling price comparisons and identifying cheapest providers.MIT
- AlicenseBqualityBmaintenanceEnables querying audited ANP fuel prices across Brazilian states and comparing SEFAZ NFC-e grocery basket costs. Also provides regional cost-of-living metrics and live BRL/USD comparisons for analysts, expats, and digital nomads.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.