accueil / serveurs / Données & BDD / io.github.cyanheads/treasury-fiscaldata-mcp-server
io.github.cyanheads/treasury-fiscaldata-mcp-server
serveur MCP (Model Context Protocol) · treasury-fiscaldata-mcp-server 0.1.11
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.cyanheads/treasury-fiscaldata-mcp-server est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.cyanheads/treasury-fiscaldata-mcp-server » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 7 outils
- treasury_dataframe_describe≈ 992 tokens
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.
Paramètres, retour & exemple (1)
Paramètresname· string · optionnel
Optional dataframe table name (df_XXXXX_XXXXX) to describe a single dataframe. Omit to list all active dataframes.
Exemple d'appel{"name": "treasury_dataframe_describe", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "dataframes": []}} - treasury_dataframe_query≈ 1372 tokens
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.
Paramètres, retour & exemple (4)
Paramètressql· string · requis
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: SELECT record_date, CAST(tot_pub_debt_out_amt AS DECIMAL) AS debt FROM df_xxxxx ORDER BY record_date DESC LIMIT 10.preview· integer · optionnel
Rows in the immediate response. Defaults to row_limit and may not exceed it. Set lower when using register_as.row_limit· integer · optionnel
Hard cap on rows the query may produce. Default 1000, max 10000. A query matching more rows than this stops at the cap and row_count_capped comes back true — raise it, or use register_as to materialize the whole result.register_as· string · optionnel
Persist the result as a new dataframe under this exact name, to chain analyses. The name is used verbatim — any name works, and a df_ prefix keeps it consistent with the tables the data tools mint. Echoed back in registered_as.
Exemple d'appel{"name": "treasury_dataframe_query", "arguments": {"sql": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "rows": [], "error": {}, "shown": 1, "notice": "texte", "columns": [], "row_count": 1, "truncated": true, "expires_at": "texte", "registered_as": "texte", "row_count_capped": true}} - treasury_get_debt≈ 1551 tokens
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.
Paramètres, retour & exemple (5)
Paramètresdate· string · optionnel
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.mode· string · optionnel · latest | date | series
"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.end_date· string · optionnel
ISO 8601 end date for mode=series (inclusive). Defaults to today.canvas_id· string · optionnel
Set any non-empty value to stage mode=series results as a DataCanvas table for SQL analysis — the value only requests staging; the server picks the table name. Staging also happens on its own when the range matches more than 500 rows. The assigned name (df_XXXXX_XXXXX) comes back in the output canvas_id; pass it to treasury_dataframe_describe, then treasury_dataframe_query. Requires CANVAS_PROVIDER_TYPE=duckdb.start_date· string · optionnel
ISO 8601 start date for mode=series (inclusive). Fiscal Data has daily debt records back to 1993-04-01.
Exemple d'appel{"name": "treasury_get_debt", "arguments": {"date": "texte", "mode": "latest", "end_date": "texte", "canvas_id": "texte", "start_date": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "error": {}, "shown": 1, "notice": "texte", "series": [], "canvas_id": "texte", "truncated": true, "total_debt": "texte", "record_date": "texte", "total_records": 1, "debt_held_public": "texte", "canvas_expires_at": "texte"}} - treasury_get_exchange_rates≈ 1816 tokens
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.
Paramètres, retour & exemple (5)
Paramètresmode· string · optionnel · latest | series
"latest" returns the most recently published quarter's rates. "series" returns a date range of quarterly reports.end_date· string · optionnel
ISO 8601 end date for mode=series.canvas_id· string · optionnel
Set any non-empty value to stage mode=series results as a DataCanvas table for SQL analysis — the value only requests staging; the server picks the table name. Staging also happens on its own when a series matches more than 500 rows, which multi-year multi-country pulls do (~19,000 rows for the full history). The assigned name (df_XXXXX_XXXXX) comes back in the output canvas_id; pass it to treasury_dataframe_describe, then treasury_dataframe_query. Requires CANVAS_PROVIDER_TYPE=duckdb.countries· array · optionnel
Filter to specific countries by exact country name (e.g., ["Japan", "Germany", "France"]). Case-sensitive, matches the "country" field. Omit for every country in the quarter (~165).start_date· string · optionnel
ISO 8601 start date for mode=series. Rates are published end-of-quarter (March 31, June 30, Sep 30, Dec 31).
Exemple d'appel{"name": "treasury_get_exchange_rates", "arguments": {"mode": "latest", "end_date": "texte", "canvas_id": "texte", "countries": [], "start_date": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "note": "texte", "error": {}, "rates": [], "shown": 1, "notice": "texte", "canvas_id": "texte", "truncated": true, "as_of_date": "texte", "total_records": 1, "effective_date": "texte", "canvas_expires_at": "texte"}} - treasury_get_interest_rates≈ 1412 tokens
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.
Paramètres, retour & exemple (5)
Paramètresmode· string · optionnel · latest | series
"latest" returns the most recent month's rates. "series" returns a time range.end_date· string · optionnel
ISO 8601 end date for mode=series. Defaults to today.canvas_id· string · optionnel
Set any non-empty value to stage mode=series results as a DataCanvas table for SQL analysis — the value only requests staging; the server picks the table name. Staging also happens on its own when a series matches more than 200 rows. The assigned name (df_XXXXX_XXXXX) comes back in the output canvas_id; pass it to treasury_dataframe_describe, then treasury_dataframe_query. Requires CANVAS_PROVIDER_TYPE=duckdb.start_date· string · optionnel
ISO 8601 start date for mode=series (YYYY-MM-DD, must be end-of-month for meaningful results).security_type· string · optionnel
Filter to one security type, matched exactly against the security_desc field — full case and punctuation, as in "Treasury Inflation-Protected Securities (TIPS)". Omit for every type in the period, which is how to read the set of types on offer; the response names them when a filter matches nothing.
Exemple d'appel{"name": "treasury_get_interest_rates", "arguments": {"mode": "latest", "end_date": "texte", "canvas_id": "texte", "start_date": "texte", "security_type": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "error": {}, "rates": [], "shown": 1, "notice": "texte", "canvas_id": "texte", "truncated": true, "as_of_date": "texte", "total_records": 1, "canvas_expires_at": "texte"}} - treasury_list_datasets≈ 992 tokens
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.
Paramètres, retour & exemple (2)
Paramètressearch· string · optionnel
Keyword filter against dataset name and description (case-insensitive substring match). Useful for narrowing results when the category is uncertain.category· string · optionnel · debt | interest_rates | exchange_rates | revenue_spending | savings_bonds | securities | other
Filter by category. Omit to list all datasets. Options: debt, interest_rates, exchange_rates, revenue_spending, savings_bonds, securities, other.
Exemple d'appel{"name": "treasury_list_datasets", "arguments": {"search": "texte", "category": "debt"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "total": 1, "datasets": []}} - treasury_query_dataset≈ 1769 tokens
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).
Paramètres, retour & exemple (7)
Paramètressort· string · optionnel
Sort expression: field name optionally prefixed with "-" for descending (e.g., "-record_date" for newest-first).fields· array · optionnel
Fields to return. Omit to return all fields. Specify field names exactly as listed by treasury_list_datasets — a typo causes a 400.filters· array · optionnel
Filter conditions (ANDed together). Multiple filters on different fields are combined in one filter= parameter.endpoint· string · requis
Endpoint path returned by treasury_list_datasets (e.g., "/v2/accounting/od/debt_to_penny"). Include the leading slash.canvas_id· string · optionnel
Set any non-empty value to stage this page as a DataCanvas table for SQL analysis — the value only requests staging; the server picks the table name. The assigned name (df_XXXXX_XXXXX) comes back in the output canvas_id; pass it to treasury_dataframe_describe, then treasury_dataframe_query. Omit to receive results inline only. Requires CANVAS_PROVIDER_TYPE=duckdb on the server.page_size· integer · optionnel
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.page_number· integer · optionnel
Page to fetch (1-indexed). Check total_pages in the response to know if more pages exist.
Exemple d'appel{"name": "treasury_query_dataset", "arguments": {"endpoint": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"data": [], "error": {}, "notice": "texte", "endpoint": "texte", "canvas_id": "texte", "page_size": 1, "totalCount": 1, "page_number": 1, "total_count": 1, "total_pages": 1, "field_labels": {}, "applied_filters": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».