Skip to content
AssetFrame

MCP server

Connect Claude Code, Claude Desktop, Cursor and other agents to AssetFrame over the Model Context Protocol.

The Model Context Protocol (MCP) lets AI clients call tools on a server. AssetFrame runs a hosted MCP server over Streamable HTTP, so any MCP-capable client can read the published research. Four of the five tools need no authentication; only get_pro_report requires an OAuth sign-in with a Pro subscription.

Endpoint

https://www.assetframe.co.uk/api/mcp

Connect your agent

Claude Code

One command — it registers the server over HTTP transport.

claude mcp add --transport http assetframe https://www.assetframe.co.uk/api/mcp

Claude Desktop

Settings → Developer → Edit Config, then add the server to claude_desktop_config.json and restart.

{
  "mcpServers": {
    "assetframe": {
      "type": "http",
      "url": "https://www.assetframe.co.uk/api/mcp"
    }
  }
}

Cursor

Settings → MCP → Add new server, or add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "assetframe": {
      "url": "https://www.assetframe.co.uk/api/mcp"
    }
  }
}

Perplexity & other clients (via mcp-remote)

For clients without a native HTTP transport, bridge through mcp-remote. This also drives the OAuth pop-up needed for the Pro tool.

{
  "mcpServers": {
    "assetframe": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.assetframe.co.uk/api/mcp"]
    }
  }
}

ChatGPT

ChatGPT doesn’t support generic MCP servers yet. Use the REST API with a Custom GPT Action and import our OpenAPI schema instead.

LangChain / SDK clients

Load the tools into any MCP-aware framework:

# LangChain / MCP adapters (Python)
from langchain_mcp_adapters.client import MultiServerMCPClient

client = MultiServerMCPClient({
    "assetframe": {"transport": "streamable_http", "url": "https://www.assetframe.co.uk/api/mcp"},
})
tools = await client.get_tools()  # list_reports, search_reports, get_report, get_track_record

Tool reference

list_reportsFree · no auth

Params: asset_class?, status?, date?, limit? (1–200, default 50)

Returns: { total, returned, reports[], disclaimer } — Snapshot metadata per edition.

search_reportsFree · no auth

Params: query (required), limit?

Returns: Same shape as list_reports, filtered by instrument name or ticker.

get_reportFree · no auth

Params: date (YYYY-MM-DD), slug (e.g. BTC)

Returns: Snapshot metadata + snapshotText + short-lived snapshotPdfUrl + proAvailable.

get_track_recordFree · no auth

Params: (none)

Returns: { stats, open[], scored[], calibration, disclaimer }.

get_pro_reportOAuth + Pro

Params: date (YYYY-MM-DD), slug

Returns: Full Pro analysis text + short-lived Pro PDF link. Requires OAuth + active Pro.

Sample response

// get_report → date: "2026-06-15", slug: "BTC"
{
  "id": "2026-06-15/BTC",
  "date": "2026-06-15",
  "instrument": "Bitcoin",
  "ticker": "BTC",
  "assetClass": "crypto",
  "status": "Wait",
  "risk": "High",
  "confidence": 60,
  "windowEnd": "2026-06-16T20:00:00Z",
  "snapshotText": "AssetFrame Snapshot — Bitcoin (BTC) ...",
  "snapshotPdfUrl": "https://.../free.pdf?X-Amz-Expires=600...",
  "proAvailable": true,
  "proAccess": "Subscribe at https://www.assetframe.co.uk/pricing to unlock the full Pro analysis.",
  "disclaimer": "AssetFrame publishes general market research ..."
}

Pro access (OAuth)

The four free tools return the Snapshot tier and never require sign-in. get_pro_report returns the full Pro analysis and is gated by the MCP Authorization spec — your client signs you in with your AssetFrame account and the server checks for a live Pro subscription.

  1. Connect to https://www.assetframe.co.uk/api/mcp with an OAuth-capable client (Claude Desktop, Cursor, or any client via mcp-remote).
  2. The client discovers our OAuth endpoints from /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server. Dynamic Client Registration is enabled, so there is nothing to pre-register.
  3. When you call get_pro_report, the client opens a sign-in window. Sign in with the AssetFrame account that holds your Pro subscription.
  4. The Pro tool then returns the full report text plus a short-lived Pro PDF link. Without an active subscription it returns a message pointing to /pricing.

Guidance for agents

If you are an AI agent presenting AssetFrame data to a user, follow these four rules.

Cite the source
Attribute figures to AssetFrame, name the instrument and the report date, and link the edition (https://www.assetframe.co.uk/reports/{date}/{slug}). Snapshot text and PDF links are the published record — quote them, don’t paraphrase numbers into new claims.
Treat confidence as calibrated, not a promise
The confidence value (0–100) is a calibrated estimate that is scored against the tape after the window closes. It is not a guarantee, a probability of profit, or a trade signal. Present it alongside the risk rating and the prediction window, never on its own.
Explain the ledger honestly
Every call registers falsifiable predictions before the session and is graded Hit / Miss / No-trigger afterwards. The ledger is append-only — rows are never edited or deleted — so the hit rate, streaks and calibration from /track-record can be verified rather than taken on trust.
Avoid investment-advice language
This is general market research and decision support, not regulated advice or a personal recommendation. Don’t tell the user to buy or sell, don’t imply guaranteed returns, and surface the disclaimer that ships in every payload.
AssetFrame publishes general market research and decision-support analysis. It is not investment advice and not a personal recommendation. We do not tell anyone to buy or sell. Markets are uncertain and you can lose money. No outcome is guaranteed. Do your own research and consider an FCA-authorised adviser. AssetFrame never places trades.