query-ptax-bcb
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@query-ptax-bcbWhat was the PTAX dollar closing rate on 2025-03-10?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
query-ptax-bcb
MCP (Model Context Protocol) server that exposes the official PTAX dollar exchange rate by directly querying the open data API of the Central Bank of Brazil (BCB): https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/
Tools
get_ptax_by_date(date)— official PTAX closing rate for a specific date (YYYY-MM-DD).get_ptax_by_period(startDate, endDate)— series of closing rates between two dates.get_ptax_latest(lookbackDays?)— most recent available closing rate (searches the lastlookbackDaysdays, default 7).
All returned rates are the closing (official PTAX) bulletin, with buy, sell, and quote time (Brasília time).
Related MCP server: Frankfurter MCP
Build
npm install
npm run buildTesting with the MCP Inspector
npm run inspectorConfigure in Claude Desktop / Claude Code
Add to the MCP configuration file (claude_desktop_config.json or equivalent):
{
"mcpServers": {
"query-ptax-bcb": {
"command": "node",
"args": ["D:/GitHub/master-mils/query-ptax-bcb/dist/index.js"]
}
}
}Available Tools
3 toolsget_ptax_by_dateA
Get the official closing USD/BRL PTAX exchange rate (Banco Central do Brasil) for a specific date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It adds useful context like 'official closing' and 'Banco Central do Brasil', but it does not disclose edge-case behavior for non-business days, availability, or output format. This makes the description adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It names the provider, the rate, the asset pair, and the scope without repeating schema 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?
For a simple one-parameter read tool, the description provides enough information for source, scope, and purpose. It would benefit from stating behavior on non-business days and the expected return value, especially since no output schema is provided.
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 schema already fully documents the single parameter with name and pattern. The description adds little beyond restating that the date is specific, so the schema remains the primary source of parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Get'), a clear resource ('official closing USD/BRL PTAX exchange rate'), and a specific scope ('for a specific date'). This clearly distinguishes it from the sibling tools by_period and latest.
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 'for a specific date' implies this is the tool to use for a single-day lookup, and the sibling names indicate period/latest alternatives. However, the description does not explicitly say when to prefer this over the other tools or when to exclude them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ptax_by_periodA
Get the official closing USD/BRL PTAX exchange rate series (Banco Central do Brasil) for each business day in a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | Yes | End date in YYYY-MM-DD format | |
| startDate | Yes | Start date in YYYY-MM-DD format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context by specifying that the series covers business days only and represents the official closing rate from Banco Central do Brasil. With no annotations to cover the safety profile, some gaps remain: it does not mention response shape, date-boundary behavior, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that communicates the resource, source, scope, and period. Every part adds information and there is 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?
For a simple two-parameter date-range fetch with no output schema, the description is nearly complete. It does not spell out the return format, but the concept of an exchange-rate series is self-evident enough that an agent can invoke 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?
The input schema already documents both parameters with names, formats, and regex patterns, giving 100% schema description coverage. The description does not add parameter-level meaning, so the baseline of 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 ('Get') and resource ('official closing USD/BRL PTAX exchange rate series'), and pins down its scope with 'for each business day in a date range.' This distinguishes it from the single-date and latest-rate siblings, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for each business day in a date range' gives clear context: use this tool when you need a multi-day series. However, it does not explicitly say when not to use it or point to alternatives like get_ptax_by_date or get_ptax_latest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ptax_latestA
Get the most recent official closing USD/BRL PTAX exchange rate (Banco Central do Brasil).
| Name | Required | Description | Default |
|---|---|---|---|
| lookbackDays | No | How many days back to search for the latest published quote (default 7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral transparency burden. It correctly communicates that this is an official, closing, read-only rate lookup. Yet it does not mention edge cases such as no published rate within the lookback window, weekend/holiday behavior, or the expected output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the action, the target resource, the official nature of the rate, the currency pair, and the authoritative source. There is no redundant or extraneous wording.
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 simple optional-one-parameter tool with high schema coverage, the description gives enough clarity about what the tool returns and its source. The main gap is the absence of return format details and edge-case behavior, which would matter more for a more complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the single parameter with a clear description, including default, maximum, and exclusive minimum. The tool description itself does not need to add parameter details because the schema already does the necessary work, supporting the baseline score of 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?
The description uses a specific verb and resource: 'Get the most recent official closing USD/BRL PTAX exchange rate' and identifies the source (Banco Central do Brasil). The word 'latest' clearly implies the tool's scope compared to date/period siblings. It stops short of explicitly naming the sibling tools, so it does not fully distinguish itself in the description itself.
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 when to use this tool: when the most recent PTAX rate is needed. However, it does not explicitly state when not to use it or mention alternatives like get_ptax_by_date or get_ptax_by_period. The agent must infer the selection logic from the tool name and context.
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. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
get_ptax_by_date - First observed
get_ptax_by_period - First observed
get_ptax_latest
TDQS
Each tool has a clearly distinct purpose: individual date lookup, date-range series lookup, and latest available rate. There is no meaningful overlap or ambiguity between them.
All tool names follow the same get_ptax_by_* and get_ptax_latest pattern, with consistent snake_case and a clear verb-noun structure. The naming is predictable and readable.
Three tools is well-scoped for a focused PTAX exchange-rate server. Each tool covers a distinct query mode without unnecessary bloat or missing core access.
For a read-only USD/BRL PTAX exchange-rate server, the surface is complete: specific date, date range, and latest rate are all covered. There are no obvious dead ends or missing operations within the stated domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Banco Central do Brasil (BCB): Cotações, official-source lookup. Platform-hosted, pay per query with
Convert currencies, get FX rates, and query historical ECB exchange rate data.
Banco Central do Brasil (BCB): SGS series, Focus expectations, PTAX, stats + provenance. 17 tools.
1716Fetch latest and historical currency exchange rates from Frankfurter. Convert amounts between curr…
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables access to Bank of Mexico (Banxico) economic data including real-time and historical USD/MXN exchange rates, inflation data, interest rates, and other financial indicators. Supports querying current rates, historical data with date ranges, and economic metadata through natural language.9MIT
- AlicenseAqualityDmaintenanceProvides access to currency exchange rates and conversion tools using the Frankfurter API, including latest rates, historical data, and time series from sources like the European Central Bank.5MIT
- FlicenseNot gradedqualityDmaintenanceProvides real-time and historical foreign exchange rates for 31+ currencies, enabling currency conversion, historical rate lookups, and time series analysis using data from the Frankfurter API.-
- FlicenseNot gradedqualityBmaintenanceProvides tools to query Brazilian Central Bank public data, including SGS time series and PTAX exchange rates.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mastermils/query-ptax-bcb'
If you have feedback or need assistance with the MCP directory API, please join our Discord server