Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cyanheads/treasury-fiscaldata-mcp-server --skill treasury-fiscaldata-guidegit clone --depth 1 https://github.com/cyanheads/treasury-fiscaldata-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cyanheads/treasury-fiscaldata-mcp-server/treasury-fiscaldata-guide)<a href="https://agentmods.dev/skills/cyanheads/treasury-fiscaldata-mcp-server/treasury-fiscaldata-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/treasury-fiscaldata-mcp-server/treasury-fiscaldata-guide/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cyanheads/treasury-fiscaldata-mcp-server/treasury-fiscaldata-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/treasury-fiscaldata-mcp-server/treasury-fiscaldata-guide.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00038 | $0.01065 |
| Opus 5.5 | $0.00015 | $0.00426 |
| Sonnet 5.5 | $0.00008 | $0.00213 |
| Haiku 4.5 | $0.00004 | $0.00106 |
Grade A, and why
treasury-fiscaldata-guide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 49 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scope
Use this server for Treasury fiscal accounts, debt outstanding, the average interest Treasury pays on outstanding securities, and statutory reporting exchange rates. Establish the measure before choosing a dataset: average borrowing costs and reporting exchange rates do not answer questions about current market yields or spot FX.
Identifiers
Resolve an endpoint and its field names through treasury_list_datasets. Its catalog is curated; an absent entry does not establish that Treasury lacks the dataset. For an unlisted endpoint or field, consult Treasury's documentation before querying it.
Read category values from records for the period being studied. A field name identifies a column, not the set of values that column contains; security descriptions and country names must match Treasury's returned vocabulary.
The input canvas_id requests staging; it does not choose a table name or identify a destination canvas. The returned canvas_id is the server-assigned table name. Use that returned name for dataframe inspection and SQL. A SQL result persisted with register_as instead returns its name in registered_as.
Gates
- Establish coverage before calculating a total, minimum, maximum, or trend. A generic dataset query fetches one page, and staging stores only that page. Walk the remaining pages with the same selection and sort, retaining each returned table name. Convenience series can return a short inline preview; compare the response counts and notices, then inspect the staged rows before analyzing the series.
- Verify that each staged table exists and inspect its provenance and schema before SQL. Staging can fail or be unavailable, and tables expire. An absent table requires re-fetching the source data, not inventing a table name.
- Use the staged schema rather than convenience-response property names. For example, a debt response's
total_debtcorresponds to the raw staged columntot_pub_debt_out_amt; interest responses renameavg_interest_rate_amttoavg_interest_rate_pctinline. - Align row dates before comparing series. A filtered interest-rate latest result can be the last published month for a discontinued security type. Filtered exchange-rate latest results can span quarters; the top-level newest date does not date every row. Use a common reporting period or disclose the difference.
- Inspect fiscal row structure before aggregating. MTS hierarchy rows and MSPD security roll-ups include totals alongside components. Select a published total or mutually exclusive components; do not sum both. Discover the relevant identifiers and labels from the selected period rather than assuming fixed labels.
- Match units and period basis before combining measures. Some catalog datasets use millions or billions. A monthly amount and a fiscal-year-to-date amount are different measures; summing successive FYTD snapshots counts earlier months repeatedly. Preserve missing values rather than converting the string
"null"into zero. - Check SQL coverage as well as source coverage.
row_count_cappedmeans the response count is a cap, not the full result size; a smaller preview can hide additional rows even when the count is exact. Materializing a SQL result cannot restore source pages that were never staged.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 49 lines · 38 tokens per session scan A 35d7b3e11b2f
treasury-fiscaldata-guide is a skill published in the GitHub repository cyanheads/treasury-fiscaldata-mcp-server (2 stars, last pushed 2d ago), licensed Apache-2.0. It adds 38 tokens to every session and 1,065 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-28.
Other skills, from other repositories
socrata-guide
Investigate civic data with socrata tools, check dataset coverage, and choose upstream SoQL or staged DuckDB analysis. Use for government open-data questions involving absence claims, trends, conditional aggregates, or comparisons across datasets.
release-and-publish
Ship a release end-to-end across every registry the project targets (npm, MCP Registry, GitHub Releases for .mcpb bundles, GHCR). Runs the final verification gate, fast-forwards main when the release rode a release PR, creates the annotated tag on the commit main now points at, pushes commits and tags, then publishes…
design-mcp-server
Design the tool surface, resources, and service layer for a new MCP server. Use when starting a new server, planning a major feature expansion, or when the user describes a domain/API they want to expose via MCP. Produces a design doc at docs/design.md that drives implementation.
add-tool
Scaffold a new MCP tool definition. Use when the user asks to add a tool, create a new tool, or implement a new capability for the server.
api-context
Canonical reference for the unified Context object passed to every tool and resource handler in @cyanheads/mcp-ts-core. Covers the full interface, its RequestContext base, all sub-APIs (ctx.log, ctx.state, ctx.requestInput, ctx.inputs, ctx.clientCapabilities, ctx.enrich, ctx.content), and when to use each.
api-errors
McpError constructor, JsonRpcErrorCode reference, and error handling patterns for @cyanheads/mcp-ts-core. Use when looking up error codes, understanding where errors should be thrown vs. caught, or using ErrorHandler.tryCatch in services.