Open Economics
Server Details
Discover, resolve, and query official Brazilian economic data with semantic search and provenance.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- felipegambettadesouza6-jpg/open-economics
- GitHub Stars
- 0
TDQS
Scored across 19 tools
Most tools target a specific official source and are clearly separable (e.g., get_bcb_series vs get_ibge_data). The only mild overlap is between describe_official_dataset and the per-source *_schema tools, both of which provide metadata, but their scopes (generic dataset identity vs. source-specific query contracts) are distinguishable.
All names use snake_case with a consistent verb_noun pattern: get_<source>_<topic> for data retrieval, get_<source>_schema for metadata, and search_official_data / describe_official_dataset for discovery. Minor suffix variations (some data tools omit _data) do not break predictability.
19 tools is slightly heavy but well justified: nine official source families each have a schema and a data tool, plus top-level search and describe tools. No tool appears redundant, though the count sits at the upper edge of the ideal range.
The surface covers a broad range of Brazilian official economic sources with schema-before-data patterns for the more complex ones. Gaps exist where search_official_data may resolve a concept to an unintegrated source, but these are explicitly signalled rather than hidden.
Available Tools
19 toolsdescribe_official_datasetDescribe an official datasetARead-onlyIdempotentInspect
Get identity, publisher, collection, provenance links, query capability, and any stable Open Economics series shortcuts for an exact dataset ID returned by search_official_data. This does not fetch observations.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | Exact ID returned by search_official_data, such as bcb-sgs:432, ibge-aggregates:5932, siconfi:dca, tesouro-rtn:government-central, tesouro-dpf:debt-profile, comexstat:general, anp:fuel-prices, epe:electricity-consumption, mte:formal-employment, or cvm:investment-funds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Stable official dataset ID. |
| title | Yes | Official dataset title. |
| provider | Yes | Open Economics provider identifier. |
| sourceUrl | Yes | Official source URL. |
| collection | No | Official collection identifier, when supplied by the publisher. |
| metadataUrl | Yes | Official metadata URL. |
| sourceAgency | Yes | Official publishing agency. |
| collectionName | No | Official collection name, when supplied by the publisher. |
| queryCapability | Yes | Supported query capability. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful scope context beyond that: it enumerates the metadata categories returned and states the one thing the tool will not do (fetch observations).
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 positive scope is front-loaded and the exclusionary clause comes last, which is the right ordering for routing.
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?
Return values are covered by the output schema, so the description need only state purpose and boundary. For a single-parameter, read-only lookup it does exactly that, leaving no gap an agent would need filled before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a regex pattern and worked examples for dataset_id, so the schema carries the parameter burden. The description only restates that the value is an exact ID from search_official_data, adding no format or schema detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (get) plus resource (identity, publisher, collection, provenance, query capability, series shortcuts for a dataset ID) — an agent can see exactly what comes back. The closing sentence 'This does not fetch observations' cleanly separates it from the get_* siblings that return data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly ties the input to search_official_data ('an exact dataset ID returned by search_official_data') and rules out the data-fetching case. It stops short of naming which sibling to use instead for observations, but the implication (the get_* tools) is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anp_fuel_pricesQuery official ANP fuel pricesARead-onlyIdempotentInspect
Retrieve auditable fuel and GLP price statistics calculated from official ANP station observations. Omit year and month for the rolling latest four weeks, or provide both for a published monthly file from 2023 onward. Results retain period, product, geography, unit, sample count, source URL, and the disclosed aggregation method while excluding station identity and addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Published source year; provide with month for a monthly file. | |
| limit | No | Maximum aggregate rows to return. | |
| month | No | Published source month; provide with year for a monthly file. | |
| state | No | Two-letter Brazilian state code when geography is state or municipality. | |
| period | No | Reporting period granularity. | week |
| product | No | Exact ANP product label, for example GASOLINA or ETANOL. | |
| geography | No | Geographic aggregation level. | country |
| dataset_id | Yes | The official ANP fuel-prices dataset identifier. | |
| fuel_group | Yes | ANP product group to retrieve. | |
| municipality | No | Municipality name when geography is municipality. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld. The description adds real behavioral context: results are auditable aggregates that deliberately exclude station identity and addresses while retaining sample count and source URL, which signals a privacy-conscious aggregation layer rather than raw observations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose then usage then return shape. Each sentence carries distinct information (what, when, what comes back) with no repetition of structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with an output schema present, the description covers the key conditional logic (year/month pairing) and the aggregation/privacy posture, leaving per-field syntax to the 100%-covered schema. Nothing an agent needs to call it correctly 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%, so the baseline is 3, but the description adds meaningful semantics beyond the schema: the year/month coupling (both-or-neither) and the meaning of the default (rolling latest four weeks, published monthly files from 2023). That goes past the per-field descriptions.
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 (retrieve) and resource (auditable fuel and GLP price statistics) with the source qualifier (official ANP station observations). This is clearly distinguishable from sibling dataset tools like get_bcb_series or get_comexstat_data by domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditional usage: omit year and month for the rolling latest four weeks, or provide both for a published monthly file from 2023 onward. It does not name sibling tools as alternatives, but the domain is distinct enough that routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bcb_schemaInspect BCB series meaning and unitsARead-onlyIdempotentInspect
Fetch authoritative metadata for an exact BCB SGS series, including full name, subject hierarchy, periodicity, unit, source, coverage dates, decimals, formula, and warnings. Use when interpreting a BCB series without retrieving observations.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | Exact BCB dataset ID returned by search_official_data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: it discloses that the payload is metadata (including warnings and coverage dates) rather than observations, which clarifies the nature of the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the capability and its returned fields front-loaded and the usage condition second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, yet the description still surfaces the salient fields. Combined with annotations covering safety and a fully documented single parameter, nothing an agent needs to call this correctly 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 description coverage is 100% and the single dataset_id parameter is fully documented with its pattern and provenance (returned by search_official_data). The description's "exact BCB SGS series" reinforces the exact-match requirement but adds no syntax beyond the schema, so 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 (fetch) and resource (authoritative metadata for a BCB SGS series) and enumerates the fields returned (name, hierarchy, periodicity, unit, decimals, formula, warnings). It explicitly distinguishes itself from observation retrieval, so an agent can separate it from get_bcb_series.
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 when interpreting a BCB series without retrieving observations" gives a clear use condition and implicitly contrasts with the observation-fetching sibling, though it never names get_bcb_series or states exclusions (e.g. when to prefer describe_official_dataset).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bcb_seriesGet observations from a BCB SGS seriesARead-onlyIdempotentInspect
Retrieve official observations and authoritative schema metadata for an exact BCB SGS dataset ID. Use only after search_official_data identifies the series. Dates, units, periodicity, source, and raw values are preserved; generic access does not guess transformations.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive end date; defaults to today. | |
| limit | No | Maximum number of observations to return. | |
| order | No | Observation order by date. | asc |
| start | No | Inclusive start date; defaults to three years ago. | |
| dataset_id | Yes | Exact BCB dataset ID returned by search_official_data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuine behavioral context beyond that: data is returned with dates, units, periodicity, source, and raw values preserved, and no transformations are guessed. This tells the agent what arrives unmodified, which the annotations do not.
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 the purpose front-loaded and the prerequisite in the second sentence. Every clause carries information, though 'authoritative schema metadata' and the closing phrase about not guessing transformations are slightly redundant with adjacent statements.
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 an output schema present, rich annotations, and full parameter coverage, the description only needs to supply the prerequisite and fidelity context, which it does. The one remaining gap is disambiguating itself from get_bcb_schema, which it leaves unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (dataset_id, start, end, limit, order) are already documented in the schema, including defaults, patterns, and enum. The description only alludes to dates being preserved and does not add format or usage detail beyond the schema, 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?
The description states a specific verb and resource ('Retrieve official observations and authoritative schema metadata') for an exact BCB SGS dataset ID, which is concrete. However, the phrase 'and authoritative schema metadata' blurs the line with the sibling get_bcb_schema, and the description never resolves that overlap, so an agent cannot fully separate the two from text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit prerequisite and ordering: 'Use only after search_official_data identifies the series,' which clearly sequences this tool behind the search tool. It does not, however, say when to prefer this over get_bcb_schema, which is the closest-looking sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comexstat_dataQuery official Brazilian merchandise tradeARead-onlyIdempotentInspect
Retrieve a bounded, explicit MDIC Comex Stat export or import slice from 1997 onward. Use comexstat:general only after search_official_data. Select period, dimensions, metrics, and optional official filter codes; partner, product, state, transport, classification, and raw metric fields remain attached to the result.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Last month, YYYY-MM. | |
| flow | Yes | Trade direction to retrieve. | |
| from | Yes | First month, YYYY-MM. | |
| details | No | Official dimensions to include, up to eight. | |
| filters | No | Optional official dimension filters. | |
| metrics | No | Official Comex Stat metrics to return. | |
| language | No | Language for labels in the upstream response. | pt |
| dataset_id | Yes | The official MDIC Comex Stat dataset identifier. | |
| month_detail | No | Whether to keep month-level detail in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the baseline is lower. The description adds that the slice is 'bounded' and 'explicit' and that certain fields 'remain attached to the result', which gives some behavioral context about output structure. However, it lacks details about rate limits, pagination, or authentication, and much of the behavioral profile is already covered by annotations.
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 concise sentences with no waste. The first sentence front-loads the core operation and scope, and the second provides necessary usage and output context. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parameters, nested filters, annotations, and an output schema), the description provides essential guidance: the data source, time range, prerequisite, and that fields remain attached. It doesn't need to explain return values due to the output schema. It could mention limitations like max dimensions or filters, but it's largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 9 parameters. The description mentions selecting 'period, dimensions, metrics, and optional official filter codes', which is a high-level summary that doesn't add syntax or format details beyond the schema. When schema does the heavy lifting, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve a bounded, explicit MDIC Comex Stat export or import slice from 1997 onward'), which clearly identifies the operation. It doesn't explicitly differentiate from siblings like get_ibge_data or get_siconfi_data, but the specificity of 'Comex Stat' and 'merchandise trade' makes its purpose clear.
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?
Provides a clear prerequisite: 'Use comexstat:general only after search_official_data.' This tells the agent when to use this tool relative to a sibling. However, it doesn't mention when NOT to use it or other alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cvm_investment_fundsQuery official CVM investment-fund reportsARead-onlyIdempotentInspect
Retrieve daily CVM aggregates by official fund classification or resolve a fund/class latest report by CNPJ or name. Net assets and flows are additive; quota values stay fund-level; reported holder totals are not deduplicated people.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive last report date, YYYY-MM-DD. | |
| from | No | Inclusive first report date, YYYY-MM-DD. | |
| funds | No | Unformatted 14-digit fund/class CNPJ values. | |
| limit | No | Maximum fund or classification rows to return. | |
| query | No | Fund-name search; use only with breakdown=fund. | |
| breakdown | No | Whether to aggregate by official classification or resolve a fund. | classification |
| dataset_id | Yes | The official CVM investment-funds dataset identifier. | |
| classifications | No | Official fund classifications to include. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, non-open-world, so the safety profile is covered. The description adds genuinely useful data-semantics beyond that: net assets and flows are additive across rows, quota values are fund-level only, and holder totals are not deduplicated — non-obvious interpretation caveats an agent would otherwise get wrong.
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, no filler. The primary retrieval modes are front-loaded, with the data caveats packed into a compact trailing clause. Every phrase carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-shape explanation is unnecessary, and the description covers both operating modes plus the key interpretation pitfalls. What is missing is small routing guidance — when to reach for the schema sibling or the search tool — but for an 8-parameter read tool this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description earns an extra point by explaining what breakdown actually selects and by clarifying the aggregation-level semantics that the schema only states mechanically ('aggregate by official classification or resolve a fund'). It still does not speak to limit defaults or the maxItems caps.
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 two concrete verbs and resources: 'Retrieve daily CVM aggregates by official fund classification' and 'resolve a fund/class latest report by CNPJ or name.' The two modes map cleanly onto the breakdown enum, and the sibling get_cvm_investment_funds_schema is clearly the schema companion rather than a competitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that aggregation vs. single-fund resolution is chosen by which lookup key you supply (classification vs. CNPJ/name), and the schema notes query is only valid with breakdown=fund. But there is no explicit when-to-use guidance, no mention of when to prefer the schema sibling, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cvm_investment_funds_schemaInspect CVM investment-fund measures and dimensionsARead-onlyIdempotentInspect
Inspect the synchronized CVM daily-report window, official classifications, fund-search contract, measure meanings, and aggregation constraints. Use before querying a fund by name or comparing classes.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | The official CVM investment-funds dataset identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description needn't restate that. It adds useful framing that this returns a contract/constraint description rather than data, but attaches no behavioral caveats beyond that scope statement.
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, both loaded with content: the first enumerates what is inspected, the second states when to use it. Nothing is redundant, though the enumerated list is packed densely without prioritization.
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 an output schema present, the description needn't explain return values, and the annotations cover the interaction profile. The one gap is the absence of an explicit pointer to get_cvm_investment_funds as the intended follow-up, which would have closed the loop fully.
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 exists and the schema documents it fully (100% coverage), including the const value. The description adds no parameter-level information beyond what the schema already provides, 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?
The description names a specific resource and enumerates what the inspection covers: the daily-report window, official classifications, fund-search contract, measure meanings, and aggregation constraints. The tool name and sibling set (e.g., get_bcb_schema, get_siconfi_schema) make the *_schema convention clear, so the sibling distinction is signaled by naming rather than by explicit contrast in the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent to the right moment to call the tool – 'Use before querying a fund by name or comparing classes' – which clearly implies get_cvm_investment_funds is the subsequent call. However, it does not name that sibling explicitly or state exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_epe_electricity_consumptionQuery official electricity consumptionARead-onlyIdempotentInspect
Retrieve monthly EPE electricity consumption and consumer counts from 2004 onward. Select a bounded period, country/region/UF geography, consumption classes, and regulated/free market. The response identifies the exact synchronized official workbook version and discloses aggregation across source system rows.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive last month, YYYY-MM. | |
| from | No | Inclusive first month, YYYY-MM. | |
| limit | No | Maximum rows to return. | |
| states | No | Optional official state codes when geography is state. | |
| classes | No | Consumption classes to include. | |
| markets | No | Electricity-market segments to include. | |
| regions | No | Optional official regions when geography is region. | |
| geography | No | Geographic aggregation level. | country |
| dataset_id | Yes | The official EPE electricity-consumption dataset identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description adds genuine behavioral context beyond that: the response identifies the exact synchronized official workbook version and discloses aggregation across source system rows, which is provenance information an agent would not otherwise have.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler, front-loaded with the resource and time span before the filtering guidance. Slightly dense jargon ("synchronized official workbook version") but each sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is not needed, and the description covers scope, filters, and data provenance. Only the absence of routing guidance relative to sibling tools keeps it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The prose adds only marginal meaning over the schema — the 2004 lower bound and the UF/region/state geography framing — while mostly restating the filter parameters already fully documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve) plus resource (monthly EPE electricity consumption and consumer counts) and scope (from 2004 onward). The EPE dataset naming cleanly separates it from the many other Brazilian official-data siblings (BCB, IBGE, CVM, Tesouro, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent what to select (bounded period, geography, classes, market) but never says when to prefer this tool over search_official_data or describe_official_dataset, nor any exclusions or prerequisites. Usage is implied by the dataset name rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ibge_dataQuery multidimensional IBGE dataARead-onlyIdempotentInspect
Retrieve an explicit slice of an IBGE aggregate after inspecting its schema. Returns variables containing classification selections, geographies, and observations; official suppression, missing, quality-flag, and zero states remain distinct.
| Name | Required | Description | Default |
|---|---|---|---|
| periods | No | Recent-period shorthand such as -12, or explicit official period IDs separated by |. | -12 |
| locality | No | BR or an explicit IBGE geography selection such as N3[35]. | BR |
| variable | Yes | One or more official variable IDs separated by |. | |
| dataset_id | Yes | Exact IBGE aggregate ID returned by search_official_data. | |
| classification | No | Explicit classification selections from the schema, such as 11255[90707]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real value beyond that by enumerating the return shape (variables with classification selections, geographies, observations) and by stating that official suppression, missing, quality-flag, and zero states remain distinct — semantics an agent would otherwise have to guess.
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 dense sentences with no filler: the first front-loads the action and its prerequisite, the second enumerates output composition and state semantics. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return values, yet it still communicates the important semantic point that missing/suppressed/zero states are distinct — a common source of misinterpretation. For a five-parameter, schema-covered read tool this is largely sufficient, though it omits any note on result size or pagination limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (periods, locality, variable, dataset_id, classification) are already documented with patterns and examples in the schema. The description adds only the general notion of an 'explicit slice' and does not explain period shorthand, geography nesting syntax, or the pipe-delimited multi-ID convention beyond what the schema provides. 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 (Retrieve) and resource (an explicit slice of an IBGE aggregate), with the qualifier 'explicit slice' signaling that broad discovery is out of scope. Sibling differentiation is only implicit, via the reference to inspecting the schema first, rather than naming get_ibge_schema or search_official_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after inspecting its schema' establishes a clear prerequisite workflow step and implicitly routes the agent to the schema-inspection sibling before calling this tool. No explicit when-not-to-use guidance or named alternative is given, so it falls short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ibge_schemaInspect an IBGE aggregate's measures and dimensionsARead-onlyIdempotentInspect
Fetch official metadata for an IBGE aggregate selected by search_official_data. Always use this before get_ibge_data unless the official variable, locality, and classification IDs are already known. It prevents guessing a measure or dimensional slice.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | Exact IBGE aggregate ID returned by search_official_data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context by explaining the tool's preventive role: it stops agents from guessing a measure or dimensional slice before requesting data.
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 tightly written sentences. The first states what the tool returns; the second gives the ordering rule and the exception. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one required parameter, full schema coverage, rich annotations, and an existing output schema, the description supplies the needed call workflow and prerequisite. An agent has enough context to invoke it correctly and knows when it must be used.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter has 100% schema description coverage, including the exact pattern and source from search_official_data. The description reinforces that the dataset_id comes from search_official_data but adds no further syntax or format detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Fetch official metadata for an IBGE aggregate.' It clearly distinguishes itself from sibling data tools like get_ibge_data and from search_official_data by specifying that it returns metadata for an aggregate selected by the search tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives when-to-use guidance: 'Always use this before get_ibge_data unless the official variable, locality, and classification IDs are already known.' It names the alternative tool and the condition under which it can be skipped, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mte_formal_employmentQuery official formal-employment stock and flowsARead-onlyIdempotentInspect
Retrieve revised monthly Novo Caged stock, admissions, dismissals, balance, and relative change from 2020 onward. Select exactly one official breakdown: country, region, state, or economic activity. The response preserves the MTE workbook vintage and never synthesizes state-by-industry values.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive last month, YYYY-MM. | |
| from | No | Inclusive first month, YYYY-MM. | |
| limit | No | Maximum rows to return. | |
| states | No | Optional official state codes when breakdown is state. | |
| regions | No | Optional official regions when breakdown is region. | |
| breakdown | No | Official breakdown for the employment result. | country |
| dataset_id | Yes | The official MTE Novo Caged dataset identifier. | |
| industries | No | Exact official activity IDs returned by get_mte_formal_employment_schema; empty means all activities. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, so those need no restating. The description adds genuinely non-obvious behavior: the data is *revised* monthly, it tracks the MTE workbook vintage, and combinations (state-by-industry) are never synthesized. That is real value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences: measures/scope first, the breakdown constraint second, the fidelity caveat last. Every sentence carries information, with only minor density issues from the compound noun lists.
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 an output schema present, return formatting need not be described, and the description covers scope, granularity constraint, and data fidelity. The one notable omission is any pointer to the sibling schema tool that supplies the valid industry IDs, which the agent needs for the industries parameter.
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 enum for breakdown plus the state/region enums are fully documented in the schema, so the baseline of 3 applies. The description reinforces the one-breakdown-at-a-time rule but adds no syntax, defaults, or format detail beyond what the schema already states.
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 (retrieve) plus the exact resource and the measures returned (Novo Caged stock, admissions, dismissals, balance, relative change) with a stated time floor of 2020. It does not, however, name or distinguish itself from the sibling get_mte_formal_employment_schema, which an agent could easily confuse with this query tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Select exactly one official breakdown' and 'never synthesizes state-by-industry values' give the agent a real invocation constraint. There is no explicit when-to-use/when-not guidance, and no routing to the schema sibling for valid industry IDs, so usage is implied rather than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mte_formal_employment_schemaInspect Novo Caged dimensions and measuresARead-onlyIdempotentInspect
Inspect the official adjusted Novo Caged selection contract, source vintage, measure meanings, available industry IDs, and the constraint that geography and industry come from separate official tables. Use before an industry query.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | The official MTE Novo Caged dataset identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds real informational value: source vintage, measure meanings, available industry IDs, and the cross-table geography/industry constraint, which the agent would not know from annotations alone.
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 list of returned contents is efficiently packed and the usage cue is placed last. Minor density of domain jargon keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained. The description covers purpose, contents, and usage adequately for a single-const-param introspection tool, leaving only minor gaps (no sibling routing).
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?
Single parameter with 100% schema description coverage; the const dataset_id is fully explained by the schema. The description adds no parameter-level meaning beyond what the schema provides, 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 (Inspect) and resource (Novo Caged selection contract) and enumerates the contents returned (measure meanings, industry IDs, constraints). It is clearly distinguishable from the sibling get_mte_formal_employment, though the phrase 'selection contract' is somewhat jargon-heavy.
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 usage condition: 'Use before an industry query.' That is actionable timing guidance, but it names no alternative and offers no when-not-to-use clause, so it falls short of the 5 level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_siconfi_dataQuery official SICONFI fiscal dataARead-onlyIdempotentInspect
Retrieve an explicit official SICONFI DCA, RREO, RGF, or entity-registry selection. First inspect the schema. This tool preserves account, column, annex, period, entity, raw value fields, and upstream provenance without aggregating or substituting concepts.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year of the official report. | |
| annex | No | Exact official annex name from the SICONFI documentation. | |
| power | No | RGF government branch. | |
| entity | No | Official IBGE entity code. | |
| period | No | RREO bimestre (1-6) or RGF period (1-3). | |
| sphere | No | Government sphere: municipal, state, federal, or consortium. | |
| dataset_id | Yes | Exact SICONFI dataset ID returned by search_official_data. | |
| periodicity | No | RGF only: four-month (Q) or half-year (S). | |
| report_type | No | Official SICONFI report type for the selected dataset. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuine value beyond them by stating it preserves raw account/column/annex/period/entity fields and upstream provenance without aggregating or substituting concepts, telling the agent the data is faithful and unmodified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the retrieval scope front-loaded followed by the schema-inspection directive and the fidelity guarantee. No wasted text, though the middle imperative slightly interrupts the flow.
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 annotations, a rich fully-documented schema, and an output schema, the description need not explain return values. It covers purpose, prerequisite, and data-fidelity behavior, leaving only sibling differentiation as a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all nine parameters documented and four enums, so the schema does the heavy lifting. The description reinforces that account, column, annex, period, and entity fields are preserved but adds no syntax or format detail beyond the schema, 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 (Retrieve) and resource (official SICONFI DCA, RREO, RGF, or entity-registry selection), which lets an agent identify the domain. It does not clearly distinguish this tool from the sibling get_siconfi_schema, so it falls short of 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?
'First inspect the schema' hints at the get_siconfi_schema/get_bcb_schema-style prerequisite pattern, which is useful implied guidance. However it never states when to prefer this over search_official_data or describe_official_dataset, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_siconfi_schemaInspect a SICONFI fiscal reportARead-onlyIdempotentInspect
Get the meaning and required selection fields for an exact SICONFI dataset returned by search_official_data. Use this before get_siconfi_data so entity, reporting period, report type, government branch, and annex are explicit rather than guessed.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | Exact SICONFI dataset ID returned by search_official_data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent read (readOnlyHint, idempotentHint, openWorldHint=false), so the safety profile is covered. The description adds real context: it discloses that the fields surfaced are the selection dimensions needed downstream and that the ID must come from search_official_data, though it says nothing about error behavior on a non-matching ID.
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 defines the tool, the second gives the workflow rule. Nothing is padding, and the purpose 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?
With an output schema present, return values need not be explained; the description covers purpose, provenance of the input, and sequencing. Nothing an agent needs to invoke it correctly 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's description ('Exact SICONFI dataset ID returned by search_official_data') already conveys format and source. The description largely restates that same guidance, so the schema does the heavy lifting — 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 (Get) and resource (meaning and required selection fields for an exact SICONFI dataset), and ties it to the sibling that produces the ID (search_official_data) and the sibling it precedes (get_siconfi_data). An agent can distinguish it from the other *_schema and get_*_data tools 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?
Explicitly says to use it before get_siconfi_data and explains why (so entity, period, report type, branch, and annex are explicit rather than guessed). That names both the alternative and the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tesouro_dpfQuery Federal Public Debt statisticsARead-onlyIdempotentInspect
Retrieve one official monthly RMD table at a time: debt composition, DPMFi holders, average maturity, average maturity by indexer, monthly cost, or twelve-month cost. Units remain table-specific and are never combined.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive last month, YYYY-MM. | |
| from | No | Inclusive first month, YYYY-MM. | |
| limit | No | Maximum debt-statistics rows to return. | |
| query | No | Category-label search; useful when category IDs are unknown. | |
| table | No | Versioned RMD table to retrieve. | composition |
| categories | No | Exact category IDs returned for the selected table by get_tesouro_dpf_schema. | |
| dataset_id | Yes | The official Tesouro Nacional DPF debt-profile dataset identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: results are per-table, one table per call, and units are table-specific and must not be aggregated across tables.
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 that are fully front-loaded: the retrieval scope comes first, then the critical units caveat. Every clause carries informational weight with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, a fully documented 7-parameter schema, and complete annotations, the description need only convey scope and the table-isolation rule, which it does. The only gap is the missing pointer to the sibling schema tool for discovering category IDs.
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%, so the baseline is 3; every parameter (from/to, limit, query, table, categories, dataset_id) is documented in the schema itself. The description adds only the table-level scoping constraint, not format or semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (official monthly RMD table), and enumerates the six concrete table variants the agent can request. However, it does not explicitly name its closest sibling get_tesouro_dpf_schema, which the parameter schema relies on for category IDs, so sibling differentiation is only implied.
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?
"Retrieve one ... table at a time" and "units ... are never combined" convey an important usage constraint, but the description never says when to call this versus get_tesouro_dpf_schema (to discover categories) or when to prefer a different dataset tool. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tesouro_dpf_schemaInspect Federal Public Debt statisticsARead-onlyIdempotentInspect
Inspect the six versioned RMD annex tables, their distinct units and coverage, category IDs, holder definitions, source publication, and methodological constraints before selecting data.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | The official Tesouro Nacional DPF debt-profile dataset identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds content context ('versioned', 'methodological constraints') but says nothing about behavioral traits such as return size, whether all six tables are always returned, or pagination. With annotations carrying the safety burden, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that leads with the object of inspection and front-loads the six-table scope. It is efficient, though the list of distinct attributes makes it slightly dense without being wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details need not be spelled out, and the description covers the breadth of what the schema exposes (tables, units, IDs, definitions, publication, constraints). It is nearly complete for a schema-introspection tool, missing only an explicit statement that it returns metadata rather than observations.
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?
There is effectively one parameter with an enforced const value and 100% schema description coverage, so the schema does all the work. The description adds no syntax, value, or semantics beyond what the schema states, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and enumerates the artifact's contents (six versioned RMD annex tables, units, coverage, category IDs, holder definitions, source publication, methodological constraints), which is concrete enough to signal it exposes schema/metadata. However, it never explicitly differentiates itself from the sibling get_tesouro_dpf (the data fetcher) or states that it returns schema rather than data, leaving the agent to infer the schema-vs-data distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before selecting data' gives an implied sequencing hint (call this prior to picking a data query), which is useful. But it names no alternative tool and gives no explicit when-not-to-use case, so the guidance stays at the implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tesouro_rtnQuery Government Central revenue, expenditure, and resultARead-onlyIdempotentInspect
Retrieve monthly current-value RTN accounts from 1997 onward. Defaults to total revenue, transfers, net revenue, total expenditure, and the above-the-line primary result; select exact account IDs or search account labels for detail.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive last month, YYYY-MM. | |
| from | No | Inclusive first month, YYYY-MM. | |
| limit | No | Maximum account rows to return. | |
| query | No | Account-label search; omit accounts to search the full tree. | |
| accounts | No | Exact account IDs returned by get_tesouro_rtn_schema. | |
| dataset_id | Yes | The official Tesouro Nacional RTN dataset identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds real behavioral context on top: values are monthly and current-value (nominal, not deflated), coverage starts in 1997, and the default account set is a specific fixed list. These details materially affect how results should be interpreted.
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 dense sentences with no filler. The default-result behavior is front-loaded, followed by the two selection mechanisms — exactly the order an agent needs to decide whether to pass parameters at all.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and full schema description coverage handles parameter mechanics. The description supplies the remaining interpretive context (time coverage, nominal values, default aggregate set) needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter and a 3 is the floor. The description adds meaning the schema does not: the default response is the five named aggregates, 'query' searches account labels, and 'accounts' takes exact IDs sourced from the schema tool. That is genuine value beyond the structured fields.
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 ('Retrieve monthly current-value RTN accounts') and pins the scope with 'from 1997 onward'. The title adds the domain (government central revenue/expenditure), so the agent knows exactly what data set this returns, though it never explicitly names the sibling get_tesouro_rtn_schema as its companion beyond an oblique 'account IDs returned by get_tesouro_rtn_schema' reference in the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains default behavior (returns the five headline aggregates) and the two ways to get detail — select exact account IDs or search labels. This gives an agent clear routing for the common 'default vs. drill-down' decision. It stops short of explicit when-not guidance or naming an alternative tool for other use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tesouro_rtn_schemaInspect Government Central fiscal accountsARead-onlyIdempotentInspect
Inspect RTN table 1.2 account IDs, hierarchy, current-value unit, coverage, source vintage, and above/below-the-line constraints. Use before selecting revenue or expenditure categories.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | The official Tesouro Nacional RTN dataset identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Source-preserving data or schema payload for the selected official dataset. |
| meta | Yes | Response metadata and source provenance. |
| links | No | Related API links. |
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 behavior is covered. The description adds the domain-specific detail that the output includes vintage/coverage/constraint metadata, but says nothing about auth needs, rate limits, or output size — adequate but not rich for a metadata tool whose annotations carry the safety profile.
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 lists what is inspected, the second gives the usage trigger. Front-loaded with the resource and its contents, then the action instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the description is complete enough for a fixed-argument, read-only metadata tool. The only minor gap is that the caller learns nothing about the shape or size of what is returned before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required dataset_id parameter, fully documented at 100% schema coverage with a const value, so the schema already carries the semantics. The description adds no information about the parameter, which is the expected baseline when structured data does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb (Inspect) and enumerates exactly what metadata is returned: account IDs, hierarchy, unit, coverage, source vintage, and above/below-the-line constraints. It is clearly the schema/metadata counterpart to get_tesouro_rtn, though it never names that sibling explicitly, leaving the differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use before selecting revenue or expenditure categories" gives a clear sequencing rule that positions the tool relative to downstream data retrieval. It states when to use the tool but offers no explicit when-not or named alternative, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_official_dataSearch Brazilian official economic dataARead-onlyIdempotentInspect
Start here for a natural-language Brazilian economic-information need in Portuguese or English. Resolves the economic concept independently of current coverage, returns ranked official datasets, stable-series shortcuts, confidence, missing source integrations, and an explicit unresolved/partial state. Use this before any data query when the exact official dataset ID is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum official dataset candidates to return. | |
| query | Yes | The user's complete economic-data need, including measure, geography, period, and breakdown when known. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | The original natural-language economic need. |
| concepts | Yes | Ranked economic concepts matched to the request. |
| datasets | Yes | Ranked official datasets and their source identity. |
| resolution | Yes | Concept-resolution result. |
| availability | Yes | Coverage assessment. |
| normalizedQuery | Yes | Normalized form used for semantic resolution. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: ranking of candidates, confidence signal, reporting of missing source integrations, and an explicit unresolved/partial state that tells the agent results may be incomplete.
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 dense sentences with zero filler, front-loaded with the 'start here' routing instruction and the query-language constraint. Every clause carries usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the enumerated return contents (ranked datasets, confidence, unresolved state) are a bonus rather than a necessity, and annotations cover the safety profile. Nothing an agent needs to invoke this correctly 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%, so both parameters are already documented and the baseline is 3. The description adds meaningful semantics beyond the schema by specifying that the natural-language query is accepted in Portuguese or English, which is not stated in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('search' Brazilian official economic data) and scopes it precisely as a natural-language concept resolver rather than a data fetch. 'Start here' plus the explicit unresolved/partial return state clearly separates it from the get_*_data siblings that require a known dataset ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use rule: before any data query when the exact official dataset ID is unknown, and it accepts both Portuguese and English input. It does not explicitly name the follow-up sibling (e.g., describe_official_dataset) or state when NOT to use it, so it stops just short of full when/when-not/alternative 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.
19 tool updates
- Changed
describe_official_dataset1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "Official dataset identity, source, provenance, and query capability.", + "properties": { + "collection": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Official collection identifier, when supplied by the publisher." + }, + "collectionName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Official collection name, when supplied by the publisher." + }, + "id": { + "description": "Stable official dataset ID.", + "type": "string" + }, + "metadataUrl": { + "description": "Official metadata URL.", + "type": "string" + }, + "provider": { + "description": "Open Economics provider identifier.", + "type": "string" + }, + "queryCapability": { + "description": "Supported query capability.", + "type": "string" + }, + "sourceAgency": { + "description": "Official publishing agency.", + "type": "string" + }, + "sourceUrl": { + "description": "Official source URL.", + "type": "string" + }, + "title": { + "description": "Official dataset title.", + "type": "string" + } + }, + "required": [ + "id", + "provider", + "sourceAgency", + "title", + "sourceUrl", + "metadataUrl", + "queryCapability" + ], + "type": "object" +}
- Changed
get_anp_fuel_prices10 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official ANP fuel-prices dataset identifier." - added
Input schema / properties / fuel_group / descriptionAdded value: +"ANP product group to retrieve." - added
Input schema / properties / geography / descriptionAdded value: +"Geographic aggregation level." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum aggregate rows to return." - added
Input schema / properties / month / descriptionAdded value: +"Published source month; provide with year for a monthly file." - added
Input schema / properties / municipality / descriptionAdded value: +"Municipality name when geography is municipality." - added
Input schema / properties / period / descriptionAdded value: +"Reporting period granularity." - added
Input schema / properties / state / descriptionAdded value: +"Two-letter Brazilian state code when geography is state or municipality." - added
Input schema / properties / year / descriptionAdded value: +"Published source year; provide with month for a monthly file." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_bcb_schema1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_bcb_series3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of observations to return." - added
Input schema / properties / order / descriptionAdded value: +"Observation order by date." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_comexstat_data10 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official MDIC Comex Stat dataset identifier." - added
Input schema / properties / details / descriptionAdded value: +"Official dimensions to include, up to eight." - added
Input schema / properties / filters / descriptionAdded value: +"Optional official dimension filters." - added
Input schema / properties / filters / items / properties / filter / descriptionAdded value: +"Official dimension code to filter." - added
Input schema / properties / filters / items / properties / values / descriptionAdded value: +"One or more official filter values." - added
Input schema / properties / flow / descriptionAdded value: +"Trade direction to retrieve." - added
Input schema / properties / language / descriptionAdded value: +"Language for labels in the upstream response." - added
Input schema / properties / metrics / descriptionAdded value: +"Official Comex Stat metrics to return." - added
Input schema / properties / month_detail / descriptionAdded value: +"Whether to keep month-level detail in the response." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_cvm_investment_funds7 fields changed- added
Input schema / properties / breakdown / descriptionAdded value: +"Whether to aggregate by official classification or resolve a fund." - added
Input schema / properties / classifications / descriptionAdded value: +"Official fund classifications to include." - added
Input schema / properties / dataset_id / descriptionAdded value: +"The official CVM investment-funds dataset identifier." - added
Input schema / properties / from / descriptionAdded value: +"Inclusive first report date, YYYY-MM-DD." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum fund or classification rows to return." - added
Input schema / properties / to / descriptionAdded value: +"Inclusive last report date, YYYY-MM-DD." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_cvm_investment_funds_schema2 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official CVM investment-funds dataset identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_epe_electricity_consumption10 fields changed- added
Input schema / properties / classes / descriptionAdded value: +"Consumption classes to include." - added
Input schema / properties / dataset_id / descriptionAdded value: +"The official EPE electricity-consumption dataset identifier." - added
Input schema / properties / from / descriptionAdded value: +"Inclusive first month, YYYY-MM." - added
Input schema / properties / geography / descriptionAdded value: +"Geographic aggregation level." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return." - added
Input schema / properties / markets / descriptionAdded value: +"Electricity-market segments to include." - added
Input schema / properties / regions / descriptionAdded value: +"Optional official regions when geography is region." - added
Input schema / properties / states / descriptionAdded value: +"Optional official state codes when geography is state." - added
Input schema / properties / to / descriptionAdded value: +"Inclusive last month, YYYY-MM." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_ibge_data2 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"Exact IBGE aggregate ID returned by search_official_data." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_ibge_schema1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_mte_formal_employment8 fields changed- added
Input schema / properties / breakdown / descriptionAdded value: +"Official breakdown for the employment result." - added
Input schema / properties / dataset_id / descriptionAdded value: +"The official MTE Novo Caged dataset identifier." - added
Input schema / properties / from / descriptionAdded value: +"Inclusive first month, YYYY-MM." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum rows to return." - added
Input schema / properties / regions / descriptionAdded value: +"Optional official regions when breakdown is region." - added
Input schema / properties / states / descriptionAdded value: +"Optional official state codes when breakdown is state." - added
Input schema / properties / to / descriptionAdded value: +"Inclusive last month, YYYY-MM." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_mte_formal_employment_schema2 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official MTE Novo Caged dataset identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_siconfi_data5 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"Exact SICONFI dataset ID returned by search_official_data." - added
Input schema / properties / report_type / descriptionAdded value: +"Official SICONFI report type for the selected dataset." - added
Input schema / properties / sphere / descriptionAdded value: +"Government sphere: municipal, state, federal, or consortium." - added
Input schema / properties / year / descriptionAdded value: +"Calendar year of the official report." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_siconfi_schema2 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"Exact SICONFI dataset ID returned by search_official_data." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_tesouro_dpf6 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official Tesouro Nacional DPF debt-profile dataset identifier." - added
Input schema / properties / from / descriptionAdded value: +"Inclusive first month, YYYY-MM." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum debt-statistics rows to return." - added
Input schema / properties / table / descriptionAdded value: +"Versioned RMD table to retrieve." - added
Input schema / properties / to / descriptionAdded value: +"Inclusive last month, YYYY-MM." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_tesouro_dpf_schema2 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official Tesouro Nacional DPF debt-profile dataset identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_tesouro_rtn5 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official Tesouro Nacional RTN dataset identifier." - added
Input schema / properties / from / descriptionAdded value: +"Inclusive first month, YYYY-MM." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum account rows to return." - added
Input schema / properties / to / descriptionAdded value: +"Inclusive last month, YYYY-MM." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
get_tesouro_rtn_schema2 fields changed- added
Input schema / properties / dataset_id / descriptionAdded value: +"The official Tesouro Nacional RTN dataset identifier." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "REST-aligned Open Economics response with data, metadata, links, and source provenance.", + "properties": { + "data": { + "description": "Source-preserving data or schema payload for the selected official dataset." + }, + "links": { + "additionalProperties": {}, + "description": "Related API links.", + "properties": { + "observations": { + "description": "Canonical observations endpoint for this dataset.", + "type": "string" + }, + "self": { + "description": "Canonical URL for this response.", + "type": "string" + } + }, + "type": "object" + }, + "meta": { + "additionalProperties": {}, + "description": "Response metadata and source provenance.", + "properties": { + "dataset": { + "description": "Open Economics dataset identity when supplied." + }, + "provenance": { + "description": "Upstream source URLs, versions, timestamps, and methodology details." + } + }, + "type": "object" + } + }, + "required": [ + "data", + "meta" + ], + "type": "object" +}
- Changed
search_official_data1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": {}, + "description": "Semantic discovery result with ranked concepts, official datasets, and coverage state.", + "properties": { + "availability": { + "additionalProperties": {}, + "description": "Coverage assessment.", + "properties": { + "complete": { + "description": "Whether the requested need is completely covered.", + "type": "boolean" + }, + "explanation": { + "description": "Coverage explanation.", + "type": "string" + }, + "missingSources": { + "description": "Required source integrations that are not present.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Availability state in the current Open Economics coverage.", + "type": "string" + } + }, + "required": [ + "status", + "complete", + "explanation", + "missingSources" + ], + "type": "object" + }, + "concepts": { + "description": "Ranked economic concepts matched to the request.", + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "description": "Stable Open Economics concept ID.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "type": "array" + }, + "datasets": { + "description": "Ranked official datasets and their source identity.", + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "description": "Stable official dataset ID.", + "type": "string" + }, + "metadataUrl": { + "description": "Official metadata URL.", + "type": "string" + }, + "provider": { + "description": "Open Economics provider identifier.", + "type": "string" + }, + "sourceAgency": { + "description": "Official publishing agency.", + "type": "string" + }, + "sourceUrl": { + "description": "Official source URL.", + "type": "string" + }, + "title": { + "description": "Official dataset title.", + "type": "string" + } + }, + "required": [ + "id", + "provider", + "sourceAgency", + "title", + "sourceUrl", + "metadataUrl" + ], + "type": "object" + }, + "type": "array" + }, + "normalizedQuery": { + "description": "Normalized form used for semantic resolution.", + "type": "string" + }, + "query": { + "description": "The original natural-language economic need.", + "type": "string" + }, + "resolution": { + "additionalProperties": {}, + "description": "Concept-resolution result.", + "properties": { + "confidence": { + "description": "Resolution confidence from 0 to 1.", + "type": "number" + }, + "explanation": { + "description": "Why the concept was or was not resolved.", + "type": "string" + }, + "status": { + "description": "Resolution state for the requested concept.", + "type": "string" + } + }, + "required": [ + "status", + "explanation" + ], + "type": "object" + } + }, + "required": [ + "query", + "normalizedQuery", + "resolution", + "concepts", + "datasets", + "availability" + ], + "type": "object" +}
19 tool updates
- First observed
describe_official_dataset - First observed
get_anp_fuel_prices - First observed
get_bcb_schema - First observed
get_bcb_series - First observed
get_comexstat_data - First observed
get_cvm_investment_funds - First observed
get_cvm_investment_funds_schema - First observed
get_epe_electricity_consumption - First observed
get_ibge_data - First observed
get_ibge_schema - First observed
get_mte_formal_employment - First observed
get_mte_formal_employment_schema - First observed
get_siconfi_data - First observed
get_siconfi_schema - First observed
get_tesouro_dpf - First observed
get_tesouro_dpf_schema - First observed
get_tesouro_rtn - First observed
get_tesouro_rtn_schema - First observed
search_official_data
Related MCP Connectors
Macroeconomic and other official data from 170+ publishers, resolved from natural language with provenance.
Brazilian public data API for AI agents. BCB, IBGE, CVM, B3, compliance. x402 payments on Base.
IBGE: geography, census, economy and health from the official APIs, with provenance. 23 tools.
Brazil Macroeconomic and Financial Data AI Platform for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceConnects AI agents to 28 Brazilian public APIs, providing over 200 tools to access data on economy, legislation, transparency, and the judiciary. It enables complex queries and cross-referencing of government datasets like IBGE, the Central Bank, and the National Congress through natural language.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query Brazilian municipal transparency portals for payroll, expenses, contracts, bids, revenues, and legislation using natural language in Portuguese.MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying Portugal's national open data portal (dados.gov.pt) through natural language.159 npmMIT
- AlicenseAqualityFmaintenanceEnables AI agents to discover, retrieve, compare, and analyze trusted macroeconomic statistics from central banks and international organizations, resolving concepts to official series with provenance and validation.6MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.