Skip to content

v0.3.0 - idx-mcp server, idx-core library, agent-native output

Choose a tag to compare

@0xrsydn 0xrsydn released this 14 Oct 20:05
· 110 commits to main since this release
386a63c

Highlights

  • New: idx-mcp, an MCP server. It serves the same market, financial and ownership data to MCP clients over stdio, through 11 tools: get_quotes, get_price_history, screen_stocks, get_company, analyze_stock, compare_stocks, get_shareholders, get_investor_holdings, search_investors, get_ownership_changes, ownership_status.
    • Install with claude mcp add idx -- npx -y idx-mcp, cargo install idx-mcp, or nix profile install github:0xrsydn/idx-cli#idx-mcp.
    • Live results come as {data, source, fetched_at, stale}.
    • Errors use the CLI's {error, code, message} body.
    • The server shares idx's config, cache and ownership database.
    • --allow-sync adds an ownership_sync tool.
  • Agent-native CLI output. idx now prints JSON when stdout is not a terminal, and tables when it is. Agents and scripts get structured data without flags. JSON is compact when piped. -o jsonl prints one record per line. No color codes appear when piped.
  • idx-core library. All data access, caching and analysis now live in a separate crate shared by idx and idx-mcp.

Breaking changes

  • Default output when piped is JSON. Use -o table, IDX_OUTPUT=table, or general.output = "table" to get tables back. A config created by idx config init before 0.3 pins output = "table"; run idx config set general.output auto to switch to the new behavior.

  • Exit codes by error class. Before 0.3, every error exited with 1.

    Exit Meaning
    2 invalid input or config
    3 not found, no data, or no cached data offline
    4 upstream unavailable; retry later
    5 unsupported
    1 other

CLI

  • stocks quote - and stocks compare - read symbols from stdin, separated by whitespace or commas. Example: idx stocks screen --filter high-dividend | jq -r '.[].symbol' | idx stocks compare -.
  • Financial statement line items come out in a stable order in JSON.
  • Fixed: tables with colored cells (signals, change types) had a ragged right border in terminals.

Ownership

  • Fixed: the IDX workbook stores the share code TRUE (TRINITI DINAMIK) as a boolean cell, so its holders were imported under ticker 1.
    • The published snapshot for 2026-09-30 has been rebuilt. The rebuild also corrects the bogus August→September changes for TRUE and 1.
    • With 0.3, idx ownership sync picks up the rebuild automatically.
    • On 0.2.x, run idx ownership sync --force once.
  • Sync now updates a database that is still byte-identical to an earlier build of the same snapshot. The manifest gains an optional replaces_sqlite_sha256 field, which older clients ignore. A database you imported or edited locally still needs --force.

Distribution

  • Release assets add idx-mcp-<platform> binaries next to idx-<platform>, all listed in SHA256SUMS.
  • New npm package idx-mcp, alongside idx-cli. New crates idx-core and idx-mcp.
  • Rust: idx builds with 1.85+, and idx-mcp needs 1.88+.

Verification

  • 143 golden outputs (every command in table and JSON, plus error cases) are unchanged except for the documented output-default and exit-code changes.
  • Live A/B checks against 0.2.4 match.
  • Each MCP tool's data equals the CLI's JSON.