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/mcpConnect 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/mcpClaude 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_recordTool reference
list_reportsFree · no authParams: asset_class?, status?, date?, limit? (1–200, default 50)
Returns: { total, returned, reports[], disclaimer } — Snapshot metadata per edition.
search_reportsFree · no authParams: query (required), limit?
Returns: Same shape as list_reports, filtered by instrument name or ticker.
get_reportFree · no authParams: date (YYYY-MM-DD), slug (e.g. BTC)
Returns: Snapshot metadata + snapshotText + short-lived snapshotPdfUrl + proAvailable.
get_track_recordFree · no authParams: (none)
Returns: { stats, open[], scored[], calibration, disclaimer }.
get_pro_reportOAuth + ProParams: 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.
- Connect to
https://www.assetframe.co.uk/api/mcpwith an OAuth-capable client (Claude Desktop, Cursor, or any client viamcp-remote). - The client discovers our OAuth endpoints from
/.well-known/oauth-protected-resourceand/.well-known/oauth-authorization-server. Dynamic Client Registration is enabled, so there is nothing to pre-register. - When you call
get_pro_report, the client opens a sign-in window. Sign in with the AssetFrame account that holds your Pro subscription. - 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
confidencevalue (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-recordcan 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.