protogrid

Search / io.stockdrifts/mcp

StockDrifts

R1· needs a key

Rated 13F funds with average buy prices, company KPIs, Japan investor ratings, Korea insider buys.

v1.29.0 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds STOCKDRIFTS_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality79good
Trust100of 100
Uptime, 30 days100%
Latency p50516 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "stockdrifts": {
      "type": "http",
      "url": "https://mcp.stockdrifts.io/mcp/",
      "headers": {
        "Authorization": "Bearer ${STOCKDRIFTS_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http stockdrifts https://mcp.stockdrifts.io/mcp/ --header "Authorization: Bearer ${STOCKDRIFTS_TOKEN}"
[mcp_servers.stockdrifts]
url = "https://mcp.stockdrifts.io/mcp/"
bearer_token_env_var = "STOCKDRIFTS_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "stockdrifts": {
      "type": "remote",
      "url": "https://mcp.stockdrifts.io/mcp/",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:STOCKDRIFTS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "stockdrifts": {
      "type": "http",
      "url": "https://mcp.stockdrifts.io/mcp/",
      "headers": {
        "Authorization": "Bearer ${STOCKDRIFTS_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=stockdrifts&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnN0b2NrZHJpZnRzLmlvL21jcC8iLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtTVE9DS0RSSUZUU19UT0tFTn0ifX0%3D"
}
{
  "servers": {
    "stockdrifts": {
      "type": "http",
      "url": "https://mcp.stockdrifts.io/mcp/",
      "headers": {
        "Authorization": "Bearer ${STOCKDRIFTS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "stockdrifts": {
      "httpUrl": "https://mcp.stockdrifts.io/mcp/",
      "headers": {
        "Authorization": "Bearer ${STOCKDRIFTS_TOKEN}"
      }
    }
  }
}
extensions:
  "stockdrifts":
    enabled: true
    name: "stockdrifts"
    type: streamable_http
    uri: "https://mcp.stockdrifts.io/mcp/"
    headers:
      "Authorization": "Bearer ${STOCKDRIFTS_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${STOCKDRIFTS_TOKEN}. The registry never accepts secret values.

Quality 79 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_leaderboard_kr (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_investor_sector_exposure_us (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_kpi (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 6,124 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

32 tools, about 6,124 tokens to load them all · tool set 35997325851b · checked 2026-10-20 16:30 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 100 / 100

provenance100
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-100% +updated-15d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.stockdrifts.io/mcp/ streamable-httpapi_key ${STOCKDRIFTS_TOKEN}yes100%516 ms2025-11-252026-10-20

Tools (32)

get_insider_summary_jpPre-aggregated shareholding summary for one JP ticker
get_insider_summary_krPre-aggregated insider summary for one KR ticker
get_investor_catalyst_record_usOne fund's binary-event track record per sector, with best/worst calls The fund's record of holding names through binary events (price-defined single-day moves — readouts/FDA/buyouts in biotech, earnings/M&A elsewhere; not verified cause labels): one row per sector bucket, the 'all' rollup first, each with hits, blowups, hit rate, dollar-weighted impact, and the five best and worst resolved calls. 404 means the fund had no scored events in the window, not that it is a bad fund.
get_investor_changes_usQoQ position diff for one investor between two periods
get_investor_holdings_usLatest 13F holdings for one investor (or for a specific period)
get_investor_sector_exposure_usSector-exposure history for one investor (newest quarter first) Per-quarter portfolio composition by sector for one 13F filer, including the biotech tier and top biotech positions. Use it to see whether a fund was already a sector specialist in earlier quarters, or how its sector mix is shifting. `unclassified_pct` reports how much top-50 value had no sector tag.
get_kpiLatest normalized KPI snapshot for one ticker
get_plan_executions_krCross-reference one D005 plan against its actual executions
list_convergence_jpJP tickers with multiple distinct investors filing on the same name
list_insider_filings_jpShareholding-report filings for one JP ticker
list_insider_trades_krInsider trades for one KR ticker
list_investor_filings_jpAll JP filings made by one investor (EDINET code)
list_investor_periods_usAll 13F periods on file for one investor
list_leaderboard_jpTop JP investors by star rating + avg return
list_leaderboard_krTop KR insiders by historical avg return on their buys
list_opportunities_jpRecent JP BUY/INITIAL filings whose price hasn't moved much yet
list_opportunities_krRecent KR open-market BUYs whose price hasn't moved much yet
list_plans_krKR pre-disclosure (D005) plans — announced but not yet executed trades
list_recent_filings_jpRecent JP filings across all tickers
list_recent_trades_krRecent KR insider trades across all tickers
list_ticker_holders_usInvestors with `ticker` in their top-50 positions, sorted by position size Returns 13F filers that hold `ticker` **as one of their 50 largest positions**, scoped to the most recent reporting period by default. Only top-50 positions per investor are surfaced — smaller positions are not included. Pass an explicit `period` to query a different quarter.
list_top_buys_jpTop JP tickers by aggregated insider buying over a window
list_top_buys_krTop KR tickers by aggregated insider buying over a window
list_top_sells_jpTop JP tickers by aggregated insider selling over a window
list_top_sells_krTop KR tickers by aggregated insider selling over a window
screen_holdings_usScreen 13F holdings by period, ticker, value, and rating; returns each matched fund with only the position(s) that matched Results are wrapped in an envelope: `results` holds up to `limit` funds (max 500), `total_count` is the full server-side match count, and `truncated` says whether paging with `offset` would surface more. `period` accepts '2026-Q2' or an ISO date like '2026-06-30'.
screen_insidersScreen insider activity by country, date, value, role, and ticker Screens one market per call, selected by `country`: 'KR' returns individual insider transactions, 'JP' returns 5%+ shareholding reports. The response echoes `country` — switch on it before reading `results`, since the two markets return different record shapes. There is no US coverage; use the 13F screen for US institutional flows.
screen_investor_catalyst_record_usScreen funds by their track record on binary events (any sector) Ranks 13F filers by how their positions resolved through binary events — single-day moves >= ~25%, price-defined, NOT verified cause labels. In biotech these are trial readouts / FDA decisions / buyouts; elsewhere earnings blowups, guidance cuts, M&A. `sector='all'` (default) ranks across everything; `'biotech'` and lowercased sector names ('technology', 'energy', ...) scope the record. `hit_rate` = pops held / events decided; `impact_usd` is dollar-weighted (position value x event return). Always pass `min_events` (>= 5) — a perfect rate on 2 events is noise. Chain with `get_investor_holdings_us` to see what a proven event-caller is buying now, or `screen_investor_sector_exposure_us` to intersect with sector specialists.
screen_investor_sector_exposure_usScreen investors by sector concentration (e.g. top biotech specialists) Ranks 13F filers by the share of their portfolio in one sector, computed from sector-tagged top-50 holdings. `tier` buckets: specialist (>=60%), heavy (30-60%), tilted (10-30%), minimal (<10%). Interpretation caveats: corporate venture arms (Gilead, Pfizer, GSK) and single-stock endowments (e.g. Lilly Endowment holds only LLY) rank as specialists — pass `min_positions` (e.g. 5) to screen for genuinely diversified sector pickers. Chain with `get_investor_holdings_us` / `get_investor_changes_us` to see what a specialist is buying now.
search_companies_jpSearch JP companies by stock_code, Japanese name, or English name
search_companies_krSearch KR companies by stock_code, Korean name, or English name
search_investors_usFuzzy-search investors by name; resolves to CIKs ordered by AUM Case-insensitive partial-name match against the latest-holdings view. Returns the largest funds first so the most likely match is at the top. Use this to resolve a manager name to a CIK before calling investor-axis tools (`get_investor_holdings_us`, `list_investor_periods_us`, `get_investor_changes_us`).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.stockdrifts/mcp",
  "title": "StockDrifts",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.stockdrifts.io/mcp/",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer <your StockDrifts API key>. Create one at https://app.stockdrifts.io/settings/api-keys"
        }
      ]
    }
  ],
  "version": "1.29.0",
  "repository": {
    "url": "https://github.com/Stockdrifts/stockdrifts-mcp",
    "source": "github"
  },
  "websiteUrl": "https://www.stockdrifts.io/api-docs",
  "description": "Rated 13F funds with average buy prices, company KPIs, Japan investor ratings, Korea insider buys."
}