Aether Developer

io.github.EvidInvest由 GitHub 账号 EvidInvest 发布v0.3.4更新于 Oct 24, 2026

Cited search over SEC filings, earnings transcripts and EU regulation, with fetch mode. 14 tools.

已验证Streamable HTTP可网页运行网页搜索与抓取金融商业与电商

概览

AI 生成的概览

对 SEC 文件、财报电话会议记录和欧盟金融监管文本提供带引用的检索,并附带研究文档与付费 API 查询的合作方市场。

可以做什么
  • 检索 SEC 文件、非美国年报、财报电话会议记录和欧盟监管文本,结果带完整引用,并可用 fetch 模式按文件顺序取回章节
  • 按 SEC 13F 查询某只股票的机构持有人或某基金持仓,含环比变动
  • 浏览市场合作方并检索其已发布文档,附逐文档署名与许可条款
  • 把查询转发到合作方 API,会消耗预付额度
  • 管理卖家账户:注册、发布文档、注册代理端点,并列出自己的文档与端点
适用场景
适合需要助手以可引用、可链接的来源回答金融与监管问题,而不是凭记忆给出数字的场景,例如引用 10-K 风险因素、财报电话会上 CFO 的原话或 MiCA 条款。若想通过 Aether 市场出售研究文档或 API,也可使用。
运行要求
远程 MCP 端点(OAuth 登录),或通过 npx 运行 npm 包 @evidinvest/aether-mcp 供 stdio 客户端使用。可选提供 AETHER_API_KEY(ak_…);未设置时该包首次运行会走 OAuth 2.0 设备流程。Authorization 头使用 bearer 密钥。允许匿名调用,每小时 5 次。需要网络访问。
安装前请注意
Authorization 头携带密钥,seller_signup 返回的 API 密钥只显示一次。partner_proxy_search 每次调用都会消耗预付 Aether 额度,与结果数量无关;seller_register_endpoint 会保存你端点的认证密钥并设定每次调用价格。卖家工具会创建账户、发布或替换文档、注册转发流量的端点。查询与文档会发送到 Aether 服务器,代理模式下还会发往合作方端点。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Aether Developer,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.EvidInvest%2Faether-developer/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "aether-developer": {
      "type": "http",
      "url": "https://aether.evidinvest.com/mcp"
    }
  }
}

README

aether-developer

Everything you need to connect Aether — the search engine built for agents, over SEC filings, earnings-call transcripts, and EU financial regulation — to your LLM, your IDE, or your own code.

Every result is a ready-to-cite evidence payload: the exact filed passage, an accession-numbered citation, the sec.gov / EUR-Lex link, and a confidence score. No filing, no answer — your agent stops inventing numbers.

aether-developer/├── docs/                — connection guides + REST API reference│   ├── chatgpt.md       — ChatGPT Developer Mode setup│   ├── mcp.md           — Claude / Cursor / Cline / any MCP client│   ├── cursor.md        — Cursor specifics (one-click install)│   └── search.md        — REST API reference (/v1/tools/*), the issuer contract, fetch mode├── skills/              — Agent Skills (drop into ~/.claude/skills)├── mcp/                 — @evidinvest/aether-mcp (stdio MCP server, npm)├── clients/│   ├── typescript/      — @evidinvest/aether-sdk (npm)│   └── python/          — evidinvest-aether-sdk (PyPI)└── examples/            — runnable demos + config snippets

Connect your LLM (no code)

MCP endpoint: https://api.aether.evidinvest.com/mcp · Auth: OAuth (sign in when your client prompts — free account).

ClientHowGuide
ChatGPTSettings → Apps & Connectors → Developer mode → Create connector with the URL abovedocs/chatgpt.md
Claude (web/Desktop)Settings → Connectors → Add custom connector with the URL abovedocs/mcp.md
Claude Codeclaude mcp add --transport http aether https://api.aether.evidinvest.com/mcpdocs/mcp.md
Cursor[Add to Cursor]docs/cursor.md
Cline / Continue / other stdio MCPnpx -y @evidinvest/aether-mcp in the client's MCP configdocs/mcp.md

Then ask: "What does Apple's latest 10-K say about supply-chain risk? Quote the passage with the sec.gov link." Name the company in the question — every tool takes an issuer, and naming it is what makes the answer scoped rather than a relevance-ranked sweep of every filer.

Teach your agent the craft (skills)

MCP gives the agent the tools; the skills/ directory teaches it the craft — tool routing, citation discipline, point-in-time transcript retrieval:

bash
cp -r skills/aether-research ~/.claude/skills/   # Claude Code, personal

See skills/README.md for Claude Desktop / other frameworks.

Call the API from code

Four REST endpoints — the same tools MCP exposes (full reference):

POST /v1/tools/search   ← start here (unified)POST /v1/tools/financial_search    POST /v1/tools/transcript_search    POST /v1/tools/regulation_search

Name the company, then narrow. Pass issuer on every call and the answer is scoped to that filer: fast and precise. Omit it and the call searches every issuer at once — slower, relevance-ranked only, and the response carries a quality_caveat. scope: "issuer" with no caveat is the only guarantee you got a filtered answer, so read both fields.

And query is optional: omit it, pass an identifier plus form_type / fiscal_year / section, and you get fetch mode — that filing's sections in filing order, no ranking, mode: "fetch", tens of milliseconds. If you already know which document you want, don't rank it.

TypeScript / Node

bash
pnpm add @evidinvest/aether-sdk
ts
import { AetherClient } from "@evidinvest/aether-sdk";
const aether = new AetherClient({ apiKey: process.env.AETHER_API_KEY });
// search: the question in `query`, the company in `issuer`const out = await aether.financialSearch({  query: "supply-chain concentration risk",  issuer: { ticker: "AAPL" },  fiscal_year: 2025,  limit: 5,});if (out.quality_caveat) console.warn(out.scope, out.quality_caveat);for (const c of out.results) {  const start = c.metadata?.retrieval?.body_offset ?? 0; // skip the EDGAR cover page  console.log(c.citation, c.metadata?.source_url, c.text.slice(start, start + 200));}
// fetch: no query — Apple's latest 10-K risk factors, in filing orderconst risks = await aether.financialSearch({  issuer: { ticker: "AAPL" },  form_type: ["10-K"],  section: "Item 1A",  limit: 5,});console.log(risks.mode); // "fetch" — and no `confidence` on any hit

Python

bash
pip install evidinvest-aether-sdk
python
from aether import AetherClient
with AetherClient(api_key="ak_...") as aether:    out = aether.financial_search(        query="supply-chain concentration risk",        issuer={"ticker": "AAPL"},        fiscal_year=2025,        limit=5,    )    if out.quality_caveat:        print(out.scope, out.quality_caveat)    for c in out.results:        start = c.body_offset or 0          # skip the EDGAR cover page        print(c.citation, c.metadata.get("source_url"), c.text[start : start + 200])
    # fetch: no query — Apple's latest 10-K risk factors, in filing order    risks = aether.financial_search(        issuer={"ticker": "AAPL"}, form_type=["10-K"], section="Item 1A", limit=5    )    print(risks.mode)   # "fetch" — and `confidence` is None on every hit

curl / any language

bash
curl -sS https://api.aether.evidinvest.com/v1/tools/search \  -H "authorization: Bearer $AETHER_API_KEY" \  -H "content-type: application/json" \  -d '{"query":"supply chain risk Taiwan","issuer":{"ticker":"TSM"},"limit":5}' | jq .

Docs

Get an API key

https://aether.evidinvest.com/developer/keys — anonymous calls work but are rate-limited; keys are free.

What's in the corpus

  • SEC filings — 10-K / 10-Q / 8-K, registration statements, prospectuses, press exhibits; ~10 years of S&P 500 and beyond.
  • Non-US registries — Sweden (Bolagsverket), Japan (EDINET), Korea (DART) annual reports. Reach a non-US filer by name — issuer: {company_name: "Sivers Semiconductors"} — or scope a whole market with jurisdiction: ["SE"|"JP"|"KR"].
  • Earnings calls — speaker-attributed transcripts + furnished press exhibits, with point-in-time filters (order: "earliest" finds first mentions) and the issuer's own fiscal_year + quarter.
  • EU regulation — MiFID II, MiCA, DORA, the AML package; article-level citations.

3 months free. Verify your email when you sign up and you're on the trial tier automatically — up to 5,000 API calls/hour on Aether's search tools, free for 3 months. No card required; it reverts to the free tier (100 calls/hour + paid credits) when the trial ends.

Contribute a client library

The TypeScript and Python clients are intentionally tiny — one bearer-token fetch wrapper + typed shapes for the /v1/tools/* endpoints. Porting to Go, Rust, Java, etc. is ~150 lines. Open a PR under clients/<lang>/. Whatever you write, surface scope, quality_caveat, mode and each hit's body_offset: a client that drops them leaves its users unable to tell a precise answer from an approximate one. Response fixtures to test against live in clients/fixtures/.

License

Apache-2.0 — see LICENSE.

来源:README.md,提交 d1ee068

工具

14

holdings_by_security

Institutional holders of a stock (13F)

Who owns a stock: institutional holders of a security from SEC Form 13F, ranked by position value, with quarter-over-quarter share changes. Answers 'who are the largest holders of NVDA', 'which funds added or trimmed this quarter', 'did anyone initiate a new position'. Give a ticker (resolved via CUSIP) or a CUSIP directly. Each holder row carries its accession number and an EDGAR source_url so the figure is verifiable against the primary filing. Coverage: quarter ends from 2024-12-31 through 2026-06-30, all ~10,000 filing managers, not just large ones; the newest quarter is still filling in as filers submit, so its holder_count is lower than a settled quarter's. Positions are aggregated per filer CIK — a single 13F contains one line per sub-manager (BlackRock's carries 42 separate NVDA lines), so per-line reading understates holders badly. One book per filer: the original 13F-HR, or the 13F-HR/A RESTATEMENT that replaced it (add-on amendments are excluded); values are USD even where the filer reported in thousands. Note total_value_usd is the sum across filers and may double-count where combination reports include other managers' holdings; coverage_caveat flags this when relevant. 13F covers US-listed long equity and options only — it does not show shorts, cash, bonds, or non-US listings, and is filed 45 days after quarter end.

输入参数cusiplimitissuerperiodticker

holdings_by_manager

A fund's reported equity book (13F)

What a fund owns: an institutional manager's reported equity book from SEC Form 13F — top positions by value, with quarter-over-quarter share changes and new/increased/decreased flags. Answers 'what does Bridgewater hold', 'what did this fund buy last quarter', 'show me their largest positions'. Look up by manager name (partial match; the largest matching filer wins, since names like 'Vanguard' map to several distinct CIKs) or by exact CIK. Also returns the filer's published contact details — signatory, title, phone, and business address from the filing's cover page and signature block, each citable to the accession number. EDGAR publishes no email address for 13F filers, so none is returned and none should be inferred. Coverage: quarter ends from 2024-12-31 through 2026-06-30; the newest quarter is still filling in as filers submit, and a manager who has not filed it yet falls back to their most recent quarter, named in coverage_caveat. 13F covers US-listed long equity and options only — no shorts, cash, bonds or non-US listings — and is filed 45 days after quarter end, so it is a lagged snapshot, not a live portfolio.

输入参数ciklimitissuerperiodmanager

list_partners

List data partners

List active marketplace partners (sellers) and what each offers. Each partner has zero or more 'modes': `indexed` (free queries via partner_search against published documents) and/or `proxy` (queries routed server-to-server to the seller's own API via partner_proxy_search, consuming prepaid Aether credits per call). Use the returned per-call credit costs to budget calls before invoking partner_proxy_search.

输入参数modelimitticker

seller_signup

Register as a data seller

Create a new marketplace seller account. Returns an API key (shown once). New accounts default to status='pending_review' — they can publish documents and register endpoints, but content is not surfaced in search until ops approves the account. Use the `invite_code` arg if the operator gave you one to bypass review.

输入参数slug必填org_name必填descriptioninvite_codecontact_email必填

seller_publish_document

Publish a seller document

Publish (or update) a document into the marketplace. The content is chunked + embedded + indexed by a background worker; status moves from `pending` to `indexed` once that completes. Re-publishing the same external_doc_id replaces the prior version. Account must be status='active' for the worker to index; pending_review accounts queue indefinitely.

输入参数titlecontent必填licensedoc_typemetadatasource_urlseller_api_key必填external_doc_id必填ticker_coverage

seller_register_endpoint

Register a seller endpoint

Register a proxy endpoint (Mode B). Aether stores your auth secret encrypted at rest (AES-256-GCM) and routes agent queries server-to-server — agents never see your URL or token. Charge per call via the `price_per_call_usd_cents` field. Account must be status='active' for traffic to be routed.

输入参数url必填slug必填secretauth_methoddescriptionhttp_methoddisplay_name必填pricing_modeltaxonomy_tagsseller_api_key必填ticker_coverageauth_header_name另有 4 个

seller_list_my_documents

List my published documents

List documents this seller has published. Returns status (pending / indexed / failed / revoked) and the indexed chunk count (`indexed_chunk_count`; the legacy alias `vespa_chunk_count` carries the same value for one release).

输入参数seller_api_key必填

seller_list_my_endpoints

List my registered endpoints

List proxy endpoints this seller has registered. Secrets are never returned — only a `secret_configured` boolean.

输入参数seller_api_key必填

版本历史

1
  1. v0.3.4最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分