protogrid

Search / io.github.EvidInvest/aether-developer

aether-developer

R0· no sign-in

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

v0.3.4 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality82good
Trust91of 100
Uptime, 30 days100%
Latency p50380 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "aether-developer": {
      "type": "http",
      "url": "https://aether.evidinvest.com/mcp",
      "headers": {
        "Authorization": "Bearer ${AETHER_DEVELOPER_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http aether-developer https://aether.evidinvest.com/mcp --header "Authorization: Bearer ${AETHER_DEVELOPER_TOKEN}"
[mcp_servers.aether-developer]
url = "https://aether.evidinvest.com/mcp"
bearer_token_env_var = "AETHER_DEVELOPER_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aether-developer": {
      "type": "remote",
      "url": "https://aether.evidinvest.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:AETHER_DEVELOPER_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "aether-developer": {
      "type": "http",
      "url": "https://aether.evidinvest.com/mcp",
      "headers": {
        "Authorization": "Bearer ${AETHER_DEVELOPER_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=aether-developer&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYWV0aGVyLmV2aWRpbnZlc3QuY29tL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke0FFVEhFUl9ERVZFTE9QRVJfVE9LRU59In19"
}
{
  "servers": {
    "aether-developer": {
      "type": "http",
      "url": "https://aether.evidinvest.com/mcp",
      "headers": {
        "Authorization": "Bearer ${AETHER_DEVELOPER_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "aether-developer": {
      "httpUrl": "https://aether.evidinvest.com/mcp",
      "headers": {
        "Authorization": "Bearer ${AETHER_DEVELOPER_TOKEN}"
      }
    }
  }
}
extensions:
  "aether-developer":
    enabled: true
    name: "aether-developer"
    type: streamable_http
    uri: "https://aether.evidinvest.com/mcp"
    headers:
      "Authorization": "Bearer ${AETHER_DEVELOPER_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${AETHER_DEVELOPER_TOKEN}. The registry never accepts secret values.

Quality 82 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length6 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations14 of 14 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • warn
    tools.token_costabout 9,485 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes4 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies67 · weight 15
  • pass
    deps.known_vulnsno known advisory in 98 resolved packages
  • fail
    deps.mcp_sdk_version@modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or later
  • pass
    deps.resolvable@evidinvest/[email protected] resolved: 98 packages

14 tools, about 9,485 tokens to load them all · tool set 730b150ca0de · tools last changed 2026-10-10 · checked 2026-10-19 14:42 UTC

Tool changes

  • transcript_searchchangeddescription, input schema, output schema
    before

    Search earnings-call transcripts and earnings press-release exhibits by speaker turn (CEO/CFO prepared remarks, analyst Q&A, press releases). Returns verbatim quotes as agent-ready payloads: speaker name/role, fiscal year + quarter, call date, source_type (asr_call = our own ASR of the real call vs press_release), sec.gov source URL and citation string. Use for guidance, management tone and forward-looking color that filings don't capture; pair with financial_search to back narrative with filed numbers. ALWAYS pass `issuer` (the ticker whose calls you mean) plus `fiscal_year` when you know it — a named call is scoped to that issuer's calls, fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field. Use scope=cross_company deliberately, only for questions genuinely about many companies ("which management teams talked about tariff pass-through"). Narrow further with speaker_role, lookback_quarters or source_type. FETCH MODE: omit `query` entirely and pass issuer.ticker plus fiscal_year / quarter / date_from / date_to to get that call's segments back in call-date-desc then spoken order, with no ranking and in tens of milliseconds — the right tool when you already know WHICH call you want. For onset/"first mention" questions (when did a topic first come up), bound with date_from/date_to and set order='earliest' — a date pair, not a fiscal year, is the right tool there.

    after · 83% of words in common

    Search earnings-call transcripts and earnings press-release exhibits by speaker turn (CEO/CFO prepared remarks, analyst Q&A, press releases). Returns verbatim quotes as agent-ready payloads: speaker name/role, fiscal year + quarter, call date, source_type (asr_call = our own ASR of the real call vs press_release), sec.gov source URL and citation string. Use for guidance, management tone and forward-looking color that filings don't capture; pair with financial_search to back narrative with filed numbers. ALWAYS pass `issuer` (the ticker whose calls you mean) plus `fiscal_year` when you know it — a named call is scoped to that issuer's calls, fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field. Use scope=cross_company deliberately, only for questions genuinely about many companies ("which management teams talked about tariff pass-through"). Narrow further with speaker_role, lookback_quarters or source_type. FETCH MODE: omit `query` entirely and pass issuer.ticker plus fiscal_year / quarter / date_from / date_to to get that call's segments back in call-date-desc then spoken order, with no ranking and in tens of milliseconds — the right tool when you already know WHICH call you want. For onset/"first mention" questions (when did a topic first come up), bound with date_from/date_to and set order='earliest' — a date pair, not a fiscal year, is the right tool there. Fetch mode pages: pass the response's `next_offset` as `offset` to read past `limit`. Returned windows overlap; counts of a term over returned text are not document counts. `partial: true` means retrieval degraded; an empty result is then not proof of absence. A cross_company call that times out returns a clean 503 telling you to name an issuer.

  • financial_searchchangeddescription, input schema, output schema
    before

    Search SEC filings (10-K, 10-Q, 8-K, registration statements/prospectuses and press exhibits; S&P 500 coverage, ~10 years) with hybrid semantic + keyword retrieval. TWO MODES. Search mode (pass `query`): results ranked by relevance, highest first. FETCH MODE (omit `query`): no ranking at all — pass an issuer plus any of form_type / fiscal_year / accession_number / section and get that filing's sections back in filing-date-desc then document order, in tens of milliseconds. Use fetch when you already know WHICH document you want and only need its text. ALWAYS pass `issuer` (ticker, cik or company_name) — the company the question is about — plus `fiscal_year` and/or `form_type` when you know them. Scoped calls are fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field. Use scope=cross_company deliberately only for questions that are genuinely about many companies ("which filers name NVIDIA as a supplier"). Built for agents: every hit is a ready-to-cite payload — exact filing-section text, form type, filing date, accession-numbered citation, source URL and a 0-1 confidence score — no HTML parsing, no EDGAR pagination. Use for revenue/segment figures, risk factors, M&A and contract terms, customer/supplier concentration, and any claim that must trace to a primary source. Coverage is NOT US-only: Sweden/Bolagsverket, Japan/EDINET, Korea/DART annual reports are included. Those issuers have no US ticker — pass `issuer.company_name` (e.g. "Sivers Semiconductors", "Samsung Electronics", "Ajinomoto") or scope a whole market with `jurisdiction` (["SE"], ["JP"], ["KR"]).

    after · 90% of words in common

    Search SEC filings (10-K, 10-Q, 8-K, registration statements/prospectuses and press exhibits; S&P 500 coverage, ~10 years) with hybrid semantic + keyword retrieval. TWO MODES. Search mode (pass `query`): results ranked by relevance, highest first. FETCH MODE (omit `query`): no ranking at all — pass an issuer plus any of form_type / fiscal_year / accession_number / section and get that filing's sections back in filing-date-desc then document order, in tens of milliseconds. Use fetch when you already know WHICH document you want and only need its text. ALWAYS pass `issuer` (ticker, cik or company_name) — the company the question is about — plus `fiscal_year` and/or `form_type` when you know them. Scoped calls are fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field. Use scope=cross_company deliberately only for questions that are genuinely about many companies ("which filers name NVIDIA as a supplier"). Built for agents: every hit is a ready-to-cite payload — exact filing-section text, form type, filing date, accession-numbered citation, source URL and a 0-1 confidence score — no HTML parsing, no EDGAR pagination. Use for revenue/segment figures, risk factors, M&A and contract terms, customer/supplier concentration, and any claim that must trace to a primary source. Fetch mode pages: pass the response's `next_offset` as `offset` to read past `limit`. Returned windows overlap; counts of a term over returned text are not document counts. `partial: true` means retrieval degraded; an empty result is then not proof of absence. Coverage is NOT US-only: Sweden/Bolagsverket, Japan/EDINET, Korea/DART annual reports are included. Those issuers have no US ticker — pass `issuer.company_name` (e.g. "Sivers Semiconductors", "Samsung Electronics", "Ajinomoto") or scope a whole market with `jurisdiction` (["SE"], ["JP"], ["KR"]).

  • searchchangeddescription, output schema
    before

    Unified search across every Aether corpus at once — SEC filings, Japan/EDINET and Korea/DART annual reports, EU financial regulation, and earnings calls/press-release exhibits — auto-routed and merged into one corpus-tagged, citation-complete result set. Use this for MOST questions: you do NOT have to pick the right corpus, and it will not miss same-day earnings (8-K earnings exhibits live in the transcript/press corpus, which a filings-only search silently misses). Each hit carries a `corpus` tag, an accession/citation string, a source URL, a 0-1 confidence score and an anchor_id. ALWAYS pass `issuer` (ticker, cik, or company_name for non-US filers) plus `fiscal_year` when you know it — it is forwarded to every corpus, so one named subject scopes filings and earnings calls together: fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field before trusting the result. Use scope=cross_company deliberately, only for questions genuinely about many issuers ("which filers name NVIDIA as a supplier"). Filters are forwarded, not dropped: form_type / accession_number / section / return_format reach the filing corpora (sec/jp/kr), quarter and fiscal_year reach the earnings-call corpus, and EU regulation takes none of them (it has no issuer, form or quarter) — a filing filter therefore narrows an omitted `corpora` to sec/jp/kr. Any field not listed here is REJECTED with a 400 naming it, rather than silently ignored. Reach for financial_search / transcript_search / regulation_search only when you deliberately want to force a single corpus. Ownership questions do not go through search at all: holdings_by_security and holdings_by_manager.

    after · 84% of words in common

    Unified search across every Aether corpus at once — SEC filings, Japan/EDINET and Korea/DART annual reports, EU financial regulation, and earnings calls/press-release exhibits — auto-routed and merged into one corpus-tagged, citation-complete result set. Use this for MOST questions: you do NOT have to pick the right corpus, and it will not miss same-day earnings (8-K earnings exhibits live in the transcript/press corpus, which a filings-only search silently misses). Each hit carries a `corpus` tag, an accession/citation string, a source URL, a 0-1 confidence score and an anchor_id. ALWAYS pass `issuer` (ticker, cik, or company_name for non-US filers) plus `fiscal_year` when you know it — it is forwarded to every corpus, so one named subject scopes filings and earnings calls together: fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field before trusting the result. Use scope=cross_company deliberately, only for questions genuinely about many issuers ("which filers name NVIDIA as a supplier"). Filters are forwarded, not dropped: form_type / accession_number / section / return_format reach the filing corpora (sec/jp/kr), quarter and fiscal_year reach the earnings-call corpus, and EU regulation takes none of them (it has no issuer, form or quarter) — a filing filter therefore narrows an omitted `corpora` to sec/jp/kr. Any field not listed here is REJECTED with a 400 naming it, rather than silently ignored. Reach for financial_search / transcript_search / regulation_search only when you deliberately want to force a single corpus. With an `issuer` and no `corpora`, EU regulation is not searched; if the issuer yields no SEC or earnings hit the response is empty with `coverage: "none"` and a `quality_caveat`, never filled from other corpora. `partial: true` means a corpus arm failed: retry before concluding absence. Returned windows overlap; counts of a term over returned text are not document counts. To page through a long document past `limit`, use financial_search / transcript_search fetch mode with `offset`. Ownership questions do not go through search at all: holdings_by_security and holdings_by_manager.

  • holdings_by_securitychangeddescription
    before

    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. Amendments are excluded. 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.

    after · 93% of words in common

    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.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 91 / 100

provenance80
liveness100
freshness85
hygiene100

+repository +namespace-matches-repo +reachable +uptime-100% ~updated-38d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@evidinvest/[email protected] npm97 dependencies, resolved · MCP SDK @modelcontextprotocol/sdk 1.30.1 · advisories checked 2026-10-19

advisoryseveritypackagefixed in
GHSA-6qxp-vccf-f47hMCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP serverhigh@modelcontextprotocol/[email protected]MCP SDK, directfixed in 1.31.0

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://aether.evidinvest.com/mcp streamable-httpnoneyes100%380 ms2025-11-252026-10-19
packageregistryversionruntimesecrets
@evidinvest/aether-mcpnpm0.3.3–

Tools (14)

financial_searchread-onlySearch SEC filings (10-K, 10-Q, 8-K, registration statements/prospectuses and press exhibits; S&P 500 coverage, ~10 years) with hybrid semantic + keyword retrieval. TWO MODES. Search mode (pass `query`): results ranked by relevance, highest first. FETCH MODE (omit `query`): no ranking at all — pass an issuer plus any of form_type / fiscal_year / accession_number / section and get that filing's sections back in filing-date-desc then document order, in tens of milliseconds. Use fetch when you already know WHICH document you want and only need its text. ALWAYS pass `issuer` (ticker, cik or company_name) — the company the question is about — plus `fiscal_year` and/or `form_type` when you know them. Scoped calls are fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field. Use scope=cross_company deliberately only for questions that are genuinely about many companies ("which filers name NVIDIA as a supplier"). Built for agents: every hit is a ready-to-cite payload — exact filing-section text, form type, filing date, accession-numbered citation, source URL and a 0-1 confidence score — no HTML parsing, no EDGAR pagination. Use for revenue/segment figures, risk factors, M&A and contract terms, customer/supplier concentration, and any claim that must trace to a primary source. Fetch mode pages: pass the response's `next_offset` as `offset` to read past `limit`. Returned windows overlap; counts of a term over returned text are not document counts. `partial: true` means retrieval degraded; an empty result is then not proof of absence. Coverage is NOT US-only: Sweden/Bolagsverket, Japan/EDINET, Korea/DART annual reports are included. Those issuers have no US ticker — pass `issuer.company_name` (e.g. "Sivers Semiconductors", "Samsung Electronics", "Ajinomoto") or scope a whole market with `jurisdiction` (["SE"], ["JP"], ["KR"]).
holdings_by_managerread-onlyWhat 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.
holdings_by_securityread-onlyWho 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.
list_partnersread-onlyList 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.
partner_proxy_searchread-onlyRoute the agent's query server-to-server to one or more seller-registered API endpoints. Each call consumes prepaid Aether credits from the connected account at the per-call rate listed in list_partners (consumed regardless of result count). Aether holds seller credentials — agent never sees URL or token. Pass `issuer` when the question is about one company, so routing narrows to the endpoints that declare coverage of it rather than guessing the ticker from the query text — a wrong guess here spends credits on the wrong endpoint. Use list_partners first to discover available endpoints and per-call credit costs.
partner_searchread-onlySearch marketplace partner documents (research notes, supply-chain analyses, etc. published by registered sellers). Returns ranked chunks with explicit per-document attribution and license terms. Pass `issuer` when the question is about one company — partner documents declare ticker coverage, so a named issuer narrows to the documents that actually cover it; without one the call runs scope=cross_company over every seller's corpus and the response sets `quality_caveat`. Use list_partners first to discover available sellers + filter via the `partners` arg to scope costs.
regulation_searchread-onlySearch the text of EU financial regulation — a 29-act corpus (~13,000 citable chunks) covering markets & securities (MiFID II, MiFIR, MAR, Prospectus, EMIR, CSDR, Short-Selling, SFTR, Benchmarks), crypto & operational resilience (MiCA, DORA), banking & prudential (CRR, CRD IV, BRRD, SRMR), funds (UCITS, AIFMD), payments & insurance (PSD2, Solvency II, IDD), sustainable finance (SFDR, Taxonomy, CSRD), the 2024 EU AML package (AMLR, AMLAR, AMLD6, Transfer-of-Funds Regulation), plus Credit Rating Agencies and GDPR. Returns ranked, citable units — Article-paragraphs, recitals, annex blocks — each with a human breadcrumb (e.g. 'MiCA 2023/1114 · Art. 4 · para. 1' or 'AMLR 2024/1624 · Art. 12 · para. 3'). Scoped to financial regulation, not all EU law. ALWAYS pass `celex` — it is this corpus's anchor, the equivalent of naming the issuer on a filing search — plus `article` when you know it. An anchored call is scope=issuer: fast and precise. With no `celex` the call runs scope=cross_company across all 29 acts, ranked by relevance only, and the response sets `quality_caveat` — check for that field. Use scope=cross_company deliberately for genuinely corpus-wide questions ("which acts impose a 72-hour incident-reporting deadline"). Narrow further with doc_type, chunk_type or AML topic; set prefer_consolidated to favour EUR-Lex consolidated text over the original OJ text.
searchread-onlyUnified search across every Aether corpus at once — SEC filings, Japan/EDINET and Korea/DART annual reports, EU financial regulation, and earnings calls/press-release exhibits — auto-routed and merged into one corpus-tagged, citation-complete result set. Use this for MOST questions: you do NOT have to pick the right corpus, and it will not miss same-day earnings (8-K earnings exhibits live in the transcript/press corpus, which a filings-only search silently misses). Each hit carries a `corpus` tag, an accession/citation string, a source URL, a 0-1 confidence score and an anchor_id. ALWAYS pass `issuer` (ticker, cik, or company_name for non-US filers) plus `fiscal_year` when you know it — it is forwarded to every corpus, so one named subject scopes filings and earnings calls together: fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field before trusting the result. Use scope=cross_company deliberately, only for questions genuinely about many issuers ("which filers name NVIDIA as a supplier"). Filters are forwarded, not dropped: form_type / accession_number / section / return_format reach the filing corpora (sec/jp/kr), quarter and fiscal_year reach the earnings-call corpus, and EU regulation takes none of them (it has no issuer, form or quarter) — a filing filter therefore narrows an omitted `corpora` to sec/jp/kr. Any field not listed here is REJECTED with a 400 naming it, rather than silently ignored. Reach for financial_search / transcript_search / regulation_search only when you deliberately want to force a single corpus. With an `issuer` and no `corpora`, EU regulation is not searched; if the issuer yields no SEC or earnings hit the response is empty with `coverage: "none"` and a `quality_caveat`, never filled from other corpora. `partial: true` means a corpus arm failed: retry before concluding absence. Returned windows overlap; counts of a term over returned text are not document counts. To page through a long document past `limit`, use financial_search / transcript_search fetch mode with `offset`. Ownership questions do not go through search at all: holdings_by_security and holdings_by_manager.
seller_list_my_documentsread-onlyList 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_list_my_endpointsread-onlyList proxy endpoints this seller has registered. Secrets are never returned — only a `secret_configured` boolean.
seller_publish_documentPublish (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.
seller_register_endpointRegister 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.
seller_signupCreate 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.
transcript_searchread-onlySearch earnings-call transcripts and earnings press-release exhibits by speaker turn (CEO/CFO prepared remarks, analyst Q&A, press releases). Returns verbatim quotes as agent-ready payloads: speaker name/role, fiscal year + quarter, call date, source_type (asr_call = our own ASR of the real call vs press_release), sec.gov source URL and citation string. Use for guidance, management tone and forward-looking color that filings don't capture; pair with financial_search to back narrative with filed numbers. ALWAYS pass `issuer` (the ticker whose calls you mean) plus `fiscal_year` when you know it — a named call is scoped to that issuer's calls, fast and precise. A call with no issuer runs as scope=cross_company: slower, ranked by relevance only, and the response sets `quality_caveat` — check for that field. Use scope=cross_company deliberately, only for questions genuinely about many companies ("which management teams talked about tariff pass-through"). Narrow further with speaker_role, lookback_quarters or source_type. FETCH MODE: omit `query` entirely and pass issuer.ticker plus fiscal_year / quarter / date_from / date_to to get that call's segments back in call-date-desc then spoken order, with no ranking and in tens of milliseconds — the right tool when you already know WHICH call you want. For onset/"first mention" questions (when did a topic first come up), bound with date_from/date_to and set order='earliest' — a date pair, not a fiscal year, is the right tool there. Fetch mode pages: pass the response's `next_offset` as `offset` to read past `limit`. Returned windows overlap; counts of a term over returned text are not document counts. `partial: true` means retrieval degraded; an empty result is then not proof of absence. A cross_company call that times out returns a clean 503 telling you to name an issuer.

Schemas: list_tools.

Similar MCP servers

More from io.github.EvidInvest

Official server.json
{
  "name": "io.github.EvidInvest/aether-developer",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://aether.evidinvest.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Bearer <AETHER_API_KEY> — free key at https://aether.evidinvest.com/developer/register (anonymous calls allowed at 5/hour)"
        }
      ]
    }
  ],
  "version": "0.3.4",
  "packages": [
    {
      "version": "0.3.3",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@evidinvest/aether-mcp",
      "registryType": "npm",
      "environmentVariables": [
        {
          "name": "AETHER_API_KEY",
          "description": "Optional Aether API key (ak_…). If unset, the package runs OAuth 2.0 device flow on first run. Get keys at https://aether.evidinvest.com/developer/keys."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/EvidInvest/aether-developer",
    "source": "github"
  },
  "description": "Cited search over SEC filings, earnings transcripts and EU regulation, with fetch mode. 14 tools."
}