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 ferinator/bullrun-mcp --skill ucits-etf-choosergit clone --depth 1 https://github.com/ferinator/bullrun-mcpWrote 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/ferinator/bullrun-mcp/ucits-etf-chooser)<a href="https://agentmods.dev/skills/ferinator/bullrun-mcp/ucits-etf-chooser"><img src="https://agentmods.dev/badge/skills/ferinator/bullrun-mcp/ucits-etf-chooser/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/ferinator/bullrun-mcp/ucits-etf-chooser"><img src="https://agentmods.dev/badge/skills/ferinator/bullrun-mcp/ucits-etf-chooser.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.00100 | $0.01684 |
| Opus 5.5 | $0.00040 | $0.00674 |
| Sonnet 5.5 | $0.00020 | $0.00337 |
| Haiku 4.5 | $0.00010 | $0.00168 |
Grade A, and why
ucits-etf-chooser 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 15d 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 — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Choosing between UCITS ETFs on one index
This skill uses the Bullrun connector's ETF tools to compare funds that track the same index. The aim is a dated, sourced comparison the user can check with their broker. It does not pick a fund for them.
Ground rules
- Count funds, not tickers. One UCITS fund (one ISIN) trades on several exchanges under different tickers. Treat those as one choice. Two listings of the same ISIN are never diversification.
- Watch for share classes. Share classes of one fund, such as "EUR Capitalisation" and "USD Capitalisation", or hedged and unhedged, have different ISINs but hold the same portfolio. When the cheapest rows are classes of one fund, say so. Count them as one choice, and use the other slot in a shortlist for a different issuer.
- Fees and yields are percentage points.
0.07means 0.07% a year, in tool inputs and outputs. - Missing means unknown. A fund with no published fee, AUM, holdings or price is reported as missing. It is not "zero" and not "fine". Don't fill gaps from memory.
- Show disagreements. If two tools report different values for the same fund, for example AUM from
get_etf_index_groupand fromcompare_etfs, show both. Don't pick one. AUM currency is often not stored, so don't compare AUM across funds as if it were in one currency. - Never guess a filter value. Index keys, categories, exchanges and domiciles match exactly. A wrong string returns zero rows, which looks like "no such fund". Resolve every value first.
- Prices are stored daily closes, not live quotes. Give the date with every price or return.
Steps
1. Pin down the index and the user's constraints
Work out which index the user means and what they have already said: payout (accumulating or distributing), exchange or trading currency (for example XETRA in EUR, SIX in CHF, LSE in GBP or USD), any AUM floor or issuer preference, and any amount and horizon for a cost estimate. Ask only about things that change the answer, in one short question. Sensible defaults are any payout, any venue, and no cost simulation.
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.
- 15d ago First seen · 68 lines · 100 tokens per session scan A 7b96c7225029
ucits-etf-chooser is a skill published in the GitHub repository ferinator/bullrun-mcp (0 stars, last pushed 8d ago), licensed MIT. It adds 100 tokens to every session and 1,684 once invoked, about $0.0004 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-22.
ucits-etf-chooser compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| ucits-etf-chooserferinator/bullrun-mcp | Skill | 0 | 8d ago | MIT | A | 100 | Claude Code |
| defeatbeta-earnings-analysisdefeat-beta/defeatbeta-api | Skill | 795 | 7d ago | Apache-2.0 | A | 112 | Claude Code |
| tickdb-market-dataTickDB/tickdb-unified-realtime-marketdata-api | Skill | 915 | 23d ago | MIT | A | 165 | Claude Code, Codex |
| defeatbeta-earnings-previewdefeat-beta/defeatbeta-api | Skill | 795 | 7d ago | Apache-2.0 | A | 60 | Claude Code, Codex |
| sprrwilsonfreitas/awesome-quant | Skill | 30k | yesterday | none | A | 60 | Claude Code, Codex |
| defeatbeta-earnings-key-datadefeat-beta/defeatbeta-api | Skill | 795 | 7d ago | Apache-2.0 | A | 138 | Claude Code, Codex |
| create-entrywilsonfreitas/awesome-quant | Skill | 30k | yesterday | none | A | 43 | Claude Code, Codex |