Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
25 changes: 25 additions & 0 deletions plugins/partner-built/aether/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "aether",
"displayName": "Aether",
"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)",
"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"
]
}
8 changes: 8 additions & 0 deletions plugins/partner-built/aether/.mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"mcpServers": {
"aether": {
"type": "http",
"url": "https://api.aether.evidinvest.com/mcp"
}
}
}
95 changes: 95 additions & 0 deletions plugins/partner-built/aether/CONNECTORS.md
Original file line number Diff line number Diff line change
@@ -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.
82 changes: 82 additions & 0 deletions plugins/partner-built/aether/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# 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

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:

- **OAuth device code** — on first connect the client walks you through sign-in at
<https://aether.evidinvest.com>; 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).
- **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

- **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.
42 changes: 42 additions & 0 deletions plugins/partner-built/aether/commands/earnings-color.md
Original file line number Diff line number Diff line change
@@ -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: "<topic> [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.
44 changes: 44 additions & 0 deletions plugins/partner-built/aether/commands/regulation-lookup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
description: Find the controlling EU-regulation text for a question, returned as citable Article-paragraphs and recitals
argument-hint: "<question> [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.
45 changes: 45 additions & 0 deletions plugins/partner-built/aether/commands/sec-deep-dive.md
Original file line number Diff line number Diff line change
@@ -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: "<ticker e.g. AAPL> <topic e.g. supply-chain risk in Taiwan>"
---

# 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.
38 changes: 38 additions & 0 deletions plugins/partner-built/aether/commands/supply-chain-exposure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
description: Find public companies disclosing exposure to a supply-chain risk, grouped by ticker
argument-hint: "<risk e.g. rare-earth magnets from China>"
---

# 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).
Loading