# treasury-fiscaldata-mcp-server MCP server

MCP server for US Treasury Fiscal Data — debt, interest rates, exchange rates, and spending.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cyanheads-treasury-fiscaldata-mcp-server
- Repository: https://github.com/cyanheads/treasury-fiscaldata-mcp-server

## Install
- Command: `npx -y @cyanheads/treasury-fiscaldata-mcp-server`
- Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp
- Auth: Not captured

## Setup notes
- Package: Npm @cyanheads/treasury-fiscaldata-mcp-server v0.1.5
- Environment variable: CANVAS_PROVIDER_TYPE (default duckdb)
- Environment variable: MCP_LOG_LEVEL (default info)
- Package: Npm @cyanheads/treasury-fiscaldata-mcp-server v0.1.5
- Environment variable: CANVAS_PROVIDER_TYPE (default duckdb)
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- Environment variable: MCP_HTTP_PORT (default 3010)
- Environment variable: MCP_HTTP_ENDPOINT_PATH (default /mcp)
- Environment variable: MCP_AUTH_MODE (default none)
- Environment variable: MCP_LOG_LEVEL (default info)
- Remote endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp

## Tools
- treasury_list_datasets (List Treasury Fiscal Data Datasets) - Browse the curated catalog of US Treasury Fiscal Data API endpoints. Returns endpoint paths, field names, descriptions, and update cadence for each dataset. Use this tool before treasury_query_dataset to discover the correct endpoint path and field names — a typo in either causes a 400 error from the API. The catalog is a curated subset of the full API — pass any endpoint path directly to treasury_query_dataset to query datasets not listed here. The catalog covers debt, interest rates, exchange rates, revenue/spending, savings bonds, and securities datasets. Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp
- treasury_query_dataset (Query Treasury Fiscal Data Dataset) - Query any Treasury Fiscal Data endpoint by path, field list, filters, sort, and page. Call treasury_list_datasets first to get the correct endpoint path and exact field names — a typo in either causes a 400. Filter syntax: each condition is { field, operator, value } where operator is eq/gt/gte/lt/lte/in (e.g., record_date:gte:2024-01-01). Multiple conditions are ANDed together. All response values are strings per the API contract, including numbers and dates; "null" (string) means no value. Supply canvas_id to stage the page result as a DataCanvas table — read its column schema with treasury_dataframe_describe, then run SQL over it with treasury_dataframe_query (requires CANVAS_PROVIDER_TYPE=duckdb on the server). Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp
- treasury_get_debt (Get National Debt) - Fetch national debt (Debt to the Penny) — total public debt outstanding broken into publicly-held debt and intragovernmental holdings. Three modes: "latest" returns the most recent business day's record; "date" returns the record for a specific date (must be a business day — the API only records debt on days markets are open); "series" returns a date range, staging the full result as a DataCanvas table when canvas_id is set or the range matches more than 500 rows — read the table's column schema with treasury_dataframe_describe, then run SQL over it with treasury_dataframe_query. Records go back to 1993-04-01. Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp
- treasury_get_interest_rates (Get Treasury Interest Rates) - Average interest rates Treasury pays on its outstanding securities by security type. Answers "what is the government's cost of borrowing?" Covers every type Treasury reports — marketable issues, non-marketable series, and the aggregate totals — and which types it reports changes over the years, so omit security_type to see the ones a given period carries. Rates are percentages, not basis points. Updated monthly (end-of-month records). Mode "latest" returns the most recent month's rates for all or one security type; "series" returns a time history, staging the result as a DataCanvas table when canvas_id is set or the range matches more than 200 rows — read the table's column schema with treasury_dataframe_describe, then run SQL over it with treasury_dataframe_query. Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp
- treasury_get_exchange_rates (Get Treasury Exchange Rates) - Official Treasury reporting exchange rates for ~165 countries — the rates US federal agencies are required to use when converting foreign currency to USD for official reporting. Published quarterly (March 31, June 30, Sep 30, Dec 31); mode "latest" returns the most recently published quarter. Rate is expressed as foreign currency units per 1 USD (e.g., a Japan-Yen rate of 159.41 means 1 USD = 159.41 JPY). These are NOT market exchange rates and are not suitable for financial transaction pricing. Mode "series" stages the result as a DataCanvas table when canvas_id is set or the range matches more than 500 rows — read the table's column schema with treasury_dataframe_describe, then run SQL over it with treasury_dataframe_query. Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp
- treasury_dataframe_describe (Describe Treasury Dataframes) - List DataCanvas dataframes materialized by treasury_query_dataset, treasury_get_debt, treasury_get_interest_rates, and treasury_get_exchange_rates. Each entry surfaces source tool, query parameters, creation/expiry timestamps, row count, and column schema. Use this tool before treasury_dataframe_query to discover table names and column types. Requires CANVAS_PROVIDER_TYPE=duckdb. Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp
- treasury_dataframe_query (Query Treasury Dataframes) - Run a single-statement SELECT against DataCanvas dataframes registered by treasury_query_dataset, treasury_get_debt, treasury_get_interest_rates, and treasury_get_exchange_rates. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected. System catalogs (information_schema, pg_catalog, sqlite_master, duckdb_*) are denied at the bridge layer. All Treasury dataframe columns are VARCHAR — CAST to DECIMAL or DATE for arithmetic and date comparisons. Use treasury_dataframe_describe to list available table names and column schemas before querying. Endpoint: https://treasury-fiscaldata.caseyjhand.com/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.cyanheads
- Version: 0.1.5
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jun 20, 2026
- Source: https://registry.modelcontextprotocol.io
