{
  "markdown": "# CATALYST/EDGE\n\n<!-- mcp-name: io.github.rm0nroe/catalyst-edge-mcp -->\n\n![Abstract source-linked evidence ledger](assets/readme/catalyst-edge-social-preview.png)\n\nSource-linked market intelligence for AI agents.\n\nCatalyst Edge is a local, read-only [Model Context Protocol](https://modelcontextprotocol.io/)\nserver for public-company research. Ask an agent what changed for a ticker, why it\nmatters, what contradicts it, and which sources support the answer.\n\nIt combines direct SEC filings and ownership records with optional, policy-gated\nsources into a compact evidence dossier. Every result preserves its source links\nand missing-data warnings.\n\n**Local first.** Evidence and configuration stay on your machine. **Research only.**\nThe deterministic scorer is untrained and unbacktested; Catalyst Edge does not provide\ninvestment advice, trading signals, or execution.\n\n---\n\n## Install\n\nCatalyst Edge requires Python 3.10+ and [uv](https://docs.astral.sh/uv/).\nThe SEC requires an identifiable `User-Agent`; use your organization and a monitored\nemail address.\n\n### Codex\n\n```bash\ncodex mcp add catalyst-edge \\\n  --env 'CATALYST_EDGE_SEC_USER_AGENT=YOUR_ORGANIZATION YOUR_EMAIL' \\\n  --env 'CATALYST_EDGE_EVIDENCE_STORE=/absolute/local/path/evidence.sqlite3' \\\n  -- uvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-mcp\n```\n\nStart a fresh task and verify that Codex discovers these two tools:\n\n| Tool | Use |\n| --- | --- |\n| `catalyst_edge_score` | Return a compact catalyst-evidence dossier for a ticker. |\n| `catalyst_edge_claim_sources` | Page through the immutable source records behind a claim. |\n\n### Claude Desktop\n\nDownload [`catalyst-edge-mcp-0.1.8.mcpb`](https://github.com/rm0nroe/catalyst-edge-mcp/releases/download/v0.1.8/catalyst-edge-mcp-0.1.8.mcpb),\nthen choose **Settings → Extensions → Advanced settings → Install Extension…**.\nEnter the same SEC identity when prompted. The extension is an unsigned custom bundle;\nreview the source and published checksum before accepting Claude Desktop's warning.\n\n---\n\n## Use\n\nAsk your agent a focused research question, for example:\n\n> What changed for NVDA in the last 14 days? Include sources, missing evidence, and\n> anything that would weaken the conclusion.\n\nThe primary tool accepts a ticker, a 1–90 day lookback, source inclusion, and a\nresearch context:\n\n```json\n{\n  \"ticker\": \"NVDA\",\n  \"lookback_days\": 14,\n  \"include_sources\": true,\n  \"include_raw_signals\": false,\n  \"risk_mode\": \"research\"\n}\n```\n\n`risk_mode` also supports `alert_triage` and `thesis_review`. Ticker validation runs\nbefore any provider is composed; invalid inputs fail clearly rather than producing a\npartial score.\n\n### From a terminal\n\n```bash\n# Run the local stdio MCP server\nuvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-mcp\n\n# Get a dossier directly\nuvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-score NVDA --lookback-days 14\n```\n\n---\n\n## What it uses\n\n| Evidence | Default | Notes |\n| --- | --- | --- |\n| SEC filings and ownership records | Enabled with `CATALYST_EDGE_SEC_USER_AGENT` | Primary regulatory evidence. |\n| GDELT Web NGrams discovery | Enabled | Attributed, cache-only discovery metadata; set `CATALYST_EDGE_GDELT=disabled` to opt out. |\n| Issuer RSS/Atom feeds | Disabled | Enable explicitly with `CATALYST_EDGE_ISSUER_FEEDS=enabled`. |\n| Bluesky public attention | Disabled | Enable explicitly with `CATALYST_EDGE_BLUESKY=enabled`; it is incomplete, neutral-only context. |\n| Options, technicals, and sentiment | Disabled | Not composed without an approved, rights-cleared provider. |\n\nThe default evidence store is local SQLite at\n`~/.local/state/catalyst-edge-mcp/evidence.sqlite3`. Set\n`CATALYST_EDGE_EVIDENCE_STORE` to choose another local path.\n\n### Check local readiness\n\n```bash\nCATALYST_EDGE_SEC_USER_AGENT='YOUR_ORGANIZATION YOUR_EMAIL' \\\nuvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-smoke NVDA --lookback-days 14\n```\n\nThe smoke check reports sanitized configuration, provenance, coverage, and readiness\nstatus. It never prints credentials or provider payloads.\n\n---\n\n## How to read a result\n\nEach dossier includes a deterministic `score`, `direction`, `confidence`, source-linked\nevidence, missing or stale families, and next checks. `research.disposition` tells an\nagent whether to review the evidence now, monitor it, or report insufficient evidence;\nit prioritizes research only and is not a trade signal. `model_status` is always\n`not_trained` in this release. A neutral or no-data result is a valid answer: missing\nevidence is uncertainty, not bearish evidence.\n\nEvidence is compact by design. Use `catalyst_edge_claim_sources` with a claim ID to\nretrieve its paginated source records, including canonical URLs, timestamps, hashes,\nparsers, and policy decisions.\n\n```json\n{\n  \"ticker\": \"NVDA\",\n  \"edge\": {\"score\": 62, \"direction\": \"bullish\", \"confidence\": 0.69, \"scoring_method\": \"deterministic_v1\", \"model_status\": \"not_trained\"},\n  \"research\": {\"disposition\": \"review_now\", \"primary_claim_id\": \"clm_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\", \"supporting_claim_ids\": [], \"contradicting_claim_ids\": [], \"blocking_gaps\": [], \"next_action\": \"Open SEC accession 0001045810-26-000001 and review the filed item text and exhibits.\"},\n  \"data_quality\": {\"coverage\": \"partial\", \"missing_families\": [], \"warnings\": [\"Deterministic v1 scoring is not backtested.\"]}\n}\n```\n\n```json\n{\n  \"ticker\": \"NVDA\",\n  \"edge\": {\"score\": 50, \"direction\": \"neutral\", \"confidence\": 0, \"scoring_method\": \"deterministic_v1\", \"model_status\": \"not_trained\"},\n  \"research\": {\"disposition\": \"monitor\", \"primary_claim_id\": null, \"supporting_claim_ids\": [], \"contradicting_claim_ids\": [], \"blocking_gaps\": [\"options_flow\"], \"next_action\": \"Check whether a sector-wide event explains the observation.\"},\n  \"data_quality\": {\"coverage\": \"none\", \"missing_families\": [\"options_flow\"], \"warnings\": [\"options_flow provider yfinance is private diagnostic only; no production evidence or coverage credit was granted.\"]}\n}\n```\n\n```json\n{\n  \"ticker\": \"NVDA\",\n  \"edge\": {\"score\": 50, \"direction\": \"neutral\", \"confidence\": 0, \"scoring_method\": \"deterministic_v1\", \"model_status\": \"not_trained\"},\n  \"research\": {\"disposition\": \"insufficient_evidence\", \"primary_claim_id\": null, \"supporting_claim_ids\": [], \"contradicting_claim_ids\": [], \"blocking_gaps\": [\"filings_news\", \"insider_trading\", \"options_flow\", \"social\", \"technical\"], \"next_action\": \"Retry with lookback_days=30 to check a wider filing window.\"},\n  \"data_quality\": {\"coverage\": \"none\", \"missing_families\": [\"filings_news\", \"insider_trading\", \"options_flow\", \"social\", \"technical\"], \"warnings\": [\"No live evidence adapters are configured.\"]}\n}\n```\n\n---\n\n## Privacy\n\nResults and SQLite evidence remain on your machine. Ticker and issuer queries may be\nsent directly to whichever public-source providers you enable. The SEC identity is sent\nonly to `sec.gov` as its required request `User-Agent`.\n\nRead the [Catalyst Edge Privacy Policy](https://catalyst.ryanmonroe.ai/privacy.html).\n\n---\n\n## Build from source\n\n```bash\nuv sync --frozen --extra dev\nuv run --frozen pytest\nuv run --frozen ruff check .\nuv build --no-sources --out-dir dist\n```\n\nDefault tests are offline and use sanitized fixtures. The release workflow tests Python\n3.10 and 3.14, MCP contracts, a clean build, and the packaged artifact.\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 7356,
  "sha": "816dd4be06b68747b7ebcd8db414e25dc3f7df2d7769a0ff9f0890550f7fe111",
  "repo_slug": "rm0nroe/catalyst-edge-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_rm0nroe_catalyst_edge_mcp_83deafb8/readme"
}