An open API service indexing awesome lists of open source software.

https://github.com/atilioa/tesouro-direto-mcp

🗣️ Query Brazilian treasury bond data with natural language
https://github.com/atilioa/tesouro-direto-mcp

mcp mcp-server tesouro-direto treasury-bonds

Last synced: 4 months ago
JSON representation

🗣️ Query Brazilian treasury bond data with natural language

Awesome Lists containing this project

README

          

# Tesouro Direto MCP Server

[![smithery badge](https://smithery.ai/badge/@AtilioA/tesouro-direto-mcp)](https://smithery.ai/server/@AtilioA/tesouro-direto-mcp)
[![npm version](https://img.shields.io/npm/v/tesouro-direto-mcp.svg)](https://www.npmjs.com/package/tesouro-direto-mcp)
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)

A Model Context Protocol (MCP) server implementation for integrating with the Tesouro Direto API, enabling natural language access to Brazilian treasury bond data.

---

## Features

Query market data, bond details, and search/filter bonds using everyday language through MCP-compatible clients.

- **MCP tools**:
- `market_data`: Retrieve general treasury bond market data (opening/closing times, status)
- `bond_data`: Get detailed information about a specific bond
- `search_bonds`: Search/filter bonds by type, maturity, and other criteria
- **Smart caching**: 10-minute in-memory cache based on API update timestamps to reduce calls while ensuring data freshness.

---

## Example usage

In a MCP-compatible client, you can use the following prompts:

- *"Show all available Tesouro Direto bonds"*
- *"Get details for the bond IPCA+ 2029"*
- *"Search for IPCA bonds maturing after 2045"*
- *"What is the current treasury bond market status?"*
- *"Provide a detailed analysis of the top three bonds with the highest yields for both IPCA and fixed-rate bonds."*

---

## Installation

### Installing via Smithery

To install Tesouro Direto MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@AtilioA/tesouro-direto-mcp):

```bash
npx -y @smithery/cli install @AtilioA/tesouro-direto-mcp --client claude
```

### Installing via npm

### Example JSON for MCP client configuration (Cursor/Claude)

With [npx](https://docs.npmjs.com/cli/commands/npx), add this to your `~/.cursor/mcp.json`, or `claude_desktop_config.json` if you are using its desktop app:

```json
{
"mcpServers": {
"tesouro-direto": {
"command": "npx",
"args": [
"-y",
"tesouro-direto-mcp"
],
"env": {
"USE_MCP_CACHE": "true"
}
}
}
}
```

---

### Building from source

```bash
# Clone the repository
git clone https://github.com/AtilioA/tesouro-direto-mcp.git
cd tesouro-direto-mcp

# Install dependencies
pnpm install

# Build the project
pnpm run build
```

You can run the MCP server directly after building:

```bash
node dist/index.js
```

Or use it with any MCP-compatible client (e.g., MCP Inspector):

```bash
npx @modelcontextprotocol/inspector dist/index.js
```

---

## Tools

### `market_data`

Retrieve general market data, including opening/closing times and current status.

### `bond_data`

Get detailed information for a specific bond by its code.

### `search_bonds`

Search and filter bonds by type (SELIC, IPCA, PREFIXADO), maturity date, and more.

---

## Environment variables

| Variable | Description | Default |
|------------------|---------------------------------------------|---------|
| `USE_MCP_CACHE` | Enable the in-memory cache for API responses| `true` |

Set these in your environment or in your MCP client configuration.

---

## Project structure

```
src/
├── api/ # API client for Tesouro Direto
│ └── tesouroDireto.ts
├── cache/ # Caching implementation
│ └── apiCache.ts
├── resources/ # MCP resources implementation
│ └── index.ts
├── tools/ # MCP tools implementation
│ ├── bondData.ts
│ ├── marketData.ts
│ └── searchBonds.ts
├── types/ # Type definitions
│ └── index.ts
├── utils/ # Utility functions
│ ├── errorHandler.ts
│ └── logger.ts
├── client.ts # Example MCP client
├── index.ts # Entry point
└── server.ts # MCP server implementation
```

---

## Available scripts

- `pnpm run build` / `npm run build`: Build the project
- `pnpm start` / `npm start`: Start the server
- `pnpm run dev` / `npm run dev`: Start the server in development mode with auto-reload

---

## Contributing

Contributions are welcome! Please open an issue or submit a pull request on [GitHub](https://github.com/AtilioA/tesouro-direto-mcp).

---

## License

This project is licensed under the GNU Affero General Public License v3.0. See the [LICENSE](LICENSE) file for details.