Skip to content
LikeFolio.ai

MCP guide

The hosted MCP server exposes the same data as first-class agent tools — one config line in Claude, Cursor, ChatGPT, or any MCP client. Stateless Streamable HTTP; your normal API key authenticates it.

Setup

{
  "mcpServers": {
    "likefolio": {
      "url": "https://likefolio.ai/mcp/http",
      "headers": {
        "X-API-Key": "lf_your_key"
      }
    }
  }
}

Claude Code

claude mcp add --transport http likefolio https://likefolio.ai/mcp/http --header "X-API-Key: lf_your_key"

claude.ai and Claude Desktop

Settings → Connectors → Add custom connector, with the URL https://likefolio.ai/mcp/http?api_key=lf_your_key. The custom connector form has no header field today, so the query-param form is the supported path there; once our Connectors-directory listing is live, adding from the directory replaces this.

Cursor

Add the JSON above to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project). Keep the key out of committed files by referencing an env var: "X-API-Key": "${env:LIKEFOLIO_API_KEY}".

VS Code (Copilot)

Add to .vscode/mcp.json. VS Code's top-level key is servers, and an inputs block prompts for the key instead of committing it:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "likefolio-key",
      "description": "LikeFolio API key",
      "password": true
    }
  ],
  "servers": {
    "likefolio": {
      "type": "http",
      "url": "https://likefolio.ai/mcp/http",
      "headers": {
        "X-API-Key": "${input:likefolio-key}"
      }
    }
  }
}

Troubleshooting

Initialize works, tool calls 401. Some clients have dropped custom headers on follow-up POSTs (Claude Code issue #28293 is the known case). Workaround: authenticate in the URL instead with ?api_key=lf_your_key. The key then lives in URLs and logs, so rotate it from /console if it leaks.

GET /mcp/http returns 405. Expected: the server is stateless Streamable HTTP with no SSE stream to open. Clients speak POST.

403 on get_divergence_events. That tool needs a Quant-tier key. Fair-rejection rule: tier 403s (and malformed-parameter 400s) charge zero credits.

The same-credits rule

Every MCP tool call burns exactly the credits of its REST twin — one meter, one allowance, one rate card. Your console's request log tags MCP traffic separately so you can see the split.

Tools

ToolREST twinCreditsWhat it returns
get_scoresGET /v1/scores/{ticker}2Latest Main Street / Wall Street / LikeFolio Score for one ticker.
get_score_historyGET /v1/scores/{ticker}/history1Daily score history for one ticker. Depth is tier-bound and dates clamp silently to your floor.
screen_stocksGET /v1/screener2The whole universe, ranked by LikeFolio Score, filterable by score floor.
get_divergencesGET /v1/divergence3Today's widest Main Street vs Wall Street gaps, ranked, with researched why-now context on builder+.
get_divergence_eventsGET /v1/divergence/events10Dated divergence-extreme onsets with forward-return outcomes — the receipts log. Quant tier.
get_track_recordGET /v1/track-recordfreeThe public closed model-portfolio record — aggregate stats plus the dated per-trade list.
get_upcoming_earningsGET /v1/earnings100Covered names reporting soon, with the current demand read on each. Builder+ only.
get_dataset_infoGET /v1/metafreeMachine-readable data dictionary: fields, history depth, point-in-time vintages, restatement policy, license. Free to call.

Tool-level notes: screen_stocks clamps limit to 100 and get_divergences to 50 (agent-sized payloads). Every payload carries as_of dates and citation_urls — agents should cite them.

Where we're listed

The server publishes as ai.likefolio/consumer-demand in the official MCP Registry and the major directories (Smithery, Glama, PulseMCP, mcp.so). Machine-readable manifest: /.well-known/mcp.json.