# AiSeek

> Verified world changes with sources: topics, companies, countries, SeekEarth and evidence receipts.

- name: dev.aiseek/aiseek
- version: 2.0.0
- connection class: R1 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 75/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.aiseek%2Faiseek
- tools: https://api.protogrid.dev/v1/servers/dev.aiseek%2Faiseek/tools

**An agent can connect on its own if it already holds `AISEEK_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "aiseek": {
      "type": "http",
      "url": "https://aiseek.dev/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${AISEEK_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${AISEEK_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 99
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-98% +updated-0d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 75/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 12 of 12 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 4,727 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 25 tool changes in 30 days
- fail `stability.rug_pull`: 8 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 12, about 4,727 tokens to load them all
- tool set hash: 812367603049e98f88ea3db25f6d4139
- tools last changed: 2026-10-20T07:59:35.609Z
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.aiseek/aiseek.svg)](https://protogrid.dev/servers/dev.aiseek/aiseek)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `earth_at` changed (description)
  - before: SeekEarth for one place and one moment: what was happening there, from AiSeek's published changes and the Earth's layers. Give a place, either `country` (ISO 3166-1 alpha-2) or `lat` and `lon` with `radius_km` (default 500), and optionally a moment `at` (default now) and a window of `days` before it. `mode` NOW (the default) reads today's knowledge of those days and marks changes that became public only after `at` (knownAfter) or whose headline wording changed later; KNOWN reads what readers could see at `at`, and changes withdrawn since are only counted (withdrawnLater), never shown. Returns the place, the changes placed there (at most 30, most important first, each with its AiSeek url), the Change Heat of its countries on that day, and the items of the requested `layers` in force there (default: every event layer: disaster alerts, cyclones with forecast cones (not impact zones), tsunami messages, official weather warnings relayed as published, aftershock forecasts, conflict events, displacement, outbreaks, power plants, sanctions...), each with its layer's nature (OFFICIAL, AUTOMATIC estimate, FORECAST, OBSERVED) and the source to credit. Use it for where-and-when questions; use country_heat for heat across all countries, search_changes for changes by topic, change_history for one change's evidence over time. Limits by plan: `at` no further back than Free 7 days, Pro 30, Intelligence 90, Developer 180; `days` capped at Free 7, Pro 30, Intelligence 90, Developer 180 (the answer says the window used). One call of the key's quota.
  - after: SeekEarth for one place and one moment: what was happening there, from AiSeek's published changes and the Earth's layers (disaster alerts, cyclones, official weather warnings, conflict, outbreaks, power plants and more). Give a place, either `country` or `lat` and `lon`, and optionally a moment `at` and a window of `days`. NOW (the default) reads today's knowledge of those days; KNOWN reads what readers could see at `at`, and changes withdrawn since are only counted. Returns the place, its changes (at most 30, each with url), the Change Heat of its countries and the layer items in force there, each with its nature (OFFICIAL, AUTOMATIC, FORECAST, OBSERVED) and the source to credit. Use it for where-and-when questions. Do not use it for heat across all countries (country_heat), changes by topic (search_changes) or one change's evidence over time (change_history). Read-only; one call of the key's quota.
- 2026-10-20 `recent_corrections` changed (description)
  - before: Public corrections about published content, newest first: changes taken down (reason EDITORIAL, READER_REPORT or RIGHTS_REQUEST) and changes or dossiers that are still published while evidence behind them was corrected and is under review or was resolved in the last 30 days (reason SOURCE_WITHDRAWN, SOURCE_CHANGED, EVIDENCE_INVALIDATED, CLAIM_RETRACTED or CONFIDENCE_LOWERED). Each item has an id, kind, time, reason category, state (UNDER_REVIEW or RESOLVED), the target id while it is public and a title where one may be shown. A correction flags what depends on the corrected evidence for review; nothing is withdrawn automatically. Only items inside the plan's window are listed (Free 7 days, Pro 30, Intelligence 90, Developer 180); windowDays says which. Use it to check whether something you read earlier was corrected. At most `limit` items (1 to 50, default 20). One call of the key's quota.
  - after: Public corrections about published content, newest first: changes taken down, and changes or dossiers still published whose evidence was corrected and is under review or was resolved in the last 30 days. Each item has an id, kind, time, reason category, state (UNDER_REVIEW or RESOLVED), the target id while it is public and a title where one may be shown. A correction flags what depends on the corrected evidence for review; nothing is withdrawn automatically. Use it to check whether something you read earlier was corrected, or to audit AiSeek's error record. Do not use it to read one change's evidence history (change_history) or to browse new changes (latest_changes). Read-only; one call of the key's quota.
- 2026-10-20 `change_history` changed (description, inputSchema)
  - before: How AiSeek's evidence record for one published change developed, and what AiSeek knew about it at an earlier moment. Always returns the change's receipts per claim, newest first (each names its parent receipt, so the revision chain reads from the list, with class, statuses and independence counts), and the change as it was when first published when the plan's window reaches that date. With `known_at` it also returns the change as known at that moment: whether readers could see it then, whether its headline wording changed later, and each claim's newest receipt written by then. Limits that are part of the answer: history is recorded from the day SeekTrace began, and before it a result says precision EXISTENCE_ONLY (whether a record existed, never what it said); old headline text is not kept, so `current` is today's version and the wording check says when it differs. `known_at` is limited by plan (Free 7 days back, Pro 30, Intelligence 90, Developer 180); asking further back is an error. A receipt records an assessment; it is not a certificate that a claim is true. Use it for what-did-we-know-then questions; use get_change for today's view. The id is the change id from latest_changes or search_changes. One call of the key's quota.
  - after: How AiSeek's evidence record for one published change developed, and what AiSeek knew about it earlier. Always returns the change's receipts per claim, newest first (each names its parent receipt, so the revision chain reads from the list), and the change as first published when the plan's window reaches that date. With `known_at` it also returns the change as known at that moment: whether readers could see it then, whether its headline changed later, and each claim's newest receipt written by then. History starts the day SeekTrace began; before it a result says precision EXISTENCE_ONLY (whether a record existed, never what it said). Old headline text is not kept, so `current` is today's version. A receipt records an assessment; it is not a certificate that a claim is true. Use it for what-did-we-know-then questions and to find receipt ids for get_receipt; use get_change for today's view and sources. Read-only; one call of the key's quota.
- 2026-10-20 `verify_receipt` changed (description, inputSchema)
  - before: Ask the server to recompute a receipt's digest from the stored record and report whether it still matches: ok, digestMatches, canonicalForm, columnsMatch, evidenceRowsMatch and a list of problems (DIGEST_MISMATCH, NOT_CANONICAL, COLUMN_MISMATCH:<field>, EVIDENCE_ROWS_MISMATCH, PAYLOAD_UNREADABLE). ok true means the stored record is unchanged since it was written. A receipt records an assessment; it is not a certificate that a claim is true. Use it after get_receipt, or before you cite a receipt. Public receipts only; an unknown or non-public id is an error. One call of the key's quota.
  - after: Recompute a receipt's digest from the stored record and report whether it still matches: ok, digestMatches, canonicalForm, columnsMatch, evidenceRowsMatch and a list of problems (DIGEST_MISMATCH, NOT_CANONICAL, COLUMN_MISMATCH:<field>, EVIDENCE_ROWS_MISMATCH, PAYLOAD_UNREADABLE). ok true means the stored record is unchanged since it was written. A receipt records an assessment; it is not a certificate that a claim is true. Use it before you cite a receipt, after get_receipt has shown you what it says; it does not return the receipt's content. The id comes from change_history (receipts[].id). Public receipts only; an unknown or non-public id is an error. Read-only; one call of the key's quota.
- 2026-10-20 `get_receipt` changed (description, inputSchema)
  - before: Get one SeekTrace evidence receipt: the immutable record of how AiSeek assessed one claim and on what evidence. It carries the claim class (FACT, SUPPORTED or HYPOTHESIS), the assessment status (SUPPORTED, CONFLICTING, INSUFFICIENT_EVIDENCE or REFUTED), the currency status (CURRENT, STALE, SUPERSEDED, WITHDRAWN, UNKNOWN), the valid time, the evidence list (ids, source links, evidence level, stance, locators and content digests, never quoted text), independence counts (origins confirmed distinct, and origins not shown to be: unknown is never counted as independent), the parent receipt it revised and the sha256 digest of its canonical payload. A receipt records an assessment; it is not a certificate that a claim is true. Links to sources whose text may not be shown publicly are withheld (redactedEvidence counts them). Only public receipts can be read, on every plan; private research receipts never. Receipt ids come from change_history. To have the server recompute the digest use verify_receipt. One call of the key's quota.
  - after: Get one SeekTrace evidence receipt: the immutable record of how AiSeek assessed one claim and on what evidence. It carries the claim class (FACT, SUPPORTED or HYPOTHESIS), assessment status, currency status, valid time, the evidence list (ids, source links, level, stance and content digests, never quoted text), independence counts, the parent receipt it revised and the sha256 digest of its payload. A receipt records an assessment; it is not a certificate that a claim is true. Use it to read what a receipt says; to check that the stored record is unchanged use verify_receipt. Receipt ids come from change_history (receipts[].id). Only public receipts can be read, on every plan; links to sources whose text may not be shown are withheld (redactedEvidence counts them). Read-only; one call of the key's quota.
- 2026-10-20 `latest_brief` changed (description)
  - before: The latest brief: AiSeek's own summary of a period's changes, grouped by section, each item linking to its page. `type` DAILY (the default) covers one UTC day and comes out daily; WEEKLY covers a week and also carries the week's largest market moves, the events of the coming week and the judgments decided that week. On a Free key a brief opens one day after publication: a younger one comes back with only its title and summary, locked true, unlocksAt (when it opens) and no sections; paid plans read it at once. Use it for a digest; use latest_changes for the raw newest-first list. Returns the brief with its date, period, sections and url; an error if none has been published yet. One call of the key's quota.
  - after: The latest brief: AiSeek's own summary of a period's changes, grouped by section, each item linking to its page. DAILY (the default) covers one UTC day; WEEKLY also carries the week's largest market moves and the events of the coming week. Use it for a digest. Do not use it for the raw newest-first list (latest_changes) or a topic (search_changes). On a Free key a brief opens one day after publication: a younger one returns only title and summary with locked true and unlocksAt. An error if none has been published yet. Read-only; one call of the key's quota.
- 2026-10-20 `company` changed (description)
  - before: Look up a company on AiSeek. The arguments choose the mode, and `slug` wins: with `slug` (the exact AiSeek company slug, e.g. toyota) it returns that company's profile (name, country, listings with ticker and exchange, description, recent published changes, stated claims, relations to other entities) and its page url, and `query` is ignored if also given. With only `query` (a name, alias or ticker) it returns {items}: up to 10 matching companies, most active first, each with its slug; call company again with a slug for the full profile. Financial filings are not included. Errors: an unknown slug; neither argument given. A description taken from Wikipedia carries its link (CC BY-SA 4.0). One call of the key's quota.
  - after: Look up a company on AiSeek, in one of two modes. With `slug` (the exact company slug, e.g. toyota) it returns the profile: name, country, listings, description, recent published changes, stated claims and relations. With only `query` (a name, alias or ticker) it returns {items}: up to 10 matching companies, most active first, each with its slug; call company again with a slug for the profile. `slug` wins when both are given. Do not use it to find news about a company (search_changes with its name) or for filings, which are not included. An unknown slug is an error. Read-only; one call of the key's quota.
- 2026-10-20 `release_calendar` changed (description)
  - before: Scheduled releases and decisions between two times: central-bank decisions and speeches, statistics-office releases, earnings, rule effective dates, comment deadlines, trade measures, filings due, meetings, votes and product launches (kind POLICY_DECISION, DATA_RELEASE, RULE_EFFECTIVE, COMMENT_DEADLINE, TRADE_MEASURE, FILING_DUE, EARNINGS, MEETING, VOTE, PRODUCT_LAUNCH, SPEECH). Each event has its title, scheduled time (ISO 8601, UTC), precision (EXACT time, DAY date only, or WINDOW span), status, source name and link, region, importance and, for tracked figures, the previous reading and, once out, the new one: never a forecast, and policy-rate figures are left out. Range: `from` defaults to one day ago and `to` to 31 days ahead, both ISO 8601 and read as instants (UTC if no offset is given), at most 400 days apart. Free keys see only yesterday, today and tomorrow (UTC) whatever range is asked; paid plans see the whole range. Use it for what is coming; use latest_changes for what has already happened. One call of the key's quota.
  - after: Scheduled releases and decisions in a time range: central-bank decisions, statistics releases, earnings, rule effective dates, comment deadlines, trade measures, filings, meetings, votes and product launches. Use it for what is coming (or just passed). Do not use it for what has already happened: use latest_changes. Each event has its time (UTC), precision, status, source link, region and importance; tracked releases give the previous reading and, once out, the new one, never a forecast, and policy-rate figures are left out. Read-only; one call of the key's quota.
- 2026-10-20 `country_heat` changed (description)
  - before: SeekEarth's Change Heat per country: how much verified change AiSeek recorded in each country, against the country's own recent normal. Heat runs from 0 to 100 and measures the amount of change, never danger or instability: 50 is an ordinary day for that country, 75 a day twice as busy. Each country also has delta against the day before, the number of changes, its domains, a convergence flag (three or more domains with important changes within 48 hours) and the heat of the last seven days. Use it to see where things are changing; use search_changes for the changes themselves. Without `country` it returns up to 60 countries, hottest first; with `country` (ISO 3166-1 alpha-2, e.g. JP) just that one. `domain` narrows to one coverage domain. `days` (1 to 90) is the window and is capped by the key's plan: Free 7 days, Pro 30, Intelligence and Developer 90; the answer says the window used and the plan's maximum. Changes with no single country are not in the list. One call of the key's quota.
  - after: SeekEarth's Change Heat per country: how much verified change AiSeek recorded in each country, against that country's own recent normal. Heat runs 0 to 100 and measures the amount of change, never danger or instability: 50 is an ordinary day for the country, 75 a day twice as busy. Each country also has its delta, number of changes, domains, a convergence flag and a seven-day series. Use it to see where things are changing, across countries or for one. Do not use it for the changes themselves (search_changes) or for one place at one moment with its Earth layers (earth_at). Changes with no single country are not counted. Read-only; one call of the key's quota.
- 2026-10-20 `get_change` changed (description, inputSchema)
  - before: Get one published change with what AiSeek shows publicly about it: headline, summary, scores (importance, novelty, velocity, evidence strength), main subject, the languages it exists in, the id of its in-depth dossier when there is one, and its sources: for each outlet that reported it the name, the link, the publication date, the evidence level (PRIMARY, REGULATOR, COMPANY, INSTITUTIONAL, MEDIA, COMMUNITY, DERIVED) and its role. Quoted passages and source text are never returned, only names and links: open a source link, or the AiSeek page (url), to read them. Use it after latest_changes or search_changes. For the evidence receipts of the change and what AiSeek knew at an earlier time, use change_history. The id is the change id (a UUID); an unknown or unpublished id is an error. One call of the key's quota.
  - after: Get one published change with its sources: headline, summary, scores (importance, novelty, velocity, evidence strength), main subject and, for each outlet that reported it, the name, link, date, evidence level and role. Use it after latest_changes or search_changes, to see who reported a change. Quoted passages are never returned, only names and links: open a source link or the AiSeek page (url) to read them. Not for evidence receipts or what AiSeek knew earlier: use change_history. The result's dossierId, when set, names an in-depth dossier that no tool returns; read it at https://aiseek.dev/{locale}/stories/{dossierId}. An unknown or unpublished id is an error. Read-only; one call of the key's quota.

Full history: https://api.protogrid.dev/v1/servers/dev.aiseek%2Faiseek/changes

## Remotes

- https://aiseek.dev/api/v1/mcp (streamable-http, auth api_key ${AISEEK_TOKEN}, reachable true, uptime30d 0.9791667)

## Packages

_none_

## Tools (12)

- `change_history`: How AiSeek's evidence record for one published change developed, and what AiSeek knew about it earlier. Always returns the change's receipts per claim, newest first (each names its parent receipt, so the revision chain reads from the list), and the change as first published when the plan's window reaches that date. With `known_at` it also returns the change as known at that moment: whether readers could see it then, whether its headline changed later, and each claim's newest receipt written by then. History starts the day SeekTrace began; before it a result says precision EXISTENCE_ONLY (whether a record existed, never what it said). Old headline text is not kept, so `current` is today's version. A receipt records an assessment; it is not a certificate that a claim is true. Use it for what-did-we-know-then questions and to find receipt ids for get_receipt; use get_change for today's view and sources. Read-only; one call of the key's quota.
- `company`: Look up a company on AiSeek, in one of two modes. With `slug` (the exact company slug, e.g. toyota) it returns the profile: name, country, listings, description, recent published changes, stated claims and relations. With only `query` (a name, alias or ticker) it returns {items}: up to 10 matching companies, most active first, each with its slug; call company again with a slug for the profile. `slug` wins when both are given. Do not use it to find news about a company (search_changes with its name) or for filings, which are not included. An unknown slug is an error. Read-only; one call of the key's quota.
- `country_heat`: SeekEarth's Change Heat per country: how much verified change AiSeek recorded in each country, against that country's own recent normal. Heat runs 0 to 100 and measures the amount of change, never danger or instability: 50 is an ordinary day for the country, 75 a day twice as busy. Each country also has its delta, number of changes, domains, a convergence flag and a seven-day series. Use it to see where things are changing, across countries or for one. Do not use it for the changes themselves (search_changes) or for one place at one moment with its Earth layers (earth_at). Changes with no single country are not counted. Read-only; one call of the key's quota.
- `earth_at`: SeekEarth for one place and one moment: what was happening there, from AiSeek's published changes and the Earth's layers (disaster alerts, cyclones, official weather warnings, conflict, outbreaks, power plants and more). Give a place, either `country` or `lat` and `lon`, and optionally a moment `at` and a window of `days`. NOW (the default) reads today's knowledge of those days; KNOWN reads what readers could see at `at`, and changes withdrawn since are only counted. Returns the place, its changes (at most 30, each with url), the Change Heat of its countries and the layer items in force there, each with its nature (OFFICIAL, AUTOMATIC, FORECAST, OBSERVED) and the source to credit. Use it for where-and-when questions. Do not use it for heat across all countries (country_heat), changes by topic (search_changes) or one change's evidence over time (change_history). Read-only; one call of the key's quota.
- `get_change`: Get one published change with its sources: headline, summary, scores (importance, novelty, velocity, evidence strength), main subject and, for each outlet that reported it, the name, link, date, evidence level and role. Use it after latest_changes or search_changes, to see who reported a change. Quoted passages are never returned, only names and links: open a source link or the AiSeek page (url) to read them. Not for evidence receipts or what AiSeek knew earlier: use change_history. The result's dossierId, when set, names an in-depth dossier that no tool returns; read it at https://aiseek.dev/{locale}/stories/{dossierId}. An unknown or unpublished id is an error. Read-only; one call of the key's quota.
- `get_receipt`: Get one SeekTrace evidence receipt: the immutable record of how AiSeek assessed one claim and on what evidence. It carries the claim class (FACT, SUPPORTED or HYPOTHESIS), assessment status, currency status, valid time, the evidence list (ids, source links, level, stance and content digests, never quoted text), independence counts, the parent receipt it revised and the sha256 digest of its payload. A receipt records an assessment; it is not a certificate that a claim is true. Use it to read what a receipt says; to check that the stored record is unchanged use verify_receipt. Receipt ids come from change_history (receipts[].id). Only public receipts can be read, on every plan; links to sources whose text may not be shown are withheld (redactedEvidence counts them). Read-only; one call of the key's quota.
- `latest_brief`: The latest brief: AiSeek's own summary of a period's changes, grouped by section, each item linking to its page. DAILY (the default) covers one UTC day; WEEKLY also carries the week's largest market moves and the events of the coming week. Use it for a digest. Do not use it for the raw newest-first list (latest_changes) or a topic (search_changes). On a Free key a brief opens one day after publication: a younger one returns only title and summary with locked true and unlocksAt. An error if none has been published yet. Read-only; one call of the key's quota.
- `latest_changes`: List the newest published changes on AiSeek (verified changes in the world: economy, markets, policy, technology, companies, science), newest first, 20 per page. Use it to see what is new or to browse without a topic. Do not use it to look for a topic, company or country: use search_changes. For a digest of a period use latest_brief. Each item carries the change id (pass it to get_change or change_history) and the url of its AiSeek page. Read-only; one call of the key's quota.
- `recent_corrections`: Public corrections about published content, newest first: changes taken down, and changes or dossiers still published whose evidence was corrected and is under review or was resolved in the last 30 days. Each item has an id, kind, time, reason category, state (UNDER_REVIEW or RESOLVED), the target id while it is public and a title where one may be shown. A correction flags what depends on the corrected evidence for review; nothing is withdrawn automatically. Use it to check whether something you read earlier was corrected, or to audit AiSeek's error record. Do not use it to read one change's evidence history (change_history) or to browse new changes (latest_changes). Read-only; one call of the key's quota.
- `release_calendar`: Scheduled releases and decisions in a time range: central-bank decisions, statistics releases, earnings, rule effective dates, comment deadlines, trade measures, filings, meetings, votes and product launches. Use it for what is coming (or just passed). Do not use it for what has already happened: use latest_changes. Each event has its time (UTC), precision, status, source link, region and importance; tracked releases give the previous reading and, once out, the new one, never a forecast, and policy-rate figures are left out. Read-only; one call of the key's quota.
- `search_changes`: Search published changes by words (a company, a country, a subject, a name) in English, Chinese or Japanese; results are ranked by relevance, best first, not by time. Use it to find changes about something. Do not use it to browse what is newest (use latest_changes) or to look up a company's profile (use company). Each result carries the change id (pass it to get_change for the sources) and its url. Read-only; one call of the key's quota.
- `verify_receipt`: Recompute a receipt's digest from the stored record and report whether it still matches: ok, digestMatches, canonicalForm, columnsMatch, evidenceRowsMatch and a list of problems (DIGEST_MISMATCH, NOT_CANONICAL, COLUMN_MISMATCH:<field>, EVIDENCE_ROWS_MISMATCH, PAYLOAD_UNREADABLE). ok true means the stored record is unchanged since it was written. A receipt records an assessment; it is not a certificate that a claim is true. Use it before you cite a receipt, after get_receipt has shown you what it says; it does not return the receipt's content. The id comes from change_history (receipts[].id). Public receipts only; an unknown or non-public id is an error. Read-only; one call of the key's quota.
