CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
cyanheads avatar

Treasury Fiscaldata Mcp Server

cyanheads/treasury-fiscaldata-mcp-server
27 toolsSTDIO, HTTPregistry active
Summary

Connects Claude to the US Treasury's Fiscal Data API with seven tools covering 80+ datasets. The main workhorse is a generic query builder that takes filters, sorts, and pagination for any endpoint. Three convenience tools handle the most common asks: national debt since 1993, average interest rates on Treasury securities, and statutory exchange rates for 130 countries. Results can spill into DuckDB backed DataCanvas dataframes, letting you run SQL joins and aggregates across multiple queries in the same conversation. Ships with an embedded catalog so you can browse available endpoints without hitting the network. Built on the mcp-ts-core framework with both STDIO and streamable HTTP transports.

Install to Claude Code

verified
claude mcp add --transport http treasury-fiscaldata https://treasury-fiscaldata.caseyjhand.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Review the command, arguments, and environment values before installing — MCP servers run with your local permissions.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Tools

Verified live against the running server on Jun 10, 2026.

verified live7 tools
treasury_list_datasetsBrowse 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 cau...2 params

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 cau...

Parameters* required
categorystring
Filter by category. Omit to list all datasets. Options: debt, interest_rates, exchange_rates, revenue_spending, savings_bonds, securities, other.one of debt · interest_rates · exchange_rates · revenue_spending · savings_bonds · securities
searchstring
Keyword filter against dataset name and description (case-insensitive substring match). Useful for narrowing results when the category is uncertain.
treasury_query_datasetQuery 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 ope...7 params

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 ope...

Parameters* required
canvas_idstring
DataCanvas ID to spill results into for SQL analysis. Omit to receive results inline. Requires CANVAS_PROVIDER_TYPE=duckdb on the server. When provided, the full page result is registered as a data...
endpoint*string
Endpoint path returned by treasury_list_datasets (e.g., "/v2/accounting/od/debt_to_penny"). Include the leading slash.
fieldsarray
Fields to return. Omit to return all fields. Specify field names exactly as listed by treasury_list_datasets — a typo causes a 400.
filtersarray
Filter conditions (ANDed together). Multiple filters on different fields are combined in one filter= parameter.
page_numberinteger
Page to fetch (1-indexed). Check total_pages in the response to know if more pages exist.default: 1
page_sizeinteger
Rows per page. Default 100. Raise to 10000 to minimize round trips for small datasets. For large time-series pulls, use canvas_id with treasury_dataframe_query instead.default: 100
sortstring
Sort expression: field name optionally prefixed with "-" for descending (e.g., "-record_date" for newest-first).
treasury_get_debtFetch 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 — t...5 params

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 — t...

Parameters* required
canvas_idstring
DataCanvas table name (df_XXXXX_XXXXX) to register series results into for SQL analysis. When provided, or when the series exceeds 500 rows, the full result is registered and the name is returned i...
datestring
ISO 8601 date (YYYY-MM-DD) for mode=date. Must be a business day; the API only records debt on days the market is open.
end_datestring
ISO 8601 end date for mode=series (inclusive). Defaults to today.
modestring
"latest" returns the most recent day's record. "date" returns the record for a specific date. "series" returns a date range — use with start_date and end_date.one of latest · date · seriesdefault: latest
start_datestring
ISO 8601 start date for mode=series (inclusive). Fiscal Data has daily debt records back to 1993-01-04.
treasury_get_interest_ratesAverage interest rates Treasury pays on its outstanding securities by security type. Answers "what is the government's cost of borrowing?" Covers Bills, Notes, Bonds, TIPS, Floating Rate Notes, and aggregate marketable/non-marketable totals. Updated monthly (end-of-month recor...5 params

Average interest rates Treasury pays on its outstanding securities by security type. Answers "what is the government's cost of borrowing?" Covers Bills, Notes, Bonds, TIPS, Floating Rate Notes, and aggregate marketable/non-marketable totals. Updated monthly (end-of-month recor...

Parameters* required
canvas_idstring
DataCanvas table name (df_XXXXX_XXXXX) to register series results into for SQL analysis. When provided, or when mode=series and results exceed 200 rows, the result is registered and canvas_id is re...
end_datestring
ISO 8601 end date for mode=series. Defaults to today.
modestring
"latest" returns the most recent month's rates. "series" returns a time range.one of latest · seriesdefault: latest
security_typestring
Filter to one security type. Omit for all types. Use the exact string — the API does exact-match filtering on security_desc.one of Treasury Bills · Treasury Notes · Treasury Bonds · Treasury Inflation-Protected Securities (TIPS) · Treasury Floating Rate Notes (FRN) · Total Marketable
start_datestring
ISO 8601 start date for mode=series (YYYY-MM-DD, must be end-of-month for meaningful results).
treasury_get_exchange_ratesOfficial Treasury reporting exchange rates for ~130 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). Rate is expressed as foreign currency unit...5 params

Official Treasury reporting exchange rates for ~130 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). Rate is expressed as foreign currency unit...

Parameters* required
canvas_idstring
DataCanvas table name (df_XXXXX_XXXXX) to register series results into for SQL analysis. Useful when pulling multi-year history for many countries (~18,800 rows total). When provided, or when mode=...
countriesarray
Filter to specific countries by exact country name (e.g., ["Japan", "Germany", "France"]). Case-sensitive, matches the "country" field. Omit for all ~130 countries in the quarter.
end_datestring
ISO 8601 end date for mode=series.
modestring
"latest" returns the most recently published quarter's rates. "series" returns a date range of quarterly reports.one of latest · seriesdefault: latest
start_datestring
ISO 8601 start date for mode=series. Rates are published end-of-quarter (March 31, June 30, Sep 30, Dec 31).
treasury_dataframe_describeList 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...1 params

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...

Parameters* required
namestring
Optional dataframe table name (df_XXXXX_XXXXX) to describe a single dataframe. Omit to list all active dataframes.
treasury_dataframe_queryRun 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...4 params

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...

Parameters* required
previewinteger
Rows in the immediate response. Defaults to row_limit. Set lower when using register_as.
register_asstring
Persist result as a new dataframe. Use to chain analyses. The name must match df_XXXXX_XXXXX format or be a fresh df_<id>.
row_limitinteger
Hard cap on rows in the response. Default 1000, max 10000.default: 1000
sql*string
Single-statement SELECT against df_<id> tables. All values in Treasury dataframes are VARCHAR (strings) per the API contract — CAST to DECIMAL or DATE for arithmetic and date comparisons. Example:...

@cyanheads/treasury-fiscaldata-mcp-server

Query US Treasury national debt, interest rates, exchange rates, and fiscal datasets via MCP.

7 Tools

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework

Public Hosted Server: https://treasury-fiscaldata.caseyjhand.com/mcp


Tools

Five tools for querying the US Treasury Fiscal Data API, plus two for SQL analytics over DuckDB-backed DataCanvas dataframes:

ToolDescription
treasury_list_datasetsBrowse the curated catalog of 17 Treasury Fiscal Data endpoints with field names, descriptions, and update cadence
treasury_query_datasetQuery any Treasury Fiscal Data endpoint by path, field list, filters, sort, and page — with optional DataCanvas spill
treasury_get_debtFetch national debt (Debt to the Penny) — latest record, specific date, or date-range series with optional DataCanvas spill
treasury_get_interest_ratesAverage interest rates Treasury pays on outstanding securities by type — marketable issues, non-marketable series, and aggregate totals
treasury_get_exchange_ratesOfficial Treasury statutory exchange rates for ~165 countries, published quarterly
treasury_dataframe_describeList DataCanvas dataframes materialized by the treasury_* tools with schema, row count, and TTL
treasury_dataframe_queryRun a single-statement SELECT against DataCanvas dataframes using standard DuckDB SQL

treasury_list_datasets

Browse the embedded catalog of available Treasury Fiscal Data endpoints. No network calls — serves from a static catalog bundled with the server.

  • Filter by category: debt, interest_rates, exchange_rates, revenue_spending, savings_bonds, securities, other
  • Keyword search against dataset name and description (case-insensitive substring)
  • Returns endpoint paths, field names, types, and update cadence
  • Use this first to get the exact endpoint path and field names before calling treasury_query_dataset
  • Every path and field name is checked against the live API by bun run verify:catalog, so a dataset Treasury moves or renames fails a gate rather than reaching a caller

treasury_query_dataset

Generic parameterized query against any Treasury Fiscal Data endpoint.

  • Filter syntax: { field, operator, value } where operator is eq, gt, gte, lt, lte, in
  • Multiple filters ANDed together
  • Pagination via page_size (1–10000) and page_number
  • Sort by any field, descending with - prefix (e.g. -record_date)
  • All response values are strings per the API contract — including numeric and date fields; "null" means no value
  • Pass canvas_id to stage the page as a DataCanvas table — the server assigns the name and returns it in canvas_id; read its schema with treasury_dataframe_describe, then SQL it with treasury_dataframe_query (requires CANVAS_PROVIDER_TYPE=duckdb)

treasury_get_debt

Convenience tool for national debt (Debt to the Penny) — total public debt outstanding broken into publicly-held debt and intragovernmental holdings.

  • mode=latest — most recent business-day record
  • mode=date — specific business day (YYYY-MM-DD; API only records debt on market-open days)
  • mode=series — date range, sorted newest-first; auto-spills to DataCanvas when the series exceeds 500 rows
  • Records go back to 1993-04-01

treasury_get_interest_rates

Average interest rates the Treasury pays on outstanding securities. Updated monthly (end-of-month records).

  • Covers every security type Treasury reports — marketable issues, non-marketable series, and aggregate totals
  • security_type takes any security_desc value the data carries, matched exactly; which types Treasury publishes changes over the years, so when a filter matches nothing the response names the types the data does hold
  • mode=latest — most recent month's rates for all or one security type
  • mode=series — time-range history; auto-spills to DataCanvas when results exceed 200 rows

treasury_get_exchange_rates

Official Treasury statutory reporting exchange rates for ~165 countries, published quarterly (March 31, June 30, Sep 30, Dec 31).

  • Rate expressed as foreign currency units per 1 USD (a Japan-Yen rate of 159.41 means 1 USD = 159.41 JPY)
  • These are not market exchange rates — required by US federal agencies for foreign-currency-to-USD conversions in official reporting
  • Filter to one or more countries by exact name; omit for every country in a quarter
  • mode=latest returns one row per currency — the operative rate, newest record_date and then newest effective_date, so an amended rate supersedes the one it replaced and a country holding two legal tenders keeps both
  • Treasury amends a published quarter by reissuing a rate under the same record_date with a later effective_date, so both dates ride every row; mixed_record_dates flags a result whose rows are not all from one quarter
  • mode=series auto-spills to DataCanvas when results exceed 500 rows (~19,000 rows full history, back to 2001-03-31)

treasury_dataframe_describe / treasury_dataframe_query

In-conversation SQL analytics over the dataframes that treasury_query_dataset, treasury_get_debt, treasury_get_interest_rates, and treasury_get_exchange_rates materialize on a shared DuckDB-backed DataCanvas. Each data-returning call with canvas_id adds a df_XXXXX_XXXXX handle; read its columns with treasury_dataframe_describe, then pass the handle to treasury_dataframe_query for joins, aggregates, window functions, and CTEs — standard DuckDB SQL.

  • Read-only. Writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected by the SQL gate. System catalogs (information_schema, pg_catalog, sqlite_master, duckdb_*) are denied at the bridge layer.
  • All Treasury columns are VARCHAR. CAST to DECIMAL or DATE for arithmetic and date comparisons.
  • register_as chaining. treasury_dataframe_query can persist its result as a new dataframe with a fresh TTL for multi-step analysis.
  • Per-table TTL. Dataframes age on their own clock (default 24h, override with CANVAS_TTL_MS).
  • Requires CANVAS_PROVIDER_TYPE=duckdb.

Features

Built on @cyanheads/mcp-ts-core:

  • Declarative tool definitions — single file per tool, framework handles registration and validation
  • Structured output schemas with automatic formatting for human-readable display
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Pluggable auth: none, jwt, oauth
  • Structured logging with request-scoped context
  • STDIO and Streamable HTTP transports

Treasury-specific:

  • Curated catalog of 17 Treasury Fiscal Data endpoints with field metadata — no discovery round-trip required. Pass any endpoint path directly to treasury_query_dataset to access datasets not in the catalog.
  • Convenience tools for the three most-queried datasets (national debt, interest rates, exchange rates)
  • Full generic access to any Fiscal Data endpoint via treasury_query_dataset
  • DataCanvas integration: large time-series pulls register as df_<id> dataframes queryable via DuckDB SQL
  • No API keys required — the US Treasury Fiscal Data API is free and public

Agent-friendly output:

  • Filter expression echo (applied_filters) so agents can verify what was sent to the API
  • Field-label maps on query results (field_labels) map raw field names to human-readable labels
  • Enrichment notices on empty results, partial-country mismatches, staged canvas tables, and truncated series guide the next tool call
  • Canvas provenance: source tool, original query parameters, row count, and column schema surfaced by treasury_dataframe_describe

Getting started

Public Hosted Instance

A public instance is available at https://treasury-fiscaldata.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:

{
  "mcpServers": {
    "treasury-fiscaldata-mcp-server": {
      "type": "streamable-http",
      "url": "https://treasury-fiscaldata.caseyjhand.com/mcp"
    }
  }
}

Self-Hosted / Local

Add the following to your MCP client configuration file.

{
  "mcpServers": {
    "treasury-fiscaldata-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/treasury-fiscaldata-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}

Or with npx (no Bun required):

{
  "mcpServers": {
    "treasury-fiscaldata-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/treasury-fiscaldata-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}

Or with Docker:

{
  "mcpServers": {
    "treasury-fiscaldata-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "ghcr.io/cyanheads/treasury-fiscaldata-mcp-server:latest"
      ]
    }
  }
}

For Streamable HTTP, set the transport and start the server:

MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp

DataCanvas SQL workflow

For large time-series pulls or multi-dataset analysis, use the DataCanvas SQL workflow:

  1. Set CANVAS_PROVIDER_TYPE=duckdb in your server environment.
  2. Call a data tool with a canvas_id — e.g., treasury_get_debt with mode=series and a canvas_id value, or treasury_query_dataset with canvas_id. The tool registers the results as a df_XXXXX_XXXXX dataframe and returns the table name.
  3. Inspect the schema with treasury_dataframe_describe — lists column names, types (all VARCHAR for Treasury data), row count, and TTL.
  4. Query with SQL via treasury_dataframe_query — standard DuckDB SELECT with joins, aggregates, window functions, and CTEs. CAST VARCHAR columns to DECIMAL or DATE for arithmetic.
-- Example: debt trend over the last year, month-end records only
SELECT
  record_date,
  CAST(tot_pub_debt_out_amt AS DECIMAL) / 1e12 AS total_debt_trillions
FROM df_xxxxx
WHERE CAST(record_date AS DATE) >= CURRENT_DATE - INTERVAL 1 YEAR
ORDER BY record_date DESC

Prerequisites

  • Bun v1.3.0 or higher (or Node.js v24+).
  • No API key required — the US Treasury Fiscal Data API is free and public.
  • For DataCanvas SQL: CANVAS_PROVIDER_TYPE=duckdb (DuckDB is bundled as @duckdb/node-api).

Installation

  1. Clone the repository:
git clone https://github.com/cyanheads/treasury-fiscaldata-mcp-server.git
  1. Navigate into the directory:
cd treasury-fiscaldata-mcp-server
  1. Install dependencies:
bun install
  1. Configure environment:
cp .env.example .env
# edit .env as needed — no required vars; CANVAS_PROVIDER_TYPE=duckdb to enable SQL

Configuration

VariableDescriptionDefault
CANVAS_PROVIDER_TYPECanvas engine. Unset resolves to none, and the treasury_dataframe_* tools then reject every call — set it to duckdb to enable DataCanvas SQL.none
CANVAS_TTL_MSPer-table TTL for DataCanvas dataframes in milliseconds.86400000 (24h)
MCP_TRANSPORT_TYPETransport: stdio or http.stdio
MCP_HTTP_PORTPort for HTTP server.3010
MCP_SESSION_MODEHTTP session handling: auto, stateful, or stateless. .env.example ships stateless.auto (resolves to stateful)
MCP_AUTH_MODEAuth mode: none, jwt, or oauth.none
MCP_LOG_LEVELLog level (debug, info, notice, warning, error).info
LOGS_DIRDirectory for log files (Node.js/Bun only).<project-root>/logs
OTEL_ENABLEDEnable OpenTelemetry spans and metrics.false

See .env.example for the full list of optional overrides.

Running the server

Local development

  • Build and run:

    bun run rebuild
    
    bun run start:stdio
    # or
    bun run start:http
    
  • Run checks and tests:

    bun run devcheck         # Lint, format, typecheck, security
    bun run test             # Vitest test suite
    bun run lint:mcp         # Validate MCP definitions against spec
    bun run verify:catalog   # Probe every catalog endpoint and field against the live API
    

    verify:catalog is the one check that needs the network, which is why it is separate from devcheck and the test suite. Run it after editing src/services/fiscal-data/datasets.ts and before a release.

Docker

docker build -t treasury-fiscaldata-mcp-server .
docker run --rm -e CANVAS_PROVIDER_TYPE=duckdb -p 3010:3010 treasury-fiscaldata-mcp-server

The Dockerfile defaults to HTTP transport, stateless session mode, and logs to /var/log/treasury-fiscaldata-mcp-server. DuckDB native modules are pre-built in the build stage and copied to the production stage — no extra build tools required at runtime. OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.

Project structure

DirectoryPurpose
src/index.tscreateApp() entry point — registers tools and inits services.
src/config/Server-specific environment variable parsing and validation with Zod.
src/mcp-server/tools/definitions/Tool definitions (*.tool.ts) — 5 data tools + 2 DataCanvas tools.
src/services/fiscal-data/Treasury Fiscal Data API client, embedded endpoint catalog, and types.
src/services/canvas-bridge/Adapter over the framework DataCanvas: df_<id> minting, per-table TTL, system-catalog SQL deny.
tests/Unit and integration tests mirroring src/.

Development guide

See CLAUDE.md and AGENTS.md for development guidelines and architectural rules. The short version:

  • Handlers throw, framework catches — no try/catch in tool logic
  • Use ctx.log for request-scoped logging, ctx.state for tenant-scoped storage
  • All Treasury API values are strings — validate and CAST in downstream SQL; never fabricate missing fields
  • Register new tools via the arrays in src/index.ts

Contributing

Issues and pull requests are welcome. Run checks and tests before submitting:

bun run devcheck
bun run test

License

Apache-2.0 — see LICENSE for details.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Configuration

CANVAS_PROVIDER_TYPEdefault: duckdb

Canvas engine for DataCanvas SQL tools. Set to 'duckdb' to enable treasury_dataframe_* tools. Set to 'none' to disable.

MCP_LOG_LEVELdefault: info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

MCP_HTTP_HOSTdefault: 127.0.0.1

The hostname for the HTTP server.

MCP_HTTP_PORTdefault: 3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATHdefault: /mcp

The endpoint path for the MCP server.

MCP_AUTH_MODEdefault: none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

Categories
Data & Analytics
Registryactive
Package@cyanheads/treasury-fiscaldata-mcp-server
TransportSTDIO, HTTP
Tools verifiedJun 10, 2026
UpdatedJun 4, 2026
View on GitHub

More from cyanheads

  • Usaspending Mcp Server2
  • Worldbank Mcp Server2
  • Git Mcp Server221
  • Bls Labor Mcp Server1
  • Devops Status Mcp Server1
  • Earthquake Mcp Server1
  • Eia Energy Mcp Server1
  • Eurostat Mcp Server1
  • Fcc Broadband Mcp Server1
  • Gdelt Mcp Server1
  • Onebusaway Mcp Server1
  • Openfda Mcp Server1
  • Openfec Mcp Server1
  • Openfoodfacts Mcp Server1
  • Openlibrary Mcp Server1
  • Openstates Mcp Server1
  • Orcid Mcp Server1
  • Reliefweb Mcp Server1
  • Smithsonian Mcp Server1
  • Wikidata Mcp Server1
  • Wsdot Mcp Server1
  • Noaa Cdo Mcp Server2
  • Pubchem Mcp Server9
  • Gbif Biodiversity Mcp Server1

Related Data & Analytics MCP Servers

View all →
cyanheads avatar
Usaspending Mcp Server

cyanheads/usaspending-mcp-server

Access US federal award, recipient, agency, and spending analytics data from USAspending.gov.
2
dsbissett avatar
Office Addin Mcp

dsbissett/office-addin-mcp

MCP server for Office add-ins via WebView2/CDP. Provides excel.*, page.*, and addin.* tools.
2
fastslack avatar
E2e Runner

io.github.fastslack/e2e-runner

JSON-driven E2E test runner with parallel Chrome pool execution and 16 MCP tools.
2
nveil-ai avatar
NVEIL

io.github.nveil-ai/nveil

Data processing and visualization toolkit — 50+ chart types, raw data stays local.
2
ofershap avatar
Sqlite

io.github.ofershap/sqlite

SQLite MCP — query databases, inspect schemas, explain queries, export data.
2
pipeworx-io avatar
Pipeworx

io.github.pipeworx-io/pipeworx-catalog

Live data gateway for AI — 3,300+ tools across 750+ sources, with citations
2