# AiSeek (remote · aiseek.dev)

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

- Trust score: 75/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `aiseek.dev`: 75/100 (this document), [markdown](https://verifymcp.io/servers/dev-aiseek-aiseek/api-v1-mcp.md), [page](https://verifymcp.io/servers/dev-aiseek-aiseek/api-v1-mcp)

## Channel facts

- Endpoint: `https://aiseek.dev/api/v1/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4879 tokens (~304/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 19/100
  - Stability check failed: schema churn in the 27 days we've observed: 5 tool removals, 0 breaking changes, 0 auth/transport breaks, 14 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 16 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the AiSeek MCP server?

AiSeek is a hosted endpoint at https://aiseek.dev/api/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http dev-aiseek-aiseek 'https://aiseek.dev/api/v1/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "dev-aiseek-aiseek": {
      "url": "https://aiseek.dev/api/v1/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "dev-aiseek-aiseek": {
      "type": "http",
      "url": "https://aiseek.dev/api/v1/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.dev-aiseek-aiseek]
url = "https://aiseek.dev/api/v1/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-aiseek-aiseek": {
      "type": "remote",
      "url": "https://aiseek.dev/api/v1/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add dev-aiseek-aiseek --url 'https://aiseek.dev/api/v1/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  dev-aiseek-aiseek:
    url: "https://aiseek.dev/api/v1/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "dev-aiseek-aiseek": {
      "Transport": "http",
      "Url": "https://aiseek.dev/api/v1/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add dev-aiseek-aiseek -t streamable-http -u 'https://aiseek.dev/api/v1/mcp'
```

### Other

```json
{
  "mcpServers": {
    "dev-aiseek-aiseek": {
      "type": "http",
      "url": "https://aiseek.dev/api/v1/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 12 to 15.

### 2026-11-02 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 5 to 9.

### 2026-10-21 (score 73, 0)

- [security] Tool “get_change” rewrote its description, which is the text the model reads
- [security] Tool “get_change_history” rewrote its description, which is the text the model reads
- [security] Tool “get_company” rewrote its description, which is the text the model reads
- [security] Tool “get_country_heat” rewrote its description, which is the text the model reads
- [security] Tool “get_earth_view” rewrote its description, which is the text the model reads
- [security] Tool “get_latest_brief” rewrote its description, which is the text the model reads
- [security] Tool “get_receipt” rewrote its description, which is the text the model reads
- [security] Tool “get_topic” rewrote its description, which is the text the model reads
- [security] Tool “list_changes” rewrote its description, which is the text the model reads
- [security] Tool “list_corrections” rewrote its description, which is the text the model reads
- [security] Tool “list_countries” rewrote its description, which is the text the model reads
- [security] Tool “list_scheduled_events” rewrote its description, which is the text the model reads
- [security] Tool “list_topics” rewrote its description, which is the text the model reads
- [security] Tool “search_changes” rewrote its description, which is the text the model reads
- [security] Tool “search_companies” rewrote its description, which is the text the model reads
- [security] Tool “verify_receipt” rewrote its description, which is the text the model reads

### 2026-10-20 (score 73, −4)

- [security regression] Stability: 0.33 → fail
- [security regression] Tool “change_history” was removed
- [security regression] Tool “company” was removed
- [security regression] Tool “country_heat” was removed
- [security regression] Tool “earth_at” was removed
- [security regression] Tool “latest_brief” was removed
- [security regression] Tool “latest_changes” was removed
- [security regression] Tool “recent_corrections” was removed
- [security regression] Tool “release_calendar” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “change_history” rewrote its description, which is the text the model reads
- [security] Tool “company” rewrote its description, which is the text the model reads
- [security] Tool “country_heat” rewrote its description, which is the text the model reads
- [security] Tool “earth_at” rewrote its description, which is the text the model reads
- [security] Tool “get_change” rewrote its description, which is the text the model reads
- [security] Tool “get_receipt” rewrote its description, which is the text the model reads
- [security] Tool “latest_brief” rewrote its description, which is the text the model reads
- [security] Tool “latest_changes” rewrote its description, which is the text the model reads
- [security] Tool “recent_corrections” rewrote its description, which is the text the model reads
- [security] Tool “release_calendar” rewrote its description, which is the text the model reads
- [security] Tool “search_changes” rewrote its description, which is the text the model reads
- [security] Tool “verify_receipt” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 3922 → 4742
- [functional improvement] Schema quality: 326 → 284
- [functional] Server version: 1.2.2 → 2.0.0
- [functional] Server version: 1.2.1 → 1.2.2
- [functional] New tool “get_change_history”
- [functional] New tool “get_company”
- [functional] New tool “get_country_heat”
- [functional] New tool “get_earth_view”
- [functional] New tool “get_latest_brief”
- [functional] New tool “get_topic”
- [functional] New tool “list_changes”
- [functional] New tool “list_corrections”
- [functional] New tool “list_countries”
- [functional] New tool “list_scheduled_events”
- [functional] New tool “list_topics”
- [functional] New tool “search_companies”
- [cosmetic] “get_change” reworded the description of “locale”
- [cosmetic] “get_receipt” reworded the description of “locale”
- [cosmetic] “search_changes” reworded the description of “limit”
- [cosmetic] “search_changes” reworded the description of “locale”
- [cosmetic] “verify_receipt” reworded the description of “locale”
- [cosmetic] “change_history” reworded the description of “id”
- [cosmetic] “get_change” reworded the description of “id”
- [cosmetic] “get_receipt” reworded the description of “id”
- [cosmetic] “verify_receipt” reworded the description of “id”
- [cosmetic] Tool “get_change” changed its title: One change and its sources → Get one change and its sources
- [cosmetic] Tool “get_receipt” changed its title: Evidence receipt → Get an evidence receipt

### 2026-10-19 (score 77, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “country_heat” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 3268 → 3922
- [functional] Server version: 1.2.0 → 1.2.1
- [functional] Server version: 1.1.0 → 1.2.0
- [functional] New tool “earth_at”

### 2026-10-17 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-15 (score 76, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “company” rewrote its description, which is the text the model reads
- [security] Tool “country_heat” rewrote its description, which is the text the model reads
- [security] Tool “get_change” rewrote its description, which is the text the model reads
- [security] Tool “latest_brief” rewrote its description, which is the text the model reads
- [security] Tool “latest_changes” rewrote its description, which is the text the model reads
- [security] Tool “release_calendar” rewrote its description, which is the text the model reads
- [security] Tool “search_changes” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: pass → fail
- [functional improvement] Tool coverage: 65% → 100%
- [functional improvement] Tool “company” now declares an output schema
- [functional improvement] Tool “country_heat” now declares an output schema
- [functional improvement] Tool “get_change” now declares an output schema
- [functional improvement] Tool “latest_brief” now declares an output schema
- [functional improvement] Tool “latest_changes” now declares an output schema
- [functional improvement] Tool “release_calendar” now declares an output schema
- [functional improvement] Tool “search_changes” now declares an output schema
- [functional] First check of Tool coverage: 100
- [functional] Schema quality: good → excellent
- [functional] Server version: 1.0.0 → 1.1.0
- [functional] New tool “change_history”
- [functional] New tool “get_receipt”
- [functional] New tool “recent_corrections”
- [functional] New tool “verify_receipt”
- [cosmetic] “company” reworded the description of “locale”
- [cosmetic] “company” reworded the description of “query”
- [cosmetic] “company” reworded the description of “slug”
- [cosmetic] “country_heat” reworded the description of “country”
- [cosmetic] “country_heat” reworded the description of “days”
- [cosmetic] “country_heat” reworded the description of “domain”
- [cosmetic] “country_heat” reworded the description of “locale”
- [cosmetic] “get_change” reworded the description of “id”
- [cosmetic] “get_change” reworded the description of “locale”
- [cosmetic] “latest_brief” reworded the description of “locale”
- [cosmetic] “latest_brief” reworded the description of “type”
- [cosmetic] “latest_changes” reworded the description of “locale”
- [cosmetic] “latest_changes” reworded the description of “page”
- [cosmetic] “release_calendar” reworded the description of “coverage”
- [cosmetic] “release_calendar” reworded the description of “from”
- [cosmetic] “release_calendar” reworded the description of “locale”
- [cosmetic] “release_calendar” reworded the description of “to”
- [cosmetic] “search_changes” reworded the description of “limit”
- [cosmetic] “search_changes” reworded the description of “locale”
- [cosmetic] “search_changes” reworded the description of “query”

### 2026-10-13 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (16)

### `list_changes` (~223 tokens)

List latest changes

List the newest published changes on AiSeek (verified changes in economy, markets, policy, technology, companies and science), newest first, 20 per page. Use it to see what is new; to look for a subject, company or country use search_changes, to browse a curated subject use list_topics, and for a digest use get_latest_brief. Parameters: start at page 0 and pass page + 1 while hasMore is true; locale only changes the language of headlines. Behavior: new changes appear as they are published, so page 0 can shift between calls; pages stop at 25 (500 changes). One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `page` (integer): Page number, from 0 (the newest 20); each page has 20 changes, up to page 25

Output parameters:

- `hasMore` (boolean): True when another page exists (pass page + 1)
- `items` (array): Up to 20 changes, newest first
- `page` (integer): The page returned, from 0

### `search_changes` (~264 tokens)

Search changes

Search published changes by words, ranked by relevance, best first, not by time. Use it to find changes about a company, country, subject or name; to browse what is newest use list_changes, for a curated subject use get_topic, for a company's profile use search_companies. Parameters: query is matched against headlines and summaries in the language of locale, so search in that language (a Chinese or Japanese query also matches simplified, traditional and Japanese forms of the same characters); limit trims the ranked list (1 to 25). Behavior: no match is an empty list, not an error; each result's id feeds get_change. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `limit` (integer): How many changes to return, 1 to 25, best match first; omit for the connection's default (10 unless set)
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `query` (string, required): Words to look for, 2 to 120 characters: a company, a country, a subject or a name, in any of the three languages

Output parameters:

- `items` (array): Matching changes, most relevant first; at most `limit`

### `get_change` (~307 tokens)

Get one change and its sources

Get one published change with its scores, main subject and every outlet that reported it (name, link, date, evidence level, role). Use it after list_changes, search_changes or get_topic to see who reported a change; for its receipts and what AiSeek knew earlier use get_change_history. Parameters: id is the change UUID from those tools, or the last part of an aiseek.dev/{locale}/signals/{id} link; locale translates headline and summary only, while source names and links are the same in every language. Behavior: scores and sources can grow as later reports arrive, so a second call may return more; quoted passages are never returned; a dossierId points to https://aiseek.dev/{locale}/stories/{dossierId}, which no tool returns; a withdrawn or unknown id is an error. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `id` (string, required): The change id: a UUID such as 3f2b8c1e-5a47-4d0e-9b6a-1c7e2d8f4a90, taken from the id of an item in list_changes, search_changes or get_topic; an unpublished id is an error
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `detectedAt` (string): ISO 8601 time AiSeek detected the change
- `dossierId` (string|null): Id of the in-depth dossier on this change, when one is published
- `effectiveAt` (string|null): ISO 8601 time the change takes effect, when it has one
- `id` (string): The change id
- `locales` (array): Languages the headline exists in (en, zh, ja)
- `primaryEntity`: The main company or subject
- `reportedAt` (string|null): ISO 8601 time the first source reported it, when known
- `scores` (object): AiSeek's scores for the change
- `signalType` (string): The kind of change
- `sources` (array): The sources that reported the change: names and links only, never quoted passages
- `summary` (string|null): Summary in the requested language
- `title` (string): Headline in the requested language
- `url` (string): The change's page on aiseek.dev

### `list_topics` (~236 tokens)

List topics

List AiSeek's published topics: curated subjects (a technology, an industry, a policy area) that group related changes, with their counts for the last 90 and 7 days and their newest change. Use it to browse by subject or category and to find a slug for get_topic; for free-text search use search_changes. Parameters: domain keeps topics that belong to that coverage domain among others (a topic can sit in several), e.g. TECHNOLOGY or ENERGY; omitted, the connection's default domain or every topic applies; locale translates names and descriptions. Behavior: every matching topic comes back in one list in AiSeek's own order (no paging); counts are computed live on each call. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `domain` (string): Only topics of this coverage domain; omit for the connection's default domain, or all domains when none is set
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `items` (array): Published topics in AiSeek's own order
- `url` (string): The topics page on aiseek.dev

### `get_topic` (~191 tokens)

Get one topic and its changes

Get one published topic and up to 50 of its published changes from the last 90 days, most relevant first. Use it after list_topics to read what is happening in a subject; for words that are not a topic use search_changes, for the newest changes overall list_changes. Parameters: slug is the topic's slug exactly as list_topics returns it; locale changes names and headlines. Behavior: a topic with no recent change returns its profile and an empty list; an unknown slug is an error. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `slug` (string, required): The topic slug (lower case letters, digits and hyphens), taken from list_topics

Output parameters:

- `changes` (array): Up to 50 of the topic's published changes from the last 90 days, most relevant first
- `topic` (object): The topic
- `url` (string): The topic's page on aiseek.dev

### `list_countries` (~236 tokens)

List countries

List every country and territory AiSeek places changes in, with its name, its number of published changes in the last 7 days and its Change Heat on the last day. Use it to get all country codes at once or to see which countries have news; for heat details and seven-day series use get_country_heat, for what happened in one place get_earth_view. Parameters: domain counts only changes of one coverage domain (falls back to the connection's default); locale changes the country names. Behavior: about 180 entries in one answer, most changes first, then by code; a country with no change has heat null, not 0; Free keys see at most 7 days. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `domain` (string): Count only changes of this coverage domain; omit for the connection's default domain, or all domains when none is set
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `asOf` (string): The last day (UTC, YYYY-MM-DD) the counts were computed for
- `countries` (array): Every country and territory AiSeek places changes in, most changes first
- `days` (integer): The window the counts cover, in days (7, or the plan's cap when smaller)

### `get_country_heat` (~383 tokens)

Get country Change Heat

Get SeekEarth's Change Heat per country: how much verified change each country had against its own recent normal, 0 to 100, where 50 is an ordinary day; it measures change, never danger or instability. Use it to see where things are changing; for all country codes use list_countries, for the changes themselves search_changes, for one place at one moment get_earth_view. Parameters: country (e.g. jp or JP) narrows the answer to one country, otherwise the 60 hottest come back; days sets the window, e.g. 1 for today against normal or 30 for a month; domain (e.g. MARKETS) counts one coverage domain. Behavior: a days value above the plan's cap (Free 7, Pro 30, Intelligence and Developer 90) is cut to the cap without an error, and days/maxDays in the answer show what was used; heat is computed once a day (asOf); changes with no single country are left out. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code, e.g. JP or US, upper or lower case; omit for every country (the 60 hottest)
- `days` (integer): Window in days, 1 to 90 (default 7); capped by the key's plan: Free 7, Pro 30, Intelligence and Developer 90
- `domain` (string): Only changes of this coverage domain; omit for the connection's default domain, or all domains when none is set
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `asOf` (string): The last day (UTC, YYYY-MM-DD) the heat was computed for
- `countries` (array): Countries by heat, highest first (at most 60), or the one country asked for
- `days` (integer): The window used, after the plan's cap
- `map` (string): The SeekEarth page on aiseek.dev for this view
- `maxDays` (integer): The longest window the plan allows
- `method` (string): Short name of the method version used to compute Change Heat

### `list_scheduled_events` (~354 tokens)

List scheduled events

List scheduled decisions and releases in a time range, in time order: central-bank decisions, statistics, earnings, rule effective dates, comment deadlines, trade measures, filings, meetings, votes, launches and speeches. Use it for what is coming or has just passed; for what has already happened and been reported use list_changes or search_changes. Parameters: from and to are UTC times such as 2026-11-01T00:00:00Z; for one week ask from a Sunday 00:00Z to the next Sunday; without them the range is one day ago to 31 days ahead; to must follow from by at most 400 days; domain keeps one coverage domain. Behavior: times are UTC; tracked releases give the previous reading and, once out, the new one (never a forecast); policy-rate figures are left out; how far ahead a plan sees is capped. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `domain` (string): Only events of this coverage domain; omit for the connection's default domain, or all domains when none is set
- `from` (string): Start of the range, ISO 8601 with a zone (e.g. 2026-10-15T00:00:00Z); default one day ago
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `to` (string): End of the range, ISO 8601 with a zone; default 31 days ahead; at most 400 days after `from`

Output parameters:

- `events` (array): Events in time order
- `from` (string): Start of the range, ISO 8601 UTC
- `page` (string): The calendar page on aiseek.dev
- `to` (string): End of the range, ISO 8601 UTC

### `search_companies` (~208 tokens)

Search companies

Search AiSeek's public companies by name, alias or ticker and return up to 10 matches, most active first, each with its slug, home country, listings and page url. Use it to find a company's slug for get_company; for news about a company use search_changes with its name. Parameters: query takes a name, alias or ticker in English, Chinese or Japanese (e.g. Toyota, トヨタ, 7203). Behavior: no match is an empty list, not an error; only companies with a public AiSeek page are searched. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `query` (string, required): A company name, alias or ticker, 2 to 80 characters, in any of the three languages

Output parameters:

- `items` (array): Up to 10 matching companies, most active first; empty when nothing matches

### `get_company` (~226 tokens)

Get a company profile

Get a company's AiSeek profile: name, home country, legal name, website, listings, description, recent published changes, the facts AiSeek states about it and its relations to other entities. Use it after search_companies. Do not use it to search by name (search_companies) or for news about the company (search_changes). Parameters: slug is the exact company slug from search_companies (e.g. toyota); locale changes names, descriptions and headlines. Behavior: a description from Wikipedia carries its link (CC BY-SA 4.0); filings are left out; an unknown slug is an error. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `slug` (string, required): The exact AiSeek company slug (lower case letters, digits and hyphens, e.g. toyota), taken from search_companies

Output parameters:

- `claims` (array): Facts AiSeek states about it
- `description` (string|null): A short description; one taken from Wikipedia carries its link (CC BY-SA 4.0)
- `entity` (object): The company
- `profile`: Legal name, website, reporting currency, headquarters country, description source
- `relations` (array): Its stated relations to other entities
- `securities` (array): The company's listings
- `signals` (array): Its recent published changes
- `url` (string): The company's page on aiseek.dev

### `get_latest_brief` (~235 tokens)

Get the latest brief

Get the latest brief: AiSeek's own summary of a period's changes, grouped by section, each item linking to its page. Use it for a digest; for the raw newest-first list use list_changes, for a subject get_topic or search_changes. Parameters: type DAILY (the default) covers the last UTC day, WEEKLY the last week plus its largest market moves and the coming week's events; locale picks that language's edition of the same brief (zh, en or ja). Behavior: 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. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `type` (string): DAILY (the default): one UTC day's changes; WEEKLY: the week's changes with market moves and the week ahead

Output parameters:

- `briefType` (string): DAILY or WEEKLY
- `date` (string): The day the brief covers, UTC, YYYY-MM-DD
- `id` (string): The brief id
- `locked` (boolean): True on a Free key for a brief younger than one day: only title and summary are given
- `nextDate` (string|null): The date of the next brief of this type
- `periodEnd` (string): End of the period, ISO 8601
- `periodStart` (string): Start of the period, ISO 8601
- `previousDate` (string|null): The date of the previous brief of this type
- `publishedAt` (string|null): When the brief was published, ISO 8601
- `sections` (array): The period's changes by section; empty while a Free key's brief is still locked
- `summary` (string|null): The brief's summary
- `title` (string): The brief's title
- `unlocksAt` (string): When a locked brief opens for Free, ISO 8601
- `url` (string): The brief's page on aiseek.dev

### `get_receipt` (~306 tokens)

Get an evidence receipt

Get one SeekTrace evidence receipt: the immutable record of how AiSeek assessed one claim (class FACT, SUPPORTED or HYPOTHESIS, statuses, valid time, evidence links and digests, independence counts, parent receipt, sha256 digest). 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 the stored record is unchanged use verify_receipt. Parameters: id is a receipt id from get_change_history (receipts[].id), never a change id; pass the same id to verify_receipt; locale translates only the notice, the record itself is language-neutral. Behavior: a receipt never changes once written (a revision is a new receipt with this one as parent); only public receipts are readable, on every plan; withheld source links are counted in redactedEvidence. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `id` (string, required): The receipt id: a UUID such as 7d1e4a52-0c3b-4f68-a9d2-5e8b1c6f3a07, taken from receipts[].id in the get_change_history result; only public receipts can be read
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `notice` (string): A reminder that a receipt is not a certificate of truth, in the requested language
- `receipt` (object)
- `redactedEvidence` (integer)

### `verify_receipt` (~310 tokens)

Verify an evidence receipt

Verify a receipt: recompute its digest from the stored record and report ok, digestMatches, canonicalForm, columnsMatch, evidenceRowsMatch and any problems. ok true means the 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 citing a receipt, after get_receipt has shown what it says; it does not return the content. Parameters: id is the receipt id you read with get_receipt (receipts[].id from get_change_history), never a change id; locale translates only the notice. Behavior: the check runs live on every call; problems name the failing part (DIGEST_MISMATCH, NOT_CANONICAL, COLUMN_MISMATCH:<field>, EVIDENCE_ROWS_MISMATCH, PAYLOAD_UNREADABLE); an unknown or non-public id is an error. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `id` (string, required): The receipt id: a UUID such as 7d1e4a52-0c3b-4f68-a9d2-5e8b1c6f3a07, taken from receipts[].id in the get_change_history result; only public receipts can be read
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `canonicalForm` (boolean)
- `checkedAt` (string)
- `columnsMatch` (boolean)
- `digestMatches` (boolean)
- `evidenceRowsMatch` (boolean)
- `notice` (string): A reminder that a receipt is not a certificate of truth, in the requested language
- `ok` (boolean)
- `payloadDigest` (string)
- `problems` (array)
- `receiptId` (string)

### `get_change_history` (~431 tokens)

Get a change's evidence history

Get how AiSeek's evidence record for one published change developed: its receipts per claim, newest first, each naming its parent so the revision chain reads from the list, and the change as first published when the plan reaches that date. 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; for today's view use get_change. Parameters: id is the change id; known_at adds the change as known at that moment, e.g. 2026-10-08 (a date alone means 00:00 UTC) or 2026-10-08T12:00:00Z; it must not be in the future and must fall within the plan's window (Free 7 days, Pro 30, Intelligence 90, Developer 180). Behavior: history starts the day SeekTrace began, before which the answer says precision EXISTENCE_ONLY; old headline text is not kept. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `id` (string, required): The change id: a UUID such as 3f2b8c1e-5a47-4d0e-9b6a-1c7e2d8f4a90, the same id get_change takes, from list_changes or search_changes
- `known_at` (string): An earlier moment to read the change as of: an ISO 8601 date or date-time with a zone (e.g. 2026-10-08 or 2026-10-08T12:00:00Z), not in the future and not before the plan's window (Free 7 days back,…
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `asKnownAt`: The change as known at `known_at`; null when no `known_at` was given
- `changeId` (string): The change id asked about
- `receipts` (object): The change's receipts per claim, newest first, and how it looked when first published when the plan reaches that

### `list_corrections` (~268 tokens)

List recent corrections

List public corrections about published content, newest first: changes taken down, and changes or dossiers whose evidence was corrected and is under review or was resolved in the last 30 days. Use it to check whether something you read earlier was corrected or to audit AiSeek's error record. Do not use it for one change's evidence history (get_change_history) or new changes (list_changes). Parameters: limit counts corrections from the newest (1 to 50, default 20 or the connection's default); there is no paging, so ask for 50 to see the whole window; locale translates titles. Behavior: nothing is withdrawn automatically: a correction flags what depends on the corrected evidence for review; the window reaches back as far as the plan's (Free 7 days to Developer 180); titles appear only where they may be shown. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `limit` (integer): How many corrections to return, 1 to 50, newest first; omit for the connection's default (20 unless set)
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)

Output parameters:

- `hasMore` (boolean)
- `items` (array)
- `nextCursor` (string|null)
- `url` (string): The corrections page on aiseek.dev
- `windowDays` (integer)

### `get_earth_view` (~479 tokens)

Get SeekEarth at a place and moment

Get SeekEarth for one place and moment: the published changes placed there, the Change Heat of its countries, and the Earth's layer items in force (disaster alerts, cyclones, official warnings, conflict, outbreaks, river levels and more), each with its nature and source to credit. Use it for where-and-when questions; for heat across all countries use get_country_heat, for the country list list_countries, for changes by subject search_changes. Parameters: give country, or lat with lon and a radius_km circle; at sets the moment and days the window before it; mode NOW reads today's knowledge of those days, KNOWN what readers could see at the time; layers narrows the Earth layers. Behavior: at most 30 changes, most important first; in KNOWN mode changes withdrawn since are only counted (withdrawnLater); a place is required. One call of the key's quota (Free keys have a daily MCP cap); a rejected argument costs nothing.

Input parameters:

- `at` (string): The moment to read, ISO 8601 date or date-time with a zone (default now); not in the future and within the plan's reach
- `country` (string): ISO 3166-1 alpha-2 country code, e.g. JP; give either this or lat and lon
- `days` (integer): Window in days before `at`, 1 to 180 (default 7); capped by the key's plan
- `lat` (number): Latitude of the place in degrees (with lon); the place is a circle of radius_km around it
- `layers` (array): Which Earth layers to include (e.g. gdacs, nhc, jma, ucdp, aftershock); omit for every event layer
- `locale` (string): Language of headlines, summaries and notices in the answer: en, zh or ja; omit for the connection's default language (en unless set)
- `lon` (number): Longitude of the place in degrees (with lat)
- `mode` (string): NOW (default): today's knowledge of the window; KNOWN: what readers could see at `at`
- `radius_km` (number): Radius of the circle around lat and lon, 10 to 3000 km (default 500)

Output parameters:

- `at` (string): The moment read, ISO 8601 UTC
- `changes` (array): Published changes placed there in the window, most important first (at most 30); knownAfter and wordingChangedLater mark NOW-only differences
- `days` (integer): The window in days, after the plan's cap
- `events` (array): Items of the Earth's layers in force there (disasters, warnings, forecasts, conflict, displacement, outbreaks, power plants...), each with its layer's nature and source
- `from` (string): Start of the window, ISO 8601 UTC, after the plan's cap
- `heat` (array): Change Heat of the place's countries on the UTC day of `at`
- `maxDays` (integer): The longest window the plan allows
- `mode` (string): KNOWN: what readers could see at `at`; NOW: today's knowledge of the same days
- `place` (object): The place asked about: {country} or {lat, lon, radiusKm}
- `sources` (array): Where each layer comes from and how to credit it
- `url` (string): The SeekEarth page on aiseek.dev for this place
- `withdrawnLater` (integer): KNOWN only: changes readers could see then that have been withdrawn since (counted, never shown)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/dev-aiseek-aiseek/api-v1-mcp#diagnostics

## Score history

- 2026-11-05: 75
- 2026-11-04: 75
- 2026-11-03: 74
- 2026-11-02: 74
- 2026-11-01: 73
- 2026-10-31: 73
- 2026-10-30: 73
- 2026-10-29: 73
- 2026-10-28: 73
- 2026-10-27: 73
- 2026-10-26: 73
- 2026-10-25: 73
- 2026-10-24: 73
- 2026-10-23: 73
- 2026-10-22: 73
- 2026-10-21: 73
- 2026-10-20: 73
- 2026-10-19: 77
- 2026-10-18: 77
- 2026-10-17: 77
- 2026-10-16: 76
- 2026-10-15: 76
- 2026-10-14: 76
- 2026-10-13: 76
- 2026-10-12: 75
- 2026-10-10: 74
- 2026-10-09: 74

## Common questions

### What is the AiSeek MCP server?

AiSeek is an MCP server listed in the public MCP registry as dev.aiseek/aiseek. Verified world changes with sources: topics, companies, countries, SeekEarth and evidence receipts. This page covers its hosted endpoint (https://aiseek.dev/api/v1/mcp).

### Is the AiSeek MCP server safe to use?

AiSeek scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the AiSeek MCP server expose?

AiSeek exposes 16 tools: list_changes, search_changes, get_change, list_topics, get_topic, and 11 more. Their descriptions and schemas cost roughly 4,657 tokens of context every time the server is loaded.

### Does the AiSeek MCP server require authentication?

No. We connected to AiSeek without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the AiSeek MCP server still maintained?

AiSeek is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the AiSeek MCP server?

VerifyMCP ran 13 checks on AiSeek, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://aiseek.dev/api/v1/mcp
- Authorisation metadata: https://aiseek.dev/.well-known/oauth-protected-resource/api/v1/mcp
- Website: https://aiseek.dev/en/developers#mcp
- Changelog RSS feed: https://verifymcp.io/servers/dev-aiseek-aiseek/api-v1-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/dev-aiseek-aiseek/api-v1-mcp/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/dev-aiseek-aiseek/api-v1-mcp.json
- HTML version of this page: https://verifymcp.io/servers/dev-aiseek-aiseek/api-v1-mcp
