pypi catalyst-edge-mcpstdioMITupdated 13d ago
Source-linked market intelligence for AI agents.
What can you do with Catalyst Edge Research?
CATALYST/EDGE

Source-linked market intelligence for AI agents.
Catalyst Edge is a local, read-only Model Context Protocol server for public-company research. Ask an agent what changed for a ticker, why it matters, what contradicts it, and which sources support the answer.
It combines direct SEC filings and ownership records with optional, policy-gated sources into a compact evidence dossier. Every result preserves its source links and missing-data warnings.
Local first. Evidence and configuration stay on your machine. Research only. The deterministic scorer is untrained and unbacktested; Catalyst Edge does not provide investment advice, trading signals, or execution.
Install
Catalyst Edge requires Python 3.10+ and uv.
The SEC requires an identifiable User-Agent; use your organization and a monitored
email address.
Codex
codex mcp add catalyst-edge \
--env 'CATALYST_EDGE_SEC_USER_AGENT=YOUR_ORGANIZATION YOUR_EMAIL' \
--env 'CATALYST_EDGE_EVIDENCE_STORE=/absolute/local/path/evidence.sqlite3' \
-- uvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-mcp
Start a fresh task and verify that Codex discovers these two tools:
| Tool | Use |
|---|---|
catalyst_edge_score |
Return a compact catalyst-evidence dossier for a ticker. |
catalyst_edge_claim_sources |
Page through the immutable source records behind a claim. |
Claude Desktop
Download catalyst-edge-mcp-0.1.8.mcpb,
then choose Settings → Extensions → Advanced settings → Install Extension….
Enter the same SEC identity when prompted. The extension is an unsigned custom bundle;
review the source and published checksum before accepting Claude Desktop's warning.
Use
Ask your agent a focused research question, for example:
What changed for NVDA in the last 14 days? Include sources, missing evidence, and anything that would weaken the conclusion.
The primary tool accepts a ticker, a 1–90 day lookback, source inclusion, and a research context:
{
"ticker": "NVDA",
"lookback_days": 14,
"include_sources": true,
"include_raw_signals": false,
"risk_mode": "research"
}
risk_mode also supports alert_triage and thesis_review. Ticker validation runs
before any provider is composed; invalid inputs fail clearly rather than producing a
partial score.
From a terminal
# Run the local stdio MCP server
uvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-mcp
# Get a dossier directly
uvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-score NVDA --lookback-days 14
What it uses
| Evidence | Default | Notes |
|---|---|---|
| SEC filings and ownership records | Enabled with CATALYST_EDGE_SEC_USER_AGENT |
Primary regulatory evidence. |
| GDELT Web NGrams discovery | Enabled | Attributed, cache-only discovery metadata; set CATALYST_EDGE_GDELT=disabled to opt out. |
| Issuer RSS/Atom feeds | Disabled | Enable explicitly with CATALYST_EDGE_ISSUER_FEEDS=enabled. |
| Bluesky public attention | Disabled | Enable explicitly with CATALYST_EDGE_BLUESKY=enabled; it is incomplete, neutral-only context. |
| Options, technicals, and sentiment | Disabled | Not composed without an approved, rights-cleared provider. |
The default evidence store is local SQLite at
~/.local/state/catalyst-edge-mcp/evidence.sqlite3. Set
CATALYST_EDGE_EVIDENCE_STORE to choose another local path.
Check local readiness
CATALYST_EDGE_SEC_USER_AGENT='YOUR_ORGANIZATION YOUR_EMAIL' \
uvx --from 'catalyst-edge-mcp==0.1.8' catalyst-edge-smoke NVDA --lookback-days 14
The smoke check reports sanitized configuration, provenance, coverage, and readiness status. It never prints credentials or provider payloads.
How to read a result
Each dossier includes a deterministic score, direction, confidence, source-linked
evidence, missing or stale families, and next checks. research.disposition tells an
agent whether to review the evidence now, monitor it, or report insufficient evidence;
it prioritizes research only and is not a trade signal. model_status is always
not_trained in this release. A neutral or no-data result is a valid answer: missing
evidence is uncertainty, not bearish evidence.
Evidence is compact by design. Use catalyst_edge_claim_sources with a claim ID to
retrieve its paginated source records, including canonical URLs, timestamps, hashes,
parsers, and policy decisions.
{
"ticker": "NVDA",
"edge": {"score": 62, "direction": "bullish", "confidence": 0.69, "scoring_method": "deterministic_v1", "model_status": "not_trained"},
"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."},
"data_quality": {"coverage": "partial", "missing_families": [], "warnings": ["Deterministic v1 scoring is not backtested."]}
}
{
"ticker": "NVDA",
"edge": {"score": 50, "direction": "neutral", "confidence": 0, "scoring_method": "deterministic_v1", "model_status": "not_trained"},
"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."},
"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."]}
}
{
"ticker": "NVDA",
"edge": {"score": 50, "direction": "neutral", "confidence": 0, "scoring_method": "deterministic_v1", "model_status": "not_trained"},
"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."},
"data_quality": {"coverage": "none", "missing_families": ["filings_news", "insider_trading", "options_flow", "social", "technical"], "warnings": ["No live evidence adapters are configured."]}
}
Privacy
Results and SQLite evidence remain on your machine. Ticker and issuer queries may be
sent directly to whichever public-source providers you enable. The SEC identity is sent
only to sec.gov as its required request User-Agent.
Read the Catalyst Edge Privacy Policy.
Build from source
uv sync --frozen --extra dev
uv run --frozen pytest
uv run --frozen ruff check .
uv build --no-sources --out-dir dist
Default tests are offline and use sanitized fixtures. The release workflow tests Python 3.10 and 3.14, MCP contracts, a clean build, and the packaged artifact.
License
Install
Add Catalyst Edge Research to your client. Pick the one you use.
claude mcp add catalyst-edge-mcp -- uvx catalyst-edge-mcpcodex mcp add catalyst-edge-mcp -- uvx catalyst-edge-mcpamp mcp add catalyst-edge-mcp -- uvx catalyst-edge-mcp{
"mcpServers": {
"catalyst-edge-mcp": {
"command": "uvx",
"args": [
"catalyst-edge-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"catalyst-edge-mcp": {
"command": "uvx",
"args": [
"catalyst-edge-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"catalyst-edge-mcp","command":"uvx","args":["catalyst-edge-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"catalyst-edge-mcp": {
"command": "uvx",
"args": [
"catalyst-edge-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"catalyst-edge-mcp": {
"command": "uvx",
"args": [
"catalyst-edge-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"catalyst-edge-mcp": {
"command": "uvx",
"args": [
"catalyst-edge-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"catalyst-edge-mcp": {
"type": "local",
"command": "uvx",
"args": [
"catalyst-edge-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"catalyst-edge-mcp": {
"command": {
"path": "uvx",
"args": [
"catalyst-edge-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
uvx catalyst-edge-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation21/25
- Maintenance25/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 6 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.8Latest | Aug 25, 2026 |
| 0.1.7 | Aug 25, 2026 |
| 0.1.5 | Aug 7, 2026 |
| 0.1.4 | Aug 5, 2026 |
| 0.1.3 | Aug 5, 2026 |
| 0.1.2 | Aug 5, 2026 |
| 0.1.1 | Aug 4, 2026 |