# BeliefState (remote · beliefstate.ai)

Stock research and investor research for trading agents. 16 x402 tools; data from 0.02 USDC on Base.

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

## Components

- remote · `beliefstate.ai`: 40/100, [markdown](https://verifymcp.io/servers/ai-beliefstate-investor-research/beliefstate.md), [page](https://verifymcp.io/servers/ai-beliefstate-investor-research/beliefstate)
- remote · `beliefstate.ai`: 68/100 (this document), [markdown](https://verifymcp.io/servers/ai-beliefstate-investor-research/v1-research-mcp.md), [page](https://verifymcp.io/servers/ai-beliefstate-investor-research/v1-research-mcp)

## Channel facts

- Endpoint: `https://beliefstate.ai/v1/research/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.3`

## 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**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 2 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - 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**: 54/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2826 tokens (~157/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 37/100
  - Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 78/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 22% of tool parameters carry a description.
  - Structured output schemas are declared (89% 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 18 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

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

BeliefState is a hosted endpoint at https://beliefstate.ai/v1/research/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 ai-beliefstate-investor-research 'https://beliefstate.ai/v1/research/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "ai-beliefstate-investor-research": {
      "url": "https://beliefstate.ai/v1/research/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ai-beliefstate-investor-research": {
      "type": "http",
      "url": "https://beliefstate.ai/v1/research/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.ai-beliefstate-investor-research]
url = "https://beliefstate.ai/v1/research/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-beliefstate-investor-research": {
      "type": "remote",
      "url": "https://beliefstate.ai/v1/research/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-beliefstate-investor-research --url 'https://beliefstate.ai/v1/research/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-beliefstate-investor-research:
    url: "https://beliefstate.ai/v1/research/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "ai-beliefstate-investor-research": {
      "Transport": "http",
      "Url": "https://beliefstate.ai/v1/research/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add ai-beliefstate-investor-research -t streamable-http -u 'https://beliefstate.ai/v1/research/mcp'
```

### Other

```json
{
  "mcpServers": {
    "ai-beliefstate-investor-research": {
      "type": "http",
      "url": "https://beliefstate.ai/v1/research/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-05 (score 68, +1)

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

### 2026-11-03 (score 67, +1)

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

### 2026-11-01 (score 66, +1)

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

### 2026-10-30 (score 65, +1)

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

### 2026-10-29 (score 64, 0)

- [security] Tool “get_brief” rewrote its description, which is the text the model reads
- [cosmetic] “get_brief” reworded the description of “detail”

### 2026-10-28 (score 64, +1)

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

### 2026-10-26 (score 63, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-25 (score 62)

First indexed and scored.

## MCP tools (18)

### `get_belief_risks` (~209 tokens)

Read structured risks

Read evidence-linked Risk objects for exactly one ticker, entity, Belief or explicit released corpus. Filter by person, source, publication dates, status or severity. Unknown assessments remain unknown; an empty high-severity filter does not prove no material risks. Current briefs include attached open risks, continuing materialized risks and separately marked unknown concerns; no implicit age or severity cutoff. Follow signed pagination with identical filters. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string)
- `corpus` (string)
- `cursor` (string)
- `entity_id` (string)
- `limit` (integer)
- `object_status` (string)
- `person_id` (string)
- `published_from` (string)
- `published_through` (string)
- `severity` (string)
- `source_id` (string)
- `ticker` (string)

### `get_belief_catalysts` (~185 tokens)

Read structured catalysts

Read evidence-linked Catalyst objects with qualified current status or explicit unknowns. Filter one ticker, entity, Belief or released corpus by person, source, publication dates or status. Current briefs include pending and unassessed attached catalysts; met, missed and superseded records remain available here. Follow signed pagination with identical filters. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string)
- `corpus` (string)
- `cursor` (string)
- `entity_id` (string)
- `limit` (integer)
- `object_status` (string)
- `person_id` (string)
- `published_from` (string)
- `published_through` (string)
- `source_id` (string)
- `ticker` (string)

### `get_author_track_record` (~166 tokens)

Read author track record

Read an investor's stored publication-based outcome cohorts over one explicit ticker, entity, Belief or released corpus scope and optional source/publication window. Includes losses, pending and ineligible counts, preserves action/price/horizon cohorts and verified exits. Historical source completeness remains unknown. This read buys no new market data. Narrow scopes exceeding the supported bound. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string)
- `corpus` (string)
- `entity_id` (string)
- `person_id` (string, required)
- `published_from` (string)
- `published_through` (string)
- `source_id` (string)
- `ticker` (string)

### `search_beliefs` (~240 tokens)

Search investment ideas

Find investment ideas by thesis, topic or trade setup, with cited matching passages. Per-call x402 price: 1.50 USDC on Base.

Input parameters:

- `as_of` (string)
- `changed_since` (string): Find initial research, author revisions, condition checks/plans or released outcomes becoming available after this cutoff. Keeps author dates and stance separate from system activity. Release changes…
- `cursor` (string): Use next_cursor for another page of the same search.
- `direction` (string)
- `entity_id` (string): Released subject ID returned by search_entities.
- `limit` (integer): Requested page size. For ticker/entity belief lists, MCP returns up to twelve complete summaries within its response budget; pagination.limit is the effective size. Continue with next_cursor and the…
- `person_id` (string)
- `q` (string): Thesis, topic or trade setup. Required on the first page.
- `status` (string)
- `ticker` (string)
- `time_horizon` (string)

### `get_belief` (~213 tokens)

Read investment case

Read a requested complete investment case or evidence beyond a brief, with risks, conditions and coverage gaps. An ordinary library overview can use get_brief without opening each case. Use paragraph_index only when it appears in the returned investment_case; follow support/text offsets. Records without investment_case return their full claims and citations without paragraph selectors. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string, required)
- `paragraph_index` (integer): Read exact source support only for a paragraph_index present in the returned investment_case. Records without investment_case do not support this selector. Requires belief_id. Continue with returned…
- `support_index` (integer): Source support within the selected paragraph; defaults to 0. Use next_support_index for another passage.
- `support_text_offset` (integer): UTF-16 offset within the selected supporting passage; defaults to 0. Use next_text_offset to continue its text.

### `compare_beliefs` (~148 tokens)

Compare investment ideas

Compare two cited investment cases for support, contradiction or dependency, including explicit unknown and unrelated outcomes. Optional comparison_focus selects a public research topic within both complete cases; the result applies to that topic only. Shared-source provenance does not establish research independence. Per-call x402 price: 0.50 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string, required)
- `compare_to_belief_id` (string, required)
- `comparison_focus` (string): Optional public research topic or proposition to compare within both complete cases. Supply a topic, not a desired relation, private portfolio information or instructions. Other relations in the case…

### `get_brief` (~435 tokens)

Research brief

Start with overview for an ordinary company or ETF research question, including outlook and changes. Present findings in plain language with named investors, dated source links and important gaps; include record IDs and field names when requested for verification or export. Use detail=current for up to three current Beliefs, each with up to three attached risks and three pending or unassessed catalysts, evidence URLs, timestamps, material qualifications and explicit unknowns. Open risks and materialized risks with supported continuing relevance qualify; no implicit severity or age cutoff. Selection reserves opposing views then distinct stances and recency. The 32 KiB current response reports whole-case omissions, quality gaps and pagination; it is not complete coverage. Full opens machine export. Historical reads preserve their cutoff. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `cursor` (string)
- `detail` (string): Current returns up to three reviewed current Beliefs with up to three Risks and three Catalysts each, direct evidence URLs, clocks and explicit unknowns under 32KiB. Attached open Risks or materializ…
- `entity_id` (string): Released subject ID returned by search_entities.
- `max_results` (integer): Maximum returned views. Overview returns at most five (default five); larger valid requests are capped at five with explicit returned and omitted counts. Full supports 1–20. Omit for an ordinary over…
- `ticker` (string)

### `get_beliefs` (~243 tokens)

List investment ideas

List dated investment ideas for a requested inventory or filtered research on one ticker or subject. Investor, direction and time filters are optional. An ordinary overview uses get_brief; listing the same research afterward is unnecessary unless the user needs additional cases. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `changed_since` (string): Find initial research, author revisions, condition checks/plans or released outcomes becoming available after this cutoff. Keeps author dates and stance separate from system activity. Release changes…
- `cursor` (string)
- `direction` (string)
- `entity_id` (string): Released subject ID returned by search_entities.
- `limit` (integer): Requested page size. For ticker/entity belief lists, MCP returns up to twelve complete summaries within its response budget; pagination.limit is the effective size. Continue with next_cursor and the…
- `person_id` (string)
- `status` (string)
- `ticker` (string)
- `time_horizon` (string)

### `search_entities` (~119 tokens)

Find research subjects

Find released companies, industries, themes and other research subjects by name or kind. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `cursor` (string)
- `kind` (string)
- `limit` (integer): Requested page size. For ticker/entity belief lists, MCP returns up to twelve complete summaries within its response budget; pagination.limit is the effective size. Continue with next_cursor and the…
- `q` (string)

### `get_belief_changes` (~198 tokens)

Research changes

Read a mixed, ordered change journal: author-view revisions, distribution changes and calculated publication outcomes are separate domains with distinct clocks. Use belief_id for changes to one case and inspect each event's domain. Use get_brief for a current synthesis; continuation is for requested journal history or polling. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string)
- `changed_since` (string)
- `checkpoint` (string)
- `corpus` (string)
- `cursor` (string)
- `domain` (string)
- `entity_id` (string)
- `event_kind` (string)
- `limit` (integer)
- `person_id` (string)
- `resync` (boolean)
- `revision_only` (boolean)
- `source_id` (string)
- `ticker` (string)

### `get_context_assessment` (~65 tokens)

Read context assessment

Open a dated engine context assessment and its permitted evidence. Engine analysis is separate from an investor's stated view. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `context_assessment_id` (string, required)

### `list_research_visuals` (~102 tokens)

List research visuals

List cited charts and tables for one investment case or context assessment. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string)
- `context_assessment_id` (string): Open a neutral engine context assessment returned by a brief or ordered change. It is not an author Belief.
- `visual_offset` (integer): Continue saved visual descriptors using next_visual_offset.

### `get_research_visual` (~194 tokens)

Read research visual

Read one cited chart or table, including its regions and paginated exact rows or data points. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string)
- `context_assessment_id` (string): Open a neutral engine context assessment returned by a brief or ordered change. It is not an author Belief.
- `region_id` (string): Use a region_id returned in the selected visual's regions to retrieve structured data.
- `region_offset` (integer): Continue a selected visual's region descriptors using next_region_offset.
- `row_limit` (integer): Rows or chart points per read; defaults to 50, maximum 100.
- `row_offset` (integer): Zero-based starting row or chart-point index in the selected region.
- `visual_id` (string, required): Saved visual ID returned by list_research_visuals.

### `get_belief_relationships` (~98 tokens)

Inspect case relationships

Inspect cited relationship paths within one investment case. Preserves stated links, engine inferences and unknowns. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string, required)
- `edge_budget` (integer, required)
- `from_entity_id` (string, required)
- `max_depth` (integer, required)
- `to_entity_id` (string)

### `evaluate_belief_scenario` (~76 tokens)

Test case assumptions

Apply up to eight hypothetical condition assumptions to a case's recorded scenario model. Does not alter evidence or predict the investor's response. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `as_of` (string)
- `belief_id` (string, required)
- `scenario` (object, required)

### `refresh_market_data` (~67 tokens)

Refresh market context

Explicitly refresh missing or stale market data for one current company or subject, then return its research brief. Per-call x402 price: 0.02 USDC on Base.

Input parameters:

- `entity_id` (string): Released subject ID returned by search_entities.
- `ticker` (string)

### `get_tickers` (~24 tokens)

Free research coverage and company discovery.

Input parameters:

- `as_of` (string)

### `search_companies` (~44 tokens)

Free research coverage and company discovery.

Input parameters:

- `q` (string, required): Search the current SEC company directory by ticker or name, independently of direct research coverage. Omit as_of.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ai-beliefstate-investor-research/v1-research-mcp#diagnostics

## Score history

- 2026-11-05: 68
- 2026-11-04: 67
- 2026-11-03: 67
- 2026-11-02: 66
- 2026-11-01: 66
- 2026-10-31: 65
- 2026-10-30: 65
- 2026-10-29: 64
- 2026-10-28: 64
- 2026-10-27: 63
- 2026-10-26: 63
- 2026-10-25: 62

## Common questions

### What is the BeliefState MCP server?

BeliefState is an MCP server listed in the public MCP registry as ai.beliefstate/investor-research. Stock research and investor research for trading agents. 16 x402 tools; data from 0.02 USDC on Base. This page covers its hosted endpoint (https://beliefstate.ai/v1/research/mcp).

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

BeliefState scores 68 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 BeliefState MCP server expose?

BeliefState exposes 18 tools: get_belief_risks, get_belief_catalysts, get_author_track_record, search_beliefs, get_belief, and 13 more. Their descriptions and schemas cost roughly 2,826 tokens of context every time the server is loaded.

### Does the BeliefState MCP server require authentication?

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

### Is the BeliefState MCP server still maintained?

BeliefState 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.

## Links

- Remote endpoint: https://beliefstate.ai/v1/research/mcp
- Repository: https://github.com/Antcolombo/beliefstate-agent-integrations
- Website: https://docs.beliefstate.ai/guides/mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/ai-beliefstate-investor-research/v1-research-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-beliefstate-investor-research/v1-research-mcp.json
- HTML version of this page: https://verifymcp.io/servers/ai-beliefstate-investor-research/v1-research-mcp
