← All servers
B

Bullrun

warnings

mcp.bull-run.org

Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude

https://mcp.bull-run.org/mcpOAuthMCP 2025-11-25v0.3.0last checked 3 Sep 2026spoke MCP on 3 of 3 checks (30 days)initialize in 305 ms

Will my client connect?

Decided from what the probe found at the endpoint, and from what each client's own documentation says it can complete. Every row carries the day that documentation was read.

Claude CodeConnects with setup

The registration flow this server advertises is not one Claude Code documents, so register a client with the issuer yourself and give Claude Code the client ID.

claude mcp add --transport http --client-id <your-client-id> --client-secret --callback-port 8080 bullrun https://mcp.bull-run.org/mcp

Claude Code docs · read on 2026-08-30

Claude (claude.ai & Desktop)Connects with setup

The registration flow this server advertises is not one Claude (claude.ai & Desktop) documents, so register a client with the issuer yourself and give Claude (claude.ai & Desktop) the client ID.

Settings → Connectors → Add custom connector, then paste https://mcp.bull-run.org/mcp. Under Advanced settings, enter the OAuth Client ID and Secret the issuer gave you.

Claude (claude.ai & Desktop) docs · read on 2026-08-30

ChatGPTConnects

The authorization server supports Client ID Metadata Documents, so ChatGPT identifies itself by URL with no registration step.

Settings → Apps → Advanced settings → Developer mode, then create a connector pointing at https://mcp.bull-run.org/mcp.

ChatGPT docs · read on 2026-08-30

CursorConnects with setup

The registration flow this server advertises is not one Cursor documents, so register a client with the issuer yourself and give Cursor the client ID.

{
  "mcpServers": {
    "bullrun": {
      "url": "https://mcp.bull-run.org/mcp"
    }
  }
}

Cursor docs · read on 2026-08-30

VS Code (Copilot)Connects with setup

The registration flow this server advertises is not one VS Code (Copilot) documents, so register a client with the issuer yourself and give VS Code (Copilot) the client ID.

{
  "servers": {
    "bullrun": {
      "oauth": {
        "clientId": "<your-client-id>"
      },
      "type": "http",
      "url": "https://mcp.bull-run.org/mcp"
    }
  }
}

VS Code (Copilot) docs · read on 2026-08-30

How to authenticate

Checked against the endpoint by our probe on 3 Sep 2026. These are the capabilities the server advertises, not a prediction about any particular client.

Scheme
OAuth
Issuer
https://bull-run.org
Dynamic client registration
Not advertised
Client ID Metadata Document
Supported

A client identifies itself by a URL to its own metadata, so no registration step is required.

PKCE
S256
Grant types
authorization_code, client_credentials, refresh_token, urn:ietf:params:oauth:grant-type:device_code, urn:ietf:params:oauth:grant-type:token-exchange
Protected-resource metadata
Published (RFC 9728)
Anonymous access
Handshake succeeds; 30 tools listable
Credentials demanded in prose
analyze_portfolio_fit, list_portfolios, get_portfolio_context, get_portfolio_analytics, create_portfolio_draft, create_position_draft

These tools are listed anonymously and their own descriptions ask for an account or key, but no challenge is issued — so a client has nothing to act on and the refusal arrives as a tool error.

Documentation
https://mcp.bull-run.org

What the probe found

warningTools needing credentials are listed without a challenge

6 of the 30 tools listed anonymously say in their own descriptions that they need an account or a key (analyze_portfolio_fit, list_portfolios, get_portfolio_context, get_portfolio_analytics, create_portfolio_draft, create_position_draft), but the endpoint issued no WWW-Authenticate challenge. The requirement is stated only in prose, so a call reaches the tool and comes back as a tool error instead of an authorization step.

30 tools usable without signing in

The server exposes a public surface before authorization: screen_stocks, search_etfs, screen_etfs, get_etf_index_group, get_etf_fund, get_etf_filter_options, get_etf_snapshot, get_etf_holdings, get_etf_timeseries, get_etf_exposures, get_etf_risk, compare_etfs, analyze_etf_overlap, analyze_portfolio_fit, simulate_etf_cost, query_etfs, get_stock_metrics, get_financial_history, get_quality_moat_metrics, get_forward_estimates, get_operating_kpis, get_revenue_breakdown, get_earnings_call_transcript, list_portfolios, get_portfolio_context, get_portfolio_analytics, create_portfolio_draft, create_position_draft, create_portfolio_from_positions, get_capabilities.

Tools

analyze_etf_overlapanalyze_portfolio_fitcompare_etfscreate_portfolio_draftcreate_portfolio_from_positionscreate_position_draftget_capabilitiesget_earnings_call_transcriptget_etf_exposuresget_etf_filter_optionsget_etf_fundget_etf_holdingsget_etf_index_groupget_etf_riskget_etf_snapshotget_etf_timeseriesget_financial_historyget_forward_estimatesget_operating_kpisget_portfolio_analyticsget_portfolio_contextget_quality_moat_metricsget_revenue_breakdownget_stock_metricslist_portfoliosquery_etfsscreen_etfsscreen_stockssearch_etfssimulate_etf_cost

Contract history

2 Sep 2026v0.3.0first recorded contract

Get alerted when this contract changes

Depend on this server? Leave an email and get a message when a probe records a change — a tool removed, an argument newly required, an enum narrowed. Alerts are being built; signing up is what tells us to hurry.

Prefer a feed reader? This page's contract changes are also an Atom feed.

Own this server?

Sign in to claim this listing by proving control of its host.

Status badge

Status for a README, from the last probe — cached an hour, so up to seven hours behind the endpoint. Links back to this page.

MCP status badge for Bullrun
[![MCP status](https://mcpi.app/servers/bullrun/badge.svg)](https://mcpi.app/servers/bullrun)