sih-br-mcp
Server Quality Checklist
Latest release: v0.12.1
- Disambiguation5/5
Each tool has a clearly distinct purpose, covering data retrieval, rankings, lists, trends, rates, indicators, classification, and metadata. Even overlapping concepts like ICSAP and hospitalizations are separated into specific functions (e.g., get_icsap vs. get_hospitalizations), with detailed descriptions preventing confusion.
Naming Consistency4/5Names follow a verb_noun pattern with verbs like get, list, rank, compare, and classify. Minor inconsistencies exist in number usage (e.g., get_hospitalizations vs. get_hospitalization_trends), but overall the pattern is predictable and readable.
Tool Count5/5With 12 tools, the set is well-scoped for a domain-specific health data server—not too sparse to cover essential operations, and not bloated with redundant functions. Each tool serves a distinct analytical or informational purpose.
Completeness5/5The tool surface comprehensively covers the domain: metadata discovery, raw data queries, trend analysis, rate computation, comparative analytics, classification, and indicator calculation. It includes both general hospitalizations and ICSAP-specific views, with no obvious missing operations for typical use cases.
Average 4/5 across 12 of 12 tools scored. Lowest: 3.4/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 109 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description exposes important behavioral nuances: race is absent for 1998–2007, municipality_code is null for 1992–1997, and the default universe for percentage calculation excludes obstetric and long-stay hospitalizations. These details go beyond the basic schema and help set expectations, though the return format is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that packs many caveats (race availability, series revision, universe definition) without clear structure or bullet points. While the information is relevant, it could be more organized for quick agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description hints at output by mentioning percentages but does not explain the return format, grouping behavior, or whether the result is aggregated by group_by. Without an output schema, this missing information leaves the agent to infer the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Every parameter has a Portuguese description that adds context beyond the schema's types and enums. For example, the race parameter explains the temporal limitation, and the universe parameter clarifies the default behavior. This goes beyond the baseline schema coverage, providing meaningful semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries hospitalizations for CSAP (ambulatory care sensitive conditions) and lists filter options. However, it does not explicitly distinguish this from similar sibling tools like get_hospitalizations or get_icsap_indicators, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus the many sibling tools. It references get_available_years for additional details on data limitations, but does not explain scenarios where this tool is preferred over alternatives such as get_icsap_indicators or compare_icsap_trends.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It accurately describes the read-only nature (listing data) and the return format, but does not mention potential side effects, authentication requirements, or any behaviors beyond returning the list. For a simple read operation, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant words. It is well-structured and directly states the function and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description sufficiently covers the purpose, source ordinance, and return fields. It lacks explicit mention of ordering, filtering, or potential edge cases, but these are not critical for a straightforward listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described in detail (e.g., group_code shows example 'g01' and behavior when omitted). The description itself does not add extra semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing the 19 CSAP groups according to a specific ordinance, and specifies the returned fields (code, name, CID-10 codes). It is distinct from sibling tools that retrieve indicators or classify conditions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives (e.g., get_icsap or classify_as_csap). It provides factual information about the output but lacks guidance on selection criteria or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Sem annotations, a descrição carrega o peso de revelar comportamento. Ela menciona o detalhe importante sobre a base do parâmetro 'uf' nos anos 1992-1997, o que é um aviso comportamental relevante. No entanto, não informa se a operação é somente leitura, não descreve formato de retorno nem possíveis limitações de dados. Há transparência parcial, mas não completa.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A descrição é curta (duas frases), front-loaded com o propósito principal e inclui apenas o caveat essencial sobre o significado de 'uf'. Não há redundância nem detalhes desnecessários. Cada palavra contribui para o entendimento.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Para uma ferramenta com 6 parâmetros, sem output schema e sem annotations, a descrição fornece a finalidade e uma advertência crucial. Ela menciona que gera rankings, dando uma ideia do tipo de retorno. No entanto, não descreve a estrutura exata do resultado nem outros detalhes de saída, o que seria útil. A referência a get_available_years ajuda, mas ainda há espaço para mais especificidade.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
O schema cobre 100% dos parâmetros com descrições, dando baseline 3. A descrição adiciona valor além do schema ao explicar que o significado de 'uf' varia por ano, o que afeta diretamente o parâmetro compare_by. Isso é informação semântica útil que não está no schema. Portanto, nota 4 é apropriada.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
A descrição afirma claramente que a ferramenta compara internações entre UFs ou regiões do Brasil, gera rankings e identifica variações regionais. Isso é específico e distingue de outras ferramentas de comparação, embora não mencione explicitamente alternativas como compare_icsap_trends. A menção ao significado especial de 'uf' em certos anos adiciona precisão ao propósito.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
A descrição indica quando usar (para comparar internações e gerar rankings) e referencia get_available_years para esclarecimentos, mas não fornece diretrizes explícitas sobre quando NÃO usar esta ferramenta em favor de outras, como compare_icsap_trends ou get_hospitalization_rates. Há contexto implícito de uso, mas falta orientação explícita sobre alternativas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 discloses that the tool only handles CID-10 and returns the CSAP group if applicable, and notes that CID-9 codes are handled elsewhere. However, it does not disclose whether the operation is read-only, how invalid or malformed codes are handled, or any error/edge-case behavior. Given it's a classification tool, this is likely read-only, but the absence of explicit safety or error information leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the core purpose. The second sentence, while informative, is a bit long and includes a file path, but it still efficiently conveys the CID-9 exclusion. No wasted words, and the key message is clear without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain the return structure. It says 'Retorna o grupo CSAP correspondente se aplicável', which gives some idea but not the exact format (e.g., object with code and group, or just group). It also does not mention handling of empty arrays, invalid codes, or whether it accepts multiple codes (implied by 'um ou mais' but not detailed). For a simple tool it is adequate, but more detail on return structure would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – the parameter cid_codes is clearly described as 'Códigos CID-10 para classificar (ex: [\'J18\', \'A09\', \'K35\'])'. The description adds the return behavior (group if applicable) and the CID-9 exclusion, but these are more about tool behavior than parameter meaning. It does not add extra syntax or format details beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Classifica) and resource (códigos CID-10) and clearly defines the outcome (CSAP or not, with group if applicable). It distinguishes itself from sibling tools like list_csap_groups and rank_csap_groups by focusing on individual code classification, and explicitly excludes CID-9 codes, leaving no ambiguity about its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when NOT to use this tool: for CID-9 codes from SIH 1992–1997, which are handled by a derived list. This gives clear exclusion criteria. It does not explicitly say 'use for CID-10' but that is implied by the exclusion and the tool's name, so usage context is clear, though it lacks explicit alternatives for CID-10 classification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 uses the verb 'Consulta' (query), which implies a read-only operation, and does not mention any side effects or data modifications. However, it does not explicitly state that no changes are made or address potential rate limits or other behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that packs many essential caveats. While it is long, the information is necessary and not redundant. It is structured logically, starting with the core purpose and then detailing specific data limitations, making it efficient for the complexity it covers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, many historical nuances), the description is complete. It covers all parameters, explains edge cases (race, CID revisions, UF interpretation), and directs users to get_available_years for further details. No output schema is present, but that is not required for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage of parameter descriptions, but the description adds significant meaning beyond the schema. It clarifies important nuances: race only exists from 2008 onward, CID-9 vs CID-10 distinction, UF refers to establishment not residence, and value is nominal in the local currency. These details are critical for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: querying SUS hospital admission data with flexible filters and aggregation across multiple dimensions. It specifies the resource (hospitalizations) and the main capabilities, making it distinct from other tools like trends or comparisons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus the sibling tools. It references get_available_years for more details but does not clarify the selection criteria among the many related functions (e.g., when to use get_hospitalization_trends instead). Lacks explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the freshness status values and the per-year attribute differences, providing rich context. It does not specify the exact return structure (list vs object), but the content is thoroughly described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph with extensive technical detail. While it covers necessary information for a metadata tool, it is not front-loaded or easily scannable, and could be restructured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description explains the main output: available years, freshness, and per-year differences. It omits the exact response format, but for a listing tool this is likely inferable. It is otherwise complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty schema, so there is nothing to explain. The baseline score of 4 applies, and the description appropriately does not add unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns available years in the loaded SIH-SUS data, plus freshness status and per-year differences. This distinct purpose differentiates it from sibling tools focused on analytics or list operations, and uses a specific verb ('Retorna') and resource ('anos disponíveis').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. However, the nature of the tool (listing available years) implies it is a prerequisite for filtering by year in other queries. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for conveying behavior. It states what the tool lists but does not explicitly mention that it is a read-only operation or its output format. Since it is a straightforward listing, the behavior is largely implied, but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that convey the core functionality and additional mapping context without unnecessary detail. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema tool, the description provides sufficient context about what the tool returns (chapter list with codes and ranges) and why it is relevant (mapping for older cubes). It could optionally mention the output format, but given the simplicity, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the description does not discuss any. Since the baseline for zero parameters is 4, and the description adds no conflicting or additional parameter information, this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists the 22 ICD-10 chapters with their codes and diagnostic ranges, which is a specific and unambiguous purpose. It also provides additional context about mapping older CID-9 cubes to CID-10 chapters, distinguishing it from simple lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for referencing ICD-10 chapters or mapping CID-9 data, but does not explicitly state when to use this tool versus the sibling tools. It mentions the mapping file but does not provide direct instructions like 'use this to get chapter names' or 'use this for CID-9 to CID-10 mapping'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses important data quirks: the 1992–1997 ICSAP uses a derived non-official ICD-9 list, g03 and g05 are not comparable with 1998+, and `value` is nominal in the currency of the time. It also explains the default universe exclusion. It does not mention sorting order or tie-breaking, but the disclosed caveats are substantial and valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary purpose, then presents caveats in a compact manner. It is not overly verbose and each sentence adds value. The structure is logical, starting with the main action and then detailing edge cases and defaults.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and moderate complexity, the description covers the core purpose, key metrics, historical caveats, and universe behavior. It lacks an explicit description of the output format (e.g., ordering, ties, or the 'notes' field it references), but the schema covers limits and filters. Overall, it is sufficiently complete for an agent to call correctly, with minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics for two parameters: it clarifies that `value` is nominal currency (affecting interpretation) and explains the `universe` default and what it excludes. This goes beyond the schema's brief descriptions, warranting a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Gera ranking'), the resource ('19 grupos CSAP'), and the metrics used (number of hospitalizations, days, or value). It also adds that it identifies main avoidable causes, distinguishing it from raw data retrieval tools like get_hospitalizations. The purpose is unambiguous and differentiated from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about the default universe and historical caveats, but it does not explicitly state when to use this tool versus alternatives such as list_csap_groups or get_icsap. It implies usage for ranking, but no exclusions or routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the burden. It discloses specific data quirks (UF interpretation in 1992–1997 and attribution of missing dates to billing month) and references get_available_years and notes for further details, which is above average but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using three sentences to convey purpose, key caveats, and references. It is well organized and free of redundancy, though it could slightly benefit from explicit output description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not detail the output structure (e.g., fields in the returned series), but it points to get_available_years and notes, which may fill that gap. Given the absence of an output schema, this is a minor shortfall but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for all 5 parameters (100% coverage), and the description adds valuable context, particularly the special meaning of `uf` for early years and the default granularity. This enriches understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns time series of hospitalizations ('séries temporais de internações') with optional monthly/yearly granularity, effectively distinguishing it from sibling tools like get_hospitalizations (raw records) or get_hospitalization_rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions usefulness for trend and seasonality analysis, and provides important caveats about pre-1998 data. However, it does not explicitly contrast with alternative tools, though the time-series focus is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It transparently explains the tool's calculations (trends, variation, best/worst) and important caveats about ICD-9 derived data for 1992-1997 and the 'uf' definition. It does not detail any side effects or data source specifics beyond those notes, but for a read-only analysis tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph but is focused and necessary, covering purpose, parameter restrictions, and data caveats. It is slightly verbose but not redundant. It front-loads the purpose and then elaborates on edge cases, which is appropriate for a tool with complex data limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, but the description states what the tool calculates (trends, annual variation, best/worst) which is sufficient for expected outputs. It mentions 'ver as notes' for additional details, which is a minor gap but not critical. Overall, it gives enough context for an agent to decide whether to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all 7 parameters with descriptions (100% coverage). The description adds meaningful context for 'universe' (what is excluded from numerator/denominator) and 'indicator' (restrictions on rate_per_10k). It does not redefine parameters already well-described in the schema, but the additional caveats improve understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: comparative temporal analysis of ICSAP between UFs or CSAP groups, including trend calculation, annual variation, and identification of best/worst performers. This specific verb-noun-resource structure distinguishes it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance for different indicators (percentage/count vs rate_per_10k, which requires population and only certain years) and explains the universe parameter's default behavior. It mentions get_available_years for valid years, but does not explicitly contrast with sibling tools like get_icsap_indicators or compare_regions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral details: the denominator is sourced from two different files depending on the year, and age filtering before 2000 only works within specific ranges. It also states that the response indicates the source file per year and warns when mixing, providing full transparency about the tool's behavior and potential pitfalls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that packs a lot of information, but it remains coherent and readable. It is not overly verbose, but the complexity of the caveat makes it slightly long. The structure is logical, moving from the main function to the denominator logic and finally to the response details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description mentions what the response includes (population_source and a warning), which helps an agent understand the expected output. Combined with the parameter descriptions, this provides a fairly complete picture for using the tool. Some details like the exact format of the warning are omitted, but overall it is sufficiently complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% coverage with descriptions for all 10 parameters. The description adds meaningful clarification about the age_min and age_max parameters (the pre-2000 caveat), enhancing understanding beyond the schema. It also clarifies the rate_per default and rate_type, though these are already in the schema. The added context justifies a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: calculating hospitalization rates per population (taxas de internação por população). It specifies the denominator source and the age filter caveat, making the intent unambiguous. While it doesn't explicitly differentiate from siblings, the core function is distinct and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on the calculation logic (denominator from two files) and the age filter limitation, but does not explicitly state when to use this tool versus alternatives like get_hospitalizations or get_hospitalization_trends. The guidance is implicit rather than explicit, leaving some ambiguity for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/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 burden. It discloses that the default universe excludes obstetric procedures, childbirth, and long-stay hospitalizations, and notes that UF in 1992-1997 refers to the file's UF. It also warns about comparability issues across years. These are critical behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized. It leads with the core calculation, then flows into year-specific caveats and the universe default. Each sentence adds value; no fluff. It's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, no output schema, and no annotations, the description covers the most critical aspects: the calculation formula, default behavior, and critical data caveats. It also references get_available_years for further details. However, it doesn't describe the output format or how to interpret results, which could be a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful context beyond the schema. It explains the 'universe' parameter's default and what it excludes, and warns about 'race' parameter validity only from 2008. This is genuinely useful guidance that the schema alone doesn't provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact purpose: 'Calcula indicadores de ICSAP: percentual (ICSAP/Total×100)' with a clear verb and resource. It distinguishes itself from siblings like get_icsap (which likely returns raw counts) by focusing on the percentage indicator, and mentions key metrics for primary care evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage constraints: grouping by race only from 2008 onward, year-specific caveats (1992-1997 non-official CID-9 list), and default universe behavior. References get_available_years for race availability. While it doesn't explicitly name alternatives, it gives enough context to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md: