From dd950ea24cd6ec3b470485e9f2693af2b332dda4 Mon Sep 17 00:00:00 2001 From: alberthaoh Date: Wed, 27 May 2026 07:13:38 +0000 Subject: [PATCH 1/4] Add Aether partner-built plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted — plus a third-party data marketplace. Registers the @evidinvest/aether-mcp server (11 live tools) and packages 4 commands and 3 skills, mirroring the lseg / spglobal partner layout. Co-Authored-By: Claude Opus 4.7 --- .claude-plugin/marketplace.json | 6 ++ .../aether/.claude-plugin/plugin.json | 25 +++++ plugins/partner-built/aether/.mcp.json | 11 +++ plugins/partner-built/aether/CONNECTORS.md | 95 +++++++++++++++++++ plugins/partner-built/aether/README.md | 79 +++++++++++++++ .../aether/commands/earnings-color.md | 42 ++++++++ .../aether/commands/regulation-lookup.md | 44 +++++++++ .../aether/commands/sec-deep-dive.md | 45 +++++++++ .../aether/commands/supply-chain-exposure.md | 38 ++++++++ .../earnings-transcript-research/SKILL.md | 44 +++++++++ .../skills/eu-regulation-research/SKILL.md | 74 +++++++++++++++ .../skills/sec-filings-research/SKILL.md | 45 +++++++++ 12 files changed, 548 insertions(+) create mode 100644 plugins/partner-built/aether/.claude-plugin/plugin.json create mode 100644 plugins/partner-built/aether/.mcp.json create mode 100644 plugins/partner-built/aether/CONNECTORS.md create mode 100644 plugins/partner-built/aether/README.md create mode 100644 plugins/partner-built/aether/commands/earnings-color.md create mode 100644 plugins/partner-built/aether/commands/regulation-lookup.md create mode 100644 plugins/partner-built/aether/commands/sec-deep-dive.md create mode 100644 plugins/partner-built/aether/commands/supply-chain-exposure.md create mode 100644 plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md create mode 100644 plugins/partner-built/aether/skills/eu-regulation-research/SKILL.md create mode 100644 plugins/partner-built/aether/skills/sec-filings-research/SKILL.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index ea64cfec7..c08859d49 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -118,6 +118,12 @@ "source": "./plugins/partner-built/spglobal", "description": "S&P Global - Financial data and analytics skills including company tearsheets, earnings previews, and transaction summaries" }, + { + "name": "aether", + "displayName": "Aether", + "source": "./plugins/partner-built/aether", + "description": "Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted, plus a third-party data marketplace." + }, { "name": "claude-for-msft-365-install", "displayName": "Claude for Microsoft 365 Install", diff --git a/plugins/partner-built/aether/.claude-plugin/plugin.json b/plugins/partner-built/aether/.claude-plugin/plugin.json new file mode 100644 index 000000000..bb69f2b27 --- /dev/null +++ b/plugins/partner-built/aether/.claude-plugin/plugin.json @@ -0,0 +1,25 @@ +{ + "name": "aether", + "displayName": "Aether", + "version": "0.1.0", + "description": "Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted. Includes a two-sided data marketplace for third-party research.", + "author": { + "name": "EvidInvest (Aether)", + "email": "hao.huang@ebdsweden.com" + }, + "homepage": "https://aether.evidinvest.com", + "repository": "https://github.com/EvidInvest/aether-developer", + "license": "Apache-2.0", + "keywords": [ + "sec", + "edgar", + "filings", + "10-K", + "earnings-transcripts", + "eu-regulation", + "mifid", + "mica", + "financial-search", + "agent-native" + ] +} diff --git a/plugins/partner-built/aether/.mcp.json b/plugins/partner-built/aether/.mcp.json new file mode 100644 index 000000000..9f8063fa6 --- /dev/null +++ b/plugins/partner-built/aether/.mcp.json @@ -0,0 +1,11 @@ +{ + "mcpServers": { + "aether": { + "command": "npx", + "args": ["-y", "@evidinvest/aether-mcp@latest"], + "env": { + "AETHER_API_KEY": "${AETHER_API_KEY}" + } + } + } +} diff --git a/plugins/partner-built/aether/CONNECTORS.md b/plugins/partner-built/aether/CONNECTORS.md new file mode 100644 index 000000000..ccfedec54 --- /dev/null +++ b/plugins/partner-built/aether/CONNECTORS.md @@ -0,0 +1,95 @@ +# Connectors + +This plugin connects to a single MCP server, **Aether** (`@evidinvest/aether-mcp`), which +proxies to `https://api.aether.evidinvest.com`. No additional connectors are required. The +server advertises **11 tools** in three families. Commands reference tools by their exact +names below. + +## Tool Categories + +| Category | Tools | Description | +|----------|-------|-------------| +| Search | `financial_search`, `transcript_search`, `regulation_search` | First-party retrieval over SEC filings, earnings transcripts, and EU regulation | +| Marketplace — read | `list_partners`, `partner_search`, `partner_proxy_search` | Discover and query third-party seller data | +| Marketplace — sell | `seller_signup`, `seller_publish_document`, `seller_register_endpoint`, `seller_list_my_documents`, `seller_list_my_endpoints` | Publish documents or register paid endpoints as a seller | + +## Search Tools + +### `financial_search` +Natural-language hybrid retrieval over SEC filings (10-K/10-Q/8-K) and supply-chain +relationships. Returns ranked, structured, LLM-ready results with snippets, section titles, +filing URLs, and tickers. + +| Param | Type | Notes | +|-------|------|-------| +| `query` | string | **Required.** Natural-language query. | +| `domain` | enum | `public_equity` \| `supply_chain` \| `auto` (default `auto`). | +| `limit` | number | Default 10, max 50. | +| `fields` | string[] | Optional field projection. | +| `profile` | enum | `bm25` \| `hybrid` \| `hybrid_rerank` \| `hybrid_rerank_tickerprior` (default — the production winner: hybrid + cross-encoder rerank + ticker-prior). | +| `return_format` | enum | `section` (default — full SEC section the match belongs to) \| `chunk` (matching window only) \| `both`. | + +### `transcript_search` +Hybrid retrieval over earnings-call transcripts (CEO/CFO commentary + analyst Q&A). Returns +ranked verbatim speaker turns with citations. Use for forward-looking color (guidance, +narrative) that filings don't capture. + +| Param | Type | Notes | +|-------|------|-------| +| `query` | string | **Required.** | +| `ticker` | string | Optional ticker filter (e.g. `NVDA`). | +| `lookback_quarters` | number | Keep calls within the last N quarters (default: no filter). | +| `speaker_role` | string | Optional: `CEO` \| `CFO` \| `Analyst` \| `Operator`. | +| `limit` | number | Default 10, max 50. | +| `profile` | enum | `bm25` \| `hybrid` (default). | + +### `regulation_search` +Search a 29-act EU financial-regulation corpus (~13,000 citable chunks). Returns ranked, +citable units — Article-paragraphs, recitals, annex blocks — each with a human breadcrumb +(e.g. `MiCA 2023/1114 · Art. 4 · para. 1`). Scoped to financial regulation, not all EU law. + +| Param | Type | Notes | +|-------|------|-------| +| `query` | string | **Required.** | +| `celex` | string \| string[] | Optional CELEX filter, e.g. `32014L0065` (MiFID II), `32023R1114` (MiCA), `32013R0575` (CRR), `32022R2554` (DORA), `32024R1624` (AMLR). Omit to search the whole corpus. | +| `doc_type` | string | `regulation` \| `directive` \| `rts` \| `its` \| `decision`. | +| `article` | string | Single-article filter, e.g. `"20"` or `"12a"`. | +| `chunk_type` | string | `paragraph` \| `article_intro` \| `recital` \| `table` \| `annex`. | +| `aml_topics` | string \| string[] | `cdd` \| `edd` \| `pep` \| `str_reporting` \| `governance` \| `reporting` \| `transaction_monitoring`. | +| `prefer_consolidated` | boolean | Prefer EUR-Lex consolidated text over original OJ text at equal relevance (hybrid only). | +| `limit` | number | Default 10, max 50. | +| `profile` | enum | `bm25` \| `hybrid` (default). | + +## Marketplace — Read Tools + +### `list_partners` +List active marketplace sellers and what each offers. Each partner exposes zero or more modes: +`indexed` (free queries via `partner_search`) and/or `proxy` (paid per-call queries via +`partner_proxy_search`). Returns pricing so you can budget before calling. Params: `ticker` +(optional coverage filter), `mode` (`indexed` \| `proxy` \| `any`), `limit`. + +### `partner_search` +Search marketplace partner documents (research notes, supply-chain analyses) published by +registered sellers. Returns ranked chunks with per-document attribution and license terms. +Call `list_partners` first to scope via `partners`. Params: `query` (**required**), `partners[]`, +`doc_types[]`, `ticker_filter`, `limit`, `profile`. + +### `partner_proxy_search` +Route a query server-to-server to seller-registered API endpoints. **Costs accrue per call** +regardless of result count; Aether holds seller credentials so the agent never sees the URL or +token. Params: `query` (**required**), `partners[]` (**required** — you must pick explicitly, +no surprise billing), `endpoints[]`, `ticker_filter`, `limit`, `confirm_charge` (must be `true` +to execute; otherwise returns a dry-run quote). + +## Marketplace — Sell Tools + +For data publishers, not analysis workflows. Briefly: + +- **`seller_signup`** — create a seller account (returns an API key once; new accounts are + `pending_review` until ops approves, unless an `invite_code` is supplied). +- **`seller_publish_document`** — publish/update a document (chunked, embedded, indexed in the + background); re-publishing the same `external_doc_id` replaces the prior version. +- **`seller_register_endpoint`** — register a proxy endpoint (Mode B); secret stored encrypted + at rest, per-call pricing via `price_per_call_usd_cents`. +- **`seller_list_my_documents`** / **`seller_list_my_endpoints`** — inventory + status; secrets + never returned. diff --git a/plugins/partner-built/aether/README.md b/plugins/partner-built/aether/README.md new file mode 100644 index 000000000..4b23e97a9 --- /dev/null +++ b/plugins/partner-built/aether/README.md @@ -0,0 +1,79 @@ +# Aether — Agent-Native Financial Search + +Search SEC filings, earnings-call transcripts, and EU financial regulation in natural +language, and get back **as-filed, citable** text — never analyst-adjusted. Aether is a +financial-vertical search engine purpose-built for agents, exposed over MCP. + +## What This Plugin Does + +This plugin wires the [Aether MCP server](https://github.com/EvidInvest/aether-developer) +into Claude and packages its tools into high-level workflows. Each command orchestrates a +search tool into a complete, citation-backed answer instead of leaving you to call tools one +at a time. + +The corpus today: + +- **SEC filings** — 10-K / 10-Q / 8-K for the S&P 500 across ~10 years, ~1.4M retrieval chunks. +- **Earnings-call transcripts** — CEO / CFO commentary and analyst Q&A, for forward-looking + color that filings don't capture. +- **EU financial regulation** — a 29-act corpus (~13,000 citable units) spanning MiFID II, + MiFIR, MAR, EMIR, MiCA, DORA, CRR/CRD IV, UCITS/AIFMD, PSD2, Solvency II, SFDR/Taxonomy/CSRD, + the 2024 AML package, and more. +- **Marketplace** — third-party research and data published by registered sellers, searchable + alongside the first-party corpus. + +## Commands + +| Command | Description | +|---------|-------------| +| `/sec-deep-dive` | Pull the most relevant 10-K/10-Q/8-K sections on a topic for a company, with as-filed quotes and filing citations | +| `/earnings-color` | Surface CEO/CFO/analyst commentary on a topic from earnings-call transcripts, quoted verbatim with speaker + date | +| `/regulation-lookup` | Find the controlling EU-regulation text for a question, returned as citable Article-paragraphs / recitals | +| `/supply-chain-exposure` | Find public companies disclosing exposure to a supply-chain risk, grouped by ticker | + +## Skills + +| Skill | Domain Knowledge | +|-------|-----------------| +| `sec-filings-research` | Retrieval profiles, `section` vs `chunk` returns, as-filed discipline, citation hygiene | +| `earnings-transcript-research` | Speaker-role and lookback filtering, separating guidance from reported results | +| `eu-regulation-research` | CELEX map, consolidated vs OJ text, doc-type/article/AML-topic filters, citation breadcrumbs | + +## Integrations + +This plugin connects to the **Aether MCP Server**, which serves these tool families: + +- **Search** — `financial_search` (SEC filings + supply-chain relationships), + `transcript_search` (earnings calls), `regulation_search` (EU financial regulation). +- **Marketplace (read)** — `list_partners`, `partner_search` (indexed seller documents), + `partner_proxy_search` (paid server-to-server seller queries). +- **Marketplace (sell)** — `seller_signup`, `seller_publish_document`, + `seller_register_endpoint`, `seller_list_my_documents`, `seller_list_my_endpoints`. + +See [CONNECTORS.md](CONNECTORS.md) for the complete tool reference and parameters. + +## Installation + +``` +claude plugins add aether +``` + +## Requirements & Authentication + +The MCP server is distributed on npm as [`@evidinvest/aether-mcp`](https://www.npmjs.com/package/@evidinvest/aether-mcp) +and run via `npx` (see [`.mcp.json`](.mcp.json)). Authentication options: + +- **API key** — set `AETHER_API_KEY` (get one at ). + Verified accounts include a **3-month free trial** (5,000 calls/hr on Aether's first-party tools). +- **OAuth device code** — omit the key and the server prints a sign-in URL on first run; the + token is cached and refreshed automatically. +- **Anonymous** — set `AETHER_NO_AUTH=1` to call without an account (rate-limited). + +## Why Aether + +- **As-filed, never adjusted.** Numbers and language come straight from the source filing, with + the section, filing URL, and ticker attached — not a vendor's normalized model. +- **First agent-native financial search.** Built for tool-calling agents, not a human UI bolted + onto an API. +- **One server, three corpora.** US disclosure, earnings narrative, and EU regulation behind a + single MCP connector, plus an open marketplace for third-party data. diff --git a/plugins/partner-built/aether/commands/earnings-color.md b/plugins/partner-built/aether/commands/earnings-color.md new file mode 100644 index 000000000..c83f1a75b --- /dev/null +++ b/plugins/partner-built/aether/commands/earnings-color.md @@ -0,0 +1,42 @@ +--- +description: Surface CEO/CFO/analyst commentary on a topic from earnings-call transcripts, quoted verbatim with speaker and date +argument-hint: " [ticker e.g. NVDA] [lookback quarters e.g. 4]" +--- + +# Earnings Color + +> Uses the Aether `transcript_search` tool. See [CONNECTORS.md](../CONNECTORS.md) for parameters. + +Pull forward-looking commentary — guidance, narrative, tone — from earnings-call transcripts +that 10-K/10-Q filings don't capture. See the **earnings-transcript-research** skill for guidance +on separating reported results from outlook. + +## Workflow + +### 1. Gather Input +- Topic / question (required). +- Optional: ticker, lookback window (quarters), speaker role of interest (CEO / CFO / Analyst). + +### 2. Search +Call `transcript_search` with: +- `query`: the topic phrased naturally. +- `ticker`: if the user named a company. +- `lookback_quarters`: if the user wants recent calls only (e.g. 4). +- `speaker_role`: if they want only management (`CEO`/`CFO`) or only `Analyst` questions. +- `limit`: 10. + +### 3. Synthesize +- Quote speaker turns **verbatim**. +- Attribute each: ticker, speaker name + role, and call date. +- Distinguish management assertions from analyst questions; flag hedged or conditional language. + +## Output Format + +Lead with a 1-2 sentence read on management's stance, then: + +| Quote | Speaker (role) | Ticker | Call date | +|-------|----------------|--------|-----------| +| "…" | … (CEO) | … | … | + +Close by noting where commentary is consistent vs shifting across quarters, and any topics +management notably avoided. diff --git a/plugins/partner-built/aether/commands/regulation-lookup.md b/plugins/partner-built/aether/commands/regulation-lookup.md new file mode 100644 index 000000000..d45000172 --- /dev/null +++ b/plugins/partner-built/aether/commands/regulation-lookup.md @@ -0,0 +1,44 @@ +--- +description: Find the controlling EU-regulation text for a question, returned as citable Article-paragraphs and recitals +argument-hint: " [act e.g. MiCA / MiFID II] [article e.g. 20]" +--- + +# Regulation Lookup + +> Uses the Aether `regulation_search` tool. See [CONNECTORS.md](../CONNECTORS.md) for parameters. + +Find the controlling text in the EU financial-regulation corpus and return it as **citable** +units with breadcrumbs (e.g. `MiCA 2023/1114 · Art. 4 · para. 1`). See the +**eu-regulation-research** skill for the CELEX map and consolidated-vs-OJ guidance. + +## Workflow + +### 1. Gather Input +- Question (required). +- Optional: which act (map to CELEX), specific article, doc type, AML topic. + +### 2. Search +Call `regulation_search` with: +- `query`: the question phrased naturally. +- `celex`: if the user named an act — e.g. `32023R1114` (MiCA), `32014L0065` (MiFID II), + `32013R0575` (CRR), `32022R2554` (DORA), `32024R1624` (AMLR). See the skill for the full map. +- `article`: if they cited a specific article. +- `aml_topics`: for AML questions (e.g. `cdd`, `edd`, `pep`, `str_reporting`). +- `prefer_consolidated`: `true` when the user wants current in-force text rather than as-published. +- `limit`: 10. + +### 3. Synthesize +- Quote the operative provision **verbatim**. +- Always include the breadcrumb citation returned with each unit. +- If consolidated and original text differ materially, note both. + +## Output Format + +Lead with a 1-2 sentence answer grounded in the provision, then: + +| Provision (verbatim) | Citation | Type | +|----------------------|----------|------| +| "…" | MiCA 2023/1114 · Art. 4 · para. 1 | paragraph | + +Close with a plain-language reading. Flag that this is the corpus text, not legal advice, and +note if the question spans acts not in the 29-act corpus. diff --git a/plugins/partner-built/aether/commands/sec-deep-dive.md b/plugins/partner-built/aether/commands/sec-deep-dive.md new file mode 100644 index 000000000..7efecd76c --- /dev/null +++ b/plugins/partner-built/aether/commands/sec-deep-dive.md @@ -0,0 +1,45 @@ +--- +description: Pull the most relevant 10-K/10-Q/8-K sections on a topic for a company, with as-filed quotes and filing citations +argument-hint: " " +--- + +# SEC Deep Dive + +> Uses the Aether `financial_search` tool. See [CONNECTORS.md](../CONNECTORS.md) for parameters. + +Search a company's SEC filings for a topic and return the most relevant **as-filed** sections, +quoted verbatim with citations. See the **sec-filings-research** skill for retrieval-profile and +return-format guidance. + +## Workflow + +### 1. Gather Input +- Ticker (required). +- Topic / question (required). +- Optional: filing-type focus (10-K vs 10-Q vs 8-K), recency preference. + +### 2. Search +Call `financial_search` with: +- `query`: the topic phrased naturally, scoped to the company (e.g. "Apple supply-chain concentration risk in Taiwan"). +- `domain`: `public_equity`. +- `return_format`: `section` (full section context for accurate quoting). +- `profile`: leave default (`hybrid_rerank_tickerprior`). +- `limit`: 10. + +If results look thin, widen the query or retry with `return_format: "both"`. + +### 3. Synthesize +- Quote the relevant passages **verbatim** — never paraphrase numbers or risk language. +- Attribute every quote: ticker, filing type, section title, and filing URL from the result. +- Group by theme; note disagreements or changes in language across filings if visible. + +## Output Format + +Lead with a 1-2 sentence answer to the question, then: + +| Quote (as-filed) | Filing | Section | Date / URL | +|------------------|--------|---------|------------| +| "…" | 10-K | Risk Factors | … | + +Close with a short synthesis: what the filings actually say, and any gaps where the disclosure +is silent. Do not infer beyond the cited text. diff --git a/plugins/partner-built/aether/commands/supply-chain-exposure.md b/plugins/partner-built/aether/commands/supply-chain-exposure.md new file mode 100644 index 000000000..31fdd7262 --- /dev/null +++ b/plugins/partner-built/aether/commands/supply-chain-exposure.md @@ -0,0 +1,38 @@ +--- +description: Find public companies disclosing exposure to a supply-chain risk, grouped by ticker +argument-hint: "" +--- + +# Supply-Chain Exposure + +> Uses the Aether `financial_search` tool in supply-chain mode. See [CONNECTORS.md](../CONNECTORS.md). + +Find public companies whose SEC filings disclose exposure to a given supply-chain risk, then +rank and group the evidence by ticker. See the **sec-filings-research** skill for retrieval +guidance. + +## Workflow + +### 1. Gather Input +- The risk or dependency (required) — e.g. a region, supplier, input, or chokepoint. + +### 2. Search +Call `financial_search` with: +- `query`: the risk phrased naturally (e.g. "dependence on rare-earth magnets sourced from China"). +- `domain`: `supply_chain`. +- `return_format`: `section`. +- `limit`: 25 (cast wider — you're surveying the universe, not one company). + +### 3. Synthesize +- Group hits by ticker; keep the single most relevant **as-filed** passage per company. +- Rank by relevance and recency. +- Quote verbatim with filing citation; do not infer exposure that isn't disclosed. + +## Output Format + +| Ticker | Most relevant disclosure (as-filed) | Filing | Date | +|--------|--------------------------------------|--------|------| +| … | "…" | 10-K | … | + +Close with a short read on where exposure clusters, and the limits of the search (only companies +that *disclose* the risk in the covered corpus appear). diff --git a/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md b/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md new file mode 100644 index 000000000..410524ec6 --- /dev/null +++ b/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md @@ -0,0 +1,44 @@ +--- +name: earnings-transcript-research +description: Search earnings-call transcripts with Aether's transcript_search tool for forward-looking management commentary and analyst Q&A. Use when you need guidance, narrative, tone, or color that 10-K/10-Q filings don't capture, quoted verbatim with speaker and call date. +--- + +# Earnings Transcript Research with Aether + +You are an analyst mining earnings calls for what management *said* — guidance, framing, tone, +and the questions analysts pressed on. This is the forward-looking layer that audited filings +omit. Aether's `transcript_search` tool returns ranked verbatim speaker turns with citations. + +## Core Principle: Quote the Speaker, Date the Claim + +Management commentary is only useful if it's attributed and time-stamped. Quote speaker turns +verbatim, label the speaker and role, and stamp the call date. Distinguish a CEO assertion from +an analyst's premise — they carry very different weight. + +## The `transcript_search` Tool + +| Param | Guidance | +|-------|----------| +| `query` | Natural language; topic-first ("data-center demand durability"). | +| `ticker` | Scope to a company (e.g. `NVDA`) when the question is single-name. | +| `lookback_quarters` | Restrict to recent calls (e.g. 4) when recency matters; omit for full history. | +| `speaker_role` | `CEO` / `CFO` for management view; `Analyst` to see what the sell-side is probing; `Operator` rarely useful. | +| `limit` | 10 default; raise for cross-company theme sweeps. | +| `profile` | `hybrid` (default) for topical questions; `bm25` for exact-phrase. | + +## Workflow + +1. **Frame** — guidance vs. reported results vs. analyst concern? Choose `speaker_role` accordingly. +2. **Scope time** — set `lookback_quarters` if the user cares about the latest stance, not history. +3. **Retrieve** — call `transcript_search`. +4. **Separate signal** — split management claims from analyst questions; flag hedged/conditional + language ("we expect", "should", "if conditions hold"). +5. **Cite** — speaker name + role + ticker + call date for every quote. + +## Anti-Patterns + +- Presenting an analyst's framing as management's view. +- Dropping the call date — outlook commentary ages fast. +- Smoothing hedged language into a hard commitment. +- Mixing transcript color with as-filed numbers without labeling which is which (use the + `sec-filings-research` skill for the filed figures). diff --git a/plugins/partner-built/aether/skills/eu-regulation-research/SKILL.md b/plugins/partner-built/aether/skills/eu-regulation-research/SKILL.md new file mode 100644 index 000000000..4e4d26e52 --- /dev/null +++ b/plugins/partner-built/aether/skills/eu-regulation-research/SKILL.md @@ -0,0 +1,74 @@ +--- +name: eu-regulation-research +description: Search EU financial regulation with Aether's regulation_search tool across a 29-act corpus (MiFID II, MiCA, DORA, CRR, AMLR, and more) and return citable Article-paragraphs, recitals, and annex blocks. Use for compliance questions grounded in the actual regulatory text rather than summaries. +--- + +# EU Regulation Research with Aether + +You are a regulatory analyst answering from the **text of the regulation**, not from memory or +summary. Aether's `regulation_search` tool covers a 29-act EU financial-regulation corpus +(~13,000 citable units) and returns ranked Article-paragraphs, recitals, and annex blocks, each +with a human breadcrumb citation (e.g. `MiCA 2023/1114 · Art. 4 · para. 1`). + +## Core Principle: Cite the Provision, Note the Version + +Quote the operative provision verbatim and always include the breadcrumb the tool returns. +Regulation has versions: the as-published Official Journal text and later EUR-Lex consolidated +text can differ. Be explicit about which you're quoting. + +## CELEX Quick Map + +Use `celex` to pin a search to one act: + +| Act | CELEX | +|-----|-------| +| MiFID II | `32014L0065` | +| MiFIR | `32014R0600` | +| MAR (Market Abuse) | `32014R0596` | +| EMIR | `32012R0648` | +| MiCA | `32023R1114` | +| DORA | `32022R2554` | +| CRR | `32013R0575` | +| CRD IV | `32013L0036` | +| UCITS | `32009L0065` | +| AIFMD | `32011L0061` | +| PSD2 | `32015L2366` | +| Solvency II | `32009L0138` | +| SFDR | `32019R2088` | +| AMLR (2024) | `32024R1624` | +| GDPR | `32016R0679` | + +The corpus also covers Prospectus, CSDR, Short-Selling, SFTR, Benchmarks, BRRD, SRMR, IDD, +Taxonomy, CSRD, the rest of the 2024 AML package (AMLAR, AMLD6, Transfer-of-Funds), and Credit +Rating Agencies. It is scoped to financial regulation — not all EU law. + +## The `regulation_search` Tool + +| Param | Guidance | +|-------|----------| +| `query` | Natural-language question. | +| `celex` | Pin to one or more acts (see map). Omit to search the whole corpus. | +| `doc_type` | `regulation` / `directive` / `rts` / `its` / `decision`. | +| `article` | Narrow to a single article, e.g. `"20"` or `"12a"`. | +| `chunk_type` | `paragraph` / `article_intro` / `recital` / `table` / `annex`. | +| `aml_topics` | For AML questions: `cdd`, `edd`, `pep`, `str_reporting`, `governance`, `reporting`, `transaction_monitoring`. | +| `prefer_consolidated` | `true` to favour in-force consolidated text over original OJ text (hybrid only). | +| `profile` | `hybrid` (default) for topical questions; `bm25` for exact-phrase. | + +## Workflow + +1. **Localize** — name the likely act(s) and set `celex`; this sharply improves precision. +2. **Choose the version** — `prefer_consolidated: true` for "what's in force now"; leave off for + as-published text. +3. **Retrieve** — call `regulation_search`; narrow with `article`/`chunk_type` if the answer + should be a specific provision (operative `paragraph`) vs. context (`recital`). +4. **Quote + cite** — verbatim provision plus its breadcrumb. +5. **Read plainly** — give a plain-language reading, but anchor it to the cited text. + +## Anti-Patterns + +- Answering from general knowledge instead of retrieved text. +- Dropping the breadcrumb citation. +- Conflating a `recital` (interpretive context) with an operative `paragraph` (the binding rule). +- Implying the answer is legal advice — it's corpus text. Flag when a question reaches beyond the + 29-act corpus. diff --git a/plugins/partner-built/aether/skills/sec-filings-research/SKILL.md b/plugins/partner-built/aether/skills/sec-filings-research/SKILL.md new file mode 100644 index 000000000..381983041 --- /dev/null +++ b/plugins/partner-built/aether/skills/sec-filings-research/SKILL.md @@ -0,0 +1,45 @@ +--- +name: sec-filings-research +description: Search SEC filings (10-K/10-Q/8-K) and supply-chain relationships with Aether's financial_search tool and return as-filed, citable evidence. Use when researching a company's disclosures, risk factors, MD&A, segment detail, or supply-chain exposure from primary filings rather than analyst-adjusted data. +--- + +# SEC Filings Research with Aether + +You are a disclosure-research analyst. Your job is to retrieve what companies *actually filed* +and present it with citations — never to substitute a normalized or analyst-adjusted number for +the as-filed text. Aether's `financial_search` tool serves SEC filings (10-K/10-Q/8-K) and +supply-chain relationships over a corpus of ~1.4M chunks. + +## Core Principle: As-Filed, Always Cited + +Every claim must trace to a filing. Quote the operative language verbatim, attach the section +title and filing URL the tool returns, and resist the urge to round, restate, or "clean up" +reported figures. If the filing is silent on something, say so — do not infer. + +## The `financial_search` Tool + +| Param | Guidance | +|-------|----------| +| `query` | Phrase naturally and scope to the company when you can ("Nvidia data-center segment concentration"). | +| `domain` | `public_equity` for filings; `supply_chain` for relationship/exposure queries; `auto` if unsure. | +| `profile` | Leave default (`hybrid_rerank_tickerprior`) — hybrid retrieval + cross-encoder rerank + ticker-prior boost is the production winner. Drop to `bm25` only for exact-phrase lookups. | +| `return_format` | `section` (default) for quoting in context; `chunk` for a tight matching window; `both` when you need the match *and* its surrounding section. | +| `limit` | 10 for a single-company question; 25+ when surveying many companies (e.g. supply-chain sweeps). | +| `fields` | Project specific fields only when you need a compact response. | + +## Workflow + +1. **Scope** — single company or a universe? Single → tight query + `limit` 10. Universe → + `domain: supply_chain`, broader query, higher `limit`. +2. **Retrieve** — call `financial_search`; prefer `return_format: "section"` so quotes keep context. +3. **Verify** — confirm each passage actually addresses the question before quoting it. Discard + loosely-related hits rather than padding the answer. +4. **Cite** — ticker + filing type + section + URL/date for every quote. +5. **Synthesize** — lead with a direct answer, support with verbatim quotes, and flag silences. + +## Anti-Patterns + +- Paraphrasing reported numbers (breaks the as-filed guarantee). +- Quoting a `chunk` without checking the surrounding `section` for contradicting context. +- Inferring exposure or intent the filing doesn't state. +- Treating absence of a hit as proof of absence — note corpus limits (S&P 500, ~10 years). From 6823fd770ee088c22835b01cf18395378f57a0a0 Mon Sep 17 00:00:00 2001 From: alberthaoh Date: Wed, 27 May 2026 08:06:19 +0000 Subject: [PATCH 2/4] aether: drop transcript_search surface until the corpus exists The earnings-transcript pipeline hasn't been built yet, so transcript_search returns no data. Removing it from the plugin's advertised surface (the /earnings-color command, the earnings-transcript-research skill, and all README/CONNECTORS/description/keyword references) so the plugin only exposes tools backed by real data: SEC filings (financial_search) and EU regulation (regulation_search). Re-add in a version bump once transcripts are populated. Co-Authored-By: Claude Opus 4.7 --- .claude-plugin/marketplace.json | 2 +- .../aether/.claude-plugin/plugin.json | 3 +- plugins/partner-built/aether/CONNECTORS.md | 21 ++------- plugins/partner-built/aether/README.md | 16 +++---- .../aether/commands/earnings-color.md | 42 ------------------ .../earnings-transcript-research/SKILL.md | 44 ------------------- 6 files changed, 11 insertions(+), 117 deletions(-) delete mode 100644 plugins/partner-built/aether/commands/earnings-color.md delete mode 100644 plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c08859d49..84a88df2f 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -122,7 +122,7 @@ "name": "aether", "displayName": "Aether", "source": "./plugins/partner-built/aether", - "description": "Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted, plus a third-party data marketplace." + "description": "Agent-native search over SEC filings (10-K/10-Q/8-K) and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted, plus a third-party data marketplace." }, { "name": "claude-for-msft-365-install", diff --git a/plugins/partner-built/aether/.claude-plugin/plugin.json b/plugins/partner-built/aether/.claude-plugin/plugin.json index bb69f2b27..a0b4fbef8 100644 --- a/plugins/partner-built/aether/.claude-plugin/plugin.json +++ b/plugins/partner-built/aether/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "name": "aether", "displayName": "Aether", "version": "0.1.0", - "description": "Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted. Includes a two-sided data marketplace for third-party research.", + "description": "Agent-native search over SEC filings (10-K/10-Q/8-K) and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted. Includes a two-sided data marketplace for third-party research.", "author": { "name": "EvidInvest (Aether)", "email": "hao.huang@ebdsweden.com" @@ -15,7 +15,6 @@ "edgar", "filings", "10-K", - "earnings-transcripts", "eu-regulation", "mifid", "mica", diff --git a/plugins/partner-built/aether/CONNECTORS.md b/plugins/partner-built/aether/CONNECTORS.md index ccfedec54..4544a377c 100644 --- a/plugins/partner-built/aether/CONNECTORS.md +++ b/plugins/partner-built/aether/CONNECTORS.md @@ -1,15 +1,14 @@ # Connectors This plugin connects to a single MCP server, **Aether** (`@evidinvest/aether-mcp`), which -proxies to `https://api.aether.evidinvest.com`. No additional connectors are required. The -server advertises **11 tools** in three families. Commands reference tools by their exact -names below. +proxies to `https://api.aether.evidinvest.com`. No additional connectors are required. +Commands reference tools by their exact names below. ## Tool Categories | Category | Tools | Description | |----------|-------|-------------| -| Search | `financial_search`, `transcript_search`, `regulation_search` | First-party retrieval over SEC filings, earnings transcripts, and EU regulation | +| Search | `financial_search`, `regulation_search` | First-party retrieval over SEC filings and EU regulation | | Marketplace — read | `list_partners`, `partner_search`, `partner_proxy_search` | Discover and query third-party seller data | | Marketplace — sell | `seller_signup`, `seller_publish_document`, `seller_register_endpoint`, `seller_list_my_documents`, `seller_list_my_endpoints` | Publish documents or register paid endpoints as a seller | @@ -29,20 +28,6 @@ filing URLs, and tickers. | `profile` | enum | `bm25` \| `hybrid` \| `hybrid_rerank` \| `hybrid_rerank_tickerprior` (default — the production winner: hybrid + cross-encoder rerank + ticker-prior). | | `return_format` | enum | `section` (default — full SEC section the match belongs to) \| `chunk` (matching window only) \| `both`. | -### `transcript_search` -Hybrid retrieval over earnings-call transcripts (CEO/CFO commentary + analyst Q&A). Returns -ranked verbatim speaker turns with citations. Use for forward-looking color (guidance, -narrative) that filings don't capture. - -| Param | Type | Notes | -|-------|------|-------| -| `query` | string | **Required.** | -| `ticker` | string | Optional ticker filter (e.g. `NVDA`). | -| `lookback_quarters` | number | Keep calls within the last N quarters (default: no filter). | -| `speaker_role` | string | Optional: `CEO` \| `CFO` \| `Analyst` \| `Operator`. | -| `limit` | number | Default 10, max 50. | -| `profile` | enum | `bm25` \| `hybrid` (default). | - ### `regulation_search` Search a 29-act EU financial-regulation corpus (~13,000 citable chunks). Returns ranked, citable units — Article-paragraphs, recitals, annex blocks — each with a human breadcrumb diff --git a/plugins/partner-built/aether/README.md b/plugins/partner-built/aether/README.md index 4b23e97a9..b5c86e95e 100644 --- a/plugins/partner-built/aether/README.md +++ b/plugins/partner-built/aether/README.md @@ -1,8 +1,8 @@ # Aether — Agent-Native Financial Search -Search SEC filings, earnings-call transcripts, and EU financial regulation in natural -language, and get back **as-filed, citable** text — never analyst-adjusted. Aether is a -financial-vertical search engine purpose-built for agents, exposed over MCP. +Search SEC filings and EU financial regulation in natural language, and get back +**as-filed, citable** text — never analyst-adjusted. Aether is a financial-vertical +search engine purpose-built for agents, exposed over MCP. ## What This Plugin Does @@ -14,8 +14,6 @@ at a time. The corpus today: - **SEC filings** — 10-K / 10-Q / 8-K for the S&P 500 across ~10 years, ~1.4M retrieval chunks. -- **Earnings-call transcripts** — CEO / CFO commentary and analyst Q&A, for forward-looking - color that filings don't capture. - **EU financial regulation** — a 29-act corpus (~13,000 citable units) spanning MiFID II, MiFIR, MAR, EMIR, MiCA, DORA, CRR/CRD IV, UCITS/AIFMD, PSD2, Solvency II, SFDR/Taxonomy/CSRD, the 2024 AML package, and more. @@ -27,7 +25,6 @@ The corpus today: | Command | Description | |---------|-------------| | `/sec-deep-dive` | Pull the most relevant 10-K/10-Q/8-K sections on a topic for a company, with as-filed quotes and filing citations | -| `/earnings-color` | Surface CEO/CFO/analyst commentary on a topic from earnings-call transcripts, quoted verbatim with speaker + date | | `/regulation-lookup` | Find the controlling EU-regulation text for a question, returned as citable Article-paragraphs / recitals | | `/supply-chain-exposure` | Find public companies disclosing exposure to a supply-chain risk, grouped by ticker | @@ -36,7 +33,6 @@ The corpus today: | Skill | Domain Knowledge | |-------|-----------------| | `sec-filings-research` | Retrieval profiles, `section` vs `chunk` returns, as-filed discipline, citation hygiene | -| `earnings-transcript-research` | Speaker-role and lookback filtering, separating guidance from reported results | | `eu-regulation-research` | CELEX map, consolidated vs OJ text, doc-type/article/AML-topic filters, citation breadcrumbs | ## Integrations @@ -44,7 +40,7 @@ The corpus today: This plugin connects to the **Aether MCP Server**, which serves these tool families: - **Search** — `financial_search` (SEC filings + supply-chain relationships), - `transcript_search` (earnings calls), `regulation_search` (EU financial regulation). + `regulation_search` (EU financial regulation). - **Marketplace (read)** — `list_partners`, `partner_search` (indexed seller documents), `partner_proxy_search` (paid server-to-server seller queries). - **Marketplace (sell)** — `seller_signup`, `seller_publish_document`, @@ -75,5 +71,5 @@ and run via `npx` (see [`.mcp.json`](.mcp.json)). Authentication options: the section, filing URL, and ticker attached — not a vendor's normalized model. - **First agent-native financial search.** Built for tool-calling agents, not a human UI bolted onto an API. -- **One server, three corpora.** US disclosure, earnings narrative, and EU regulation behind a - single MCP connector, plus an open marketplace for third-party data. +- **One server, multiple corpora.** US disclosure and EU regulation behind a single MCP + connector, plus an open marketplace for third-party data. diff --git a/plugins/partner-built/aether/commands/earnings-color.md b/plugins/partner-built/aether/commands/earnings-color.md deleted file mode 100644 index c83f1a75b..000000000 --- a/plugins/partner-built/aether/commands/earnings-color.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -description: Surface CEO/CFO/analyst commentary on a topic from earnings-call transcripts, quoted verbatim with speaker and date -argument-hint: " [ticker e.g. NVDA] [lookback quarters e.g. 4]" ---- - -# Earnings Color - -> Uses the Aether `transcript_search` tool. See [CONNECTORS.md](../CONNECTORS.md) for parameters. - -Pull forward-looking commentary — guidance, narrative, tone — from earnings-call transcripts -that 10-K/10-Q filings don't capture. See the **earnings-transcript-research** skill for guidance -on separating reported results from outlook. - -## Workflow - -### 1. Gather Input -- Topic / question (required). -- Optional: ticker, lookback window (quarters), speaker role of interest (CEO / CFO / Analyst). - -### 2. Search -Call `transcript_search` with: -- `query`: the topic phrased naturally. -- `ticker`: if the user named a company. -- `lookback_quarters`: if the user wants recent calls only (e.g. 4). -- `speaker_role`: if they want only management (`CEO`/`CFO`) or only `Analyst` questions. -- `limit`: 10. - -### 3. Synthesize -- Quote speaker turns **verbatim**. -- Attribute each: ticker, speaker name + role, and call date. -- Distinguish management assertions from analyst questions; flag hedged or conditional language. - -## Output Format - -Lead with a 1-2 sentence read on management's stance, then: - -| Quote | Speaker (role) | Ticker | Call date | -|-------|----------------|--------|-----------| -| "…" | … (CEO) | … | … | - -Close by noting where commentary is consistent vs shifting across quarters, and any topics -management notably avoided. diff --git a/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md b/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md deleted file mode 100644 index 410524ec6..000000000 --- a/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -name: earnings-transcript-research -description: Search earnings-call transcripts with Aether's transcript_search tool for forward-looking management commentary and analyst Q&A. Use when you need guidance, narrative, tone, or color that 10-K/10-Q filings don't capture, quoted verbatim with speaker and call date. ---- - -# Earnings Transcript Research with Aether - -You are an analyst mining earnings calls for what management *said* — guidance, framing, tone, -and the questions analysts pressed on. This is the forward-looking layer that audited filings -omit. Aether's `transcript_search` tool returns ranked verbatim speaker turns with citations. - -## Core Principle: Quote the Speaker, Date the Claim - -Management commentary is only useful if it's attributed and time-stamped. Quote speaker turns -verbatim, label the speaker and role, and stamp the call date. Distinguish a CEO assertion from -an analyst's premise — they carry very different weight. - -## The `transcript_search` Tool - -| Param | Guidance | -|-------|----------| -| `query` | Natural language; topic-first ("data-center demand durability"). | -| `ticker` | Scope to a company (e.g. `NVDA`) when the question is single-name. | -| `lookback_quarters` | Restrict to recent calls (e.g. 4) when recency matters; omit for full history. | -| `speaker_role` | `CEO` / `CFO` for management view; `Analyst` to see what the sell-side is probing; `Operator` rarely useful. | -| `limit` | 10 default; raise for cross-company theme sweeps. | -| `profile` | `hybrid` (default) for topical questions; `bm25` for exact-phrase. | - -## Workflow - -1. **Frame** — guidance vs. reported results vs. analyst concern? Choose `speaker_role` accordingly. -2. **Scope time** — set `lookback_quarters` if the user cares about the latest stance, not history. -3. **Retrieve** — call `transcript_search`. -4. **Separate signal** — split management claims from analyst questions; flag hedged/conditional - language ("we expect", "should", "if conditions hold"). -5. **Cite** — speaker name + role + ticker + call date for every quote. - -## Anti-Patterns - -- Presenting an analyst's framing as management's view. -- Dropping the call date — outlook commentary ages fast. -- Smoothing hedged language into a hard commitment. -- Mixing transcript color with as-filed numbers without labeling which is which (use the - `sec-filings-research` skill for the filed figures). From 7864a67b2ccf5e6b12c795d357a3a58be70c39b1 Mon Sep 17 00:00:00 2001 From: alberthaoh Date: Wed, 27 May 2026 08:23:19 +0000 Subject: [PATCH 3/4] Revert "aether: drop transcript_search surface until the corpus exists" This reverts commit 6823fd770ee088c22835b01cf18395378f57a0a0. --- .claude-plugin/marketplace.json | 2 +- .../aether/.claude-plugin/plugin.json | 3 +- plugins/partner-built/aether/CONNECTORS.md | 21 +++++++-- plugins/partner-built/aether/README.md | 16 ++++--- .../aether/commands/earnings-color.md | 42 ++++++++++++++++++ .../earnings-transcript-research/SKILL.md | 44 +++++++++++++++++++ 6 files changed, 117 insertions(+), 11 deletions(-) create mode 100644 plugins/partner-built/aether/commands/earnings-color.md create mode 100644 plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 84a88df2f..c08859d49 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -122,7 +122,7 @@ "name": "aether", "displayName": "Aether", "source": "./plugins/partner-built/aether", - "description": "Agent-native search over SEC filings (10-K/10-Q/8-K) and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted, plus a third-party data marketplace." + "description": "Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted, plus a third-party data marketplace." }, { "name": "claude-for-msft-365-install", diff --git a/plugins/partner-built/aether/.claude-plugin/plugin.json b/plugins/partner-built/aether/.claude-plugin/plugin.json index a0b4fbef8..bb69f2b27 100644 --- a/plugins/partner-built/aether/.claude-plugin/plugin.json +++ b/plugins/partner-built/aether/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "name": "aether", "displayName": "Aether", "version": "0.1.0", - "description": "Agent-native search over SEC filings (10-K/10-Q/8-K) and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted. Includes a two-sided data marketplace for third-party research.", + "description": "Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted. Includes a two-sided data marketplace for third-party research.", "author": { "name": "EvidInvest (Aether)", "email": "hao.huang@ebdsweden.com" @@ -15,6 +15,7 @@ "edgar", "filings", "10-K", + "earnings-transcripts", "eu-regulation", "mifid", "mica", diff --git a/plugins/partner-built/aether/CONNECTORS.md b/plugins/partner-built/aether/CONNECTORS.md index 4544a377c..ccfedec54 100644 --- a/plugins/partner-built/aether/CONNECTORS.md +++ b/plugins/partner-built/aether/CONNECTORS.md @@ -1,14 +1,15 @@ # Connectors This plugin connects to a single MCP server, **Aether** (`@evidinvest/aether-mcp`), which -proxies to `https://api.aether.evidinvest.com`. No additional connectors are required. -Commands reference tools by their exact names below. +proxies to `https://api.aether.evidinvest.com`. No additional connectors are required. The +server advertises **11 tools** in three families. Commands reference tools by their exact +names below. ## Tool Categories | Category | Tools | Description | |----------|-------|-------------| -| Search | `financial_search`, `regulation_search` | First-party retrieval over SEC filings and EU regulation | +| Search | `financial_search`, `transcript_search`, `regulation_search` | First-party retrieval over SEC filings, earnings transcripts, and EU regulation | | Marketplace — read | `list_partners`, `partner_search`, `partner_proxy_search` | Discover and query third-party seller data | | Marketplace — sell | `seller_signup`, `seller_publish_document`, `seller_register_endpoint`, `seller_list_my_documents`, `seller_list_my_endpoints` | Publish documents or register paid endpoints as a seller | @@ -28,6 +29,20 @@ filing URLs, and tickers. | `profile` | enum | `bm25` \| `hybrid` \| `hybrid_rerank` \| `hybrid_rerank_tickerprior` (default — the production winner: hybrid + cross-encoder rerank + ticker-prior). | | `return_format` | enum | `section` (default — full SEC section the match belongs to) \| `chunk` (matching window only) \| `both`. | +### `transcript_search` +Hybrid retrieval over earnings-call transcripts (CEO/CFO commentary + analyst Q&A). Returns +ranked verbatim speaker turns with citations. Use for forward-looking color (guidance, +narrative) that filings don't capture. + +| Param | Type | Notes | +|-------|------|-------| +| `query` | string | **Required.** | +| `ticker` | string | Optional ticker filter (e.g. `NVDA`). | +| `lookback_quarters` | number | Keep calls within the last N quarters (default: no filter). | +| `speaker_role` | string | Optional: `CEO` \| `CFO` \| `Analyst` \| `Operator`. | +| `limit` | number | Default 10, max 50. | +| `profile` | enum | `bm25` \| `hybrid` (default). | + ### `regulation_search` Search a 29-act EU financial-regulation corpus (~13,000 citable chunks). Returns ranked, citable units — Article-paragraphs, recitals, annex blocks — each with a human breadcrumb diff --git a/plugins/partner-built/aether/README.md b/plugins/partner-built/aether/README.md index b5c86e95e..4b23e97a9 100644 --- a/plugins/partner-built/aether/README.md +++ b/plugins/partner-built/aether/README.md @@ -1,8 +1,8 @@ # Aether — Agent-Native Financial Search -Search SEC filings and EU financial regulation in natural language, and get back -**as-filed, citable** text — never analyst-adjusted. Aether is a financial-vertical -search engine purpose-built for agents, exposed over MCP. +Search SEC filings, earnings-call transcripts, and EU financial regulation in natural +language, and get back **as-filed, citable** text — never analyst-adjusted. Aether is a +financial-vertical search engine purpose-built for agents, exposed over MCP. ## What This Plugin Does @@ -14,6 +14,8 @@ at a time. The corpus today: - **SEC filings** — 10-K / 10-Q / 8-K for the S&P 500 across ~10 years, ~1.4M retrieval chunks. +- **Earnings-call transcripts** — CEO / CFO commentary and analyst Q&A, for forward-looking + color that filings don't capture. - **EU financial regulation** — a 29-act corpus (~13,000 citable units) spanning MiFID II, MiFIR, MAR, EMIR, MiCA, DORA, CRR/CRD IV, UCITS/AIFMD, PSD2, Solvency II, SFDR/Taxonomy/CSRD, the 2024 AML package, and more. @@ -25,6 +27,7 @@ The corpus today: | Command | Description | |---------|-------------| | `/sec-deep-dive` | Pull the most relevant 10-K/10-Q/8-K sections on a topic for a company, with as-filed quotes and filing citations | +| `/earnings-color` | Surface CEO/CFO/analyst commentary on a topic from earnings-call transcripts, quoted verbatim with speaker + date | | `/regulation-lookup` | Find the controlling EU-regulation text for a question, returned as citable Article-paragraphs / recitals | | `/supply-chain-exposure` | Find public companies disclosing exposure to a supply-chain risk, grouped by ticker | @@ -33,6 +36,7 @@ The corpus today: | Skill | Domain Knowledge | |-------|-----------------| | `sec-filings-research` | Retrieval profiles, `section` vs `chunk` returns, as-filed discipline, citation hygiene | +| `earnings-transcript-research` | Speaker-role and lookback filtering, separating guidance from reported results | | `eu-regulation-research` | CELEX map, consolidated vs OJ text, doc-type/article/AML-topic filters, citation breadcrumbs | ## Integrations @@ -40,7 +44,7 @@ The corpus today: This plugin connects to the **Aether MCP Server**, which serves these tool families: - **Search** — `financial_search` (SEC filings + supply-chain relationships), - `regulation_search` (EU financial regulation). + `transcript_search` (earnings calls), `regulation_search` (EU financial regulation). - **Marketplace (read)** — `list_partners`, `partner_search` (indexed seller documents), `partner_proxy_search` (paid server-to-server seller queries). - **Marketplace (sell)** — `seller_signup`, `seller_publish_document`, @@ -71,5 +75,5 @@ and run via `npx` (see [`.mcp.json`](.mcp.json)). Authentication options: the section, filing URL, and ticker attached — not a vendor's normalized model. - **First agent-native financial search.** Built for tool-calling agents, not a human UI bolted onto an API. -- **One server, multiple corpora.** US disclosure and EU regulation behind a single MCP - connector, plus an open marketplace for third-party data. +- **One server, three corpora.** US disclosure, earnings narrative, and EU regulation behind a + single MCP connector, plus an open marketplace for third-party data. diff --git a/plugins/partner-built/aether/commands/earnings-color.md b/plugins/partner-built/aether/commands/earnings-color.md new file mode 100644 index 000000000..c83f1a75b --- /dev/null +++ b/plugins/partner-built/aether/commands/earnings-color.md @@ -0,0 +1,42 @@ +--- +description: Surface CEO/CFO/analyst commentary on a topic from earnings-call transcripts, quoted verbatim with speaker and date +argument-hint: " [ticker e.g. NVDA] [lookback quarters e.g. 4]" +--- + +# Earnings Color + +> Uses the Aether `transcript_search` tool. See [CONNECTORS.md](../CONNECTORS.md) for parameters. + +Pull forward-looking commentary — guidance, narrative, tone — from earnings-call transcripts +that 10-K/10-Q filings don't capture. See the **earnings-transcript-research** skill for guidance +on separating reported results from outlook. + +## Workflow + +### 1. Gather Input +- Topic / question (required). +- Optional: ticker, lookback window (quarters), speaker role of interest (CEO / CFO / Analyst). + +### 2. Search +Call `transcript_search` with: +- `query`: the topic phrased naturally. +- `ticker`: if the user named a company. +- `lookback_quarters`: if the user wants recent calls only (e.g. 4). +- `speaker_role`: if they want only management (`CEO`/`CFO`) or only `Analyst` questions. +- `limit`: 10. + +### 3. Synthesize +- Quote speaker turns **verbatim**. +- Attribute each: ticker, speaker name + role, and call date. +- Distinguish management assertions from analyst questions; flag hedged or conditional language. + +## Output Format + +Lead with a 1-2 sentence read on management's stance, then: + +| Quote | Speaker (role) | Ticker | Call date | +|-------|----------------|--------|-----------| +| "…" | … (CEO) | … | … | + +Close by noting where commentary is consistent vs shifting across quarters, and any topics +management notably avoided. diff --git a/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md b/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md new file mode 100644 index 000000000..410524ec6 --- /dev/null +++ b/plugins/partner-built/aether/skills/earnings-transcript-research/SKILL.md @@ -0,0 +1,44 @@ +--- +name: earnings-transcript-research +description: Search earnings-call transcripts with Aether's transcript_search tool for forward-looking management commentary and analyst Q&A. Use when you need guidance, narrative, tone, or color that 10-K/10-Q filings don't capture, quoted verbatim with speaker and call date. +--- + +# Earnings Transcript Research with Aether + +You are an analyst mining earnings calls for what management *said* — guidance, framing, tone, +and the questions analysts pressed on. This is the forward-looking layer that audited filings +omit. Aether's `transcript_search` tool returns ranked verbatim speaker turns with citations. + +## Core Principle: Quote the Speaker, Date the Claim + +Management commentary is only useful if it's attributed and time-stamped. Quote speaker turns +verbatim, label the speaker and role, and stamp the call date. Distinguish a CEO assertion from +an analyst's premise — they carry very different weight. + +## The `transcript_search` Tool + +| Param | Guidance | +|-------|----------| +| `query` | Natural language; topic-first ("data-center demand durability"). | +| `ticker` | Scope to a company (e.g. `NVDA`) when the question is single-name. | +| `lookback_quarters` | Restrict to recent calls (e.g. 4) when recency matters; omit for full history. | +| `speaker_role` | `CEO` / `CFO` for management view; `Analyst` to see what the sell-side is probing; `Operator` rarely useful. | +| `limit` | 10 default; raise for cross-company theme sweeps. | +| `profile` | `hybrid` (default) for topical questions; `bm25` for exact-phrase. | + +## Workflow + +1. **Frame** — guidance vs. reported results vs. analyst concern? Choose `speaker_role` accordingly. +2. **Scope time** — set `lookback_quarters` if the user cares about the latest stance, not history. +3. **Retrieve** — call `transcript_search`. +4. **Separate signal** — split management claims from analyst questions; flag hedged/conditional + language ("we expect", "should", "if conditions hold"). +5. **Cite** — speaker name + role + ticker + call date for every quote. + +## Anti-Patterns + +- Presenting an analyst's framing as management's view. +- Dropping the call date — outlook commentary ages fast. +- Smoothing hedged language into a hard commitment. +- Mixing transcript color with as-filed numbers without labeling which is which (use the + `sec-filings-research` skill for the filed figures). From 4e239c284fd5a495458ef7f02494785a17e84a37 Mon Sep 17 00:00:00 2001 From: alberthaoh Date: Wed, 27 May 2026 09:39:58 +0000 Subject: [PATCH 4/4] aether: switch connector to hosted Streamable-HTTP /mcp The hosted MCP endpoint (https://api.aether.evidinvest.com/mcp) now enforces auth/quota like the REST surface, so point the plugin at it via type:http instead of the stdio npx wrapper. This works in both Cowork (which can't spawn local stdio servers) and Claude Code. Auth is OAuth device-code on connect, or anonymous (5/hr). Bump 0.1.0 -> 0.1.1. Co-Authored-By: Claude Opus 4.7 --- .../aether/.claude-plugin/plugin.json | 2 +- plugins/partner-built/aether/.mcp.json | 7 ++----- plugins/partner-built/aether/README.md | 15 +++++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/plugins/partner-built/aether/.claude-plugin/plugin.json b/plugins/partner-built/aether/.claude-plugin/plugin.json index bb69f2b27..2cf68a0ab 100644 --- a/plugins/partner-built/aether/.claude-plugin/plugin.json +++ b/plugins/partner-built/aether/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "aether", "displayName": "Aether", - "version": "0.1.0", + "version": "0.1.1", "description": "Agent-native search over SEC filings (10-K/10-Q/8-K), earnings-call transcripts, and a 29-act EU financial-regulation corpus — as-filed and citable, never analyst-adjusted. Includes a two-sided data marketplace for third-party research.", "author": { "name": "EvidInvest (Aether)", diff --git a/plugins/partner-built/aether/.mcp.json b/plugins/partner-built/aether/.mcp.json index 9f8063fa6..29ed83d82 100644 --- a/plugins/partner-built/aether/.mcp.json +++ b/plugins/partner-built/aether/.mcp.json @@ -1,11 +1,8 @@ { "mcpServers": { "aether": { - "command": "npx", - "args": ["-y", "@evidinvest/aether-mcp@latest"], - "env": { - "AETHER_API_KEY": "${AETHER_API_KEY}" - } + "type": "http", + "url": "https://api.aether.evidinvest.com/mcp" } } } diff --git a/plugins/partner-built/aether/README.md b/plugins/partner-built/aether/README.md index 4b23e97a9..102a3aec2 100644 --- a/plugins/partner-built/aether/README.md +++ b/plugins/partner-built/aether/README.md @@ -60,14 +60,17 @@ claude plugins add aether ## Requirements & Authentication -The MCP server is distributed on npm as [`@evidinvest/aether-mcp`](https://www.npmjs.com/package/@evidinvest/aether-mcp) -and run via `npx` (see [`.mcp.json`](.mcp.json)). Authentication options: +This is a **remote MCP server** over Streamable HTTP at +`https://api.aether.evidinvest.com/mcp` (see [`.mcp.json`](.mcp.json)) — works in both +Claude Cowork and Claude Code, nothing to install. Authentication: -- **API key** — set `AETHER_API_KEY` (get one at ). +- **OAuth device code** — on first connect the client walks you through sign-in at + ; the token is cached and refreshed automatically. Verified accounts include a **3-month free trial** (5,000 calls/hr on Aether's first-party tools). -- **OAuth device code** — omit the key and the server prints a sign-in URL on first run; the - token is cached and refreshed automatically. -- **Anonymous** — set `AETHER_NO_AUTH=1` to call without an account (rate-limited). +- **Anonymous** — connect without signing in to try it out, rate-limited to 5 calls/hour. + +A self-hosted / stdio option (`npx @evidinvest/aether-mcp` with `AETHER_API_KEY`) is also +available — see the [aether-developer repo](https://github.com/EvidInvest/aether-developer). ## Why Aether