pypi thinchainstdioMITupdated 3mo ago
The catalytic converter between raw broker data and your AI trading agent.
O que dá para fazer com thinchain?
ThinChain
The catalytic converter between raw broker data and your AI trading agent.
Battle-tested. Sanitization logic extracted from a production options trading app. Handles every bad tick Tradier has thrown at us in production.

☁️ Moving to production?
The open-source server runs locally with your own API keys. For hosted infrastructure with multi-broker failover, SLA guarantees, and webhook alerts — join the managed cloud waitlist.
The Problem
Tradier's MCP dumps 500-row JSON chains. One bad print can corrupt an agent's reasoning. ThinChain sanitizes, compresses, and circuit-breaks that data before it reaches your model.
Installation
git clone https://github.com/snipmcp/thinchain.git
cd thinchain
pip install -e ".[dev]"
cp .env.example .env
Or with Docker:
docker-compose up --build
Configuration
TRADIER_API_KEY=your_key_here
TRADIER_BASE_URL=https://api.tradier.com/v1
POLYGON_API_KEY=your_key_here
POLYGON_BASE_URL=https://api.polygon.io
DEFAULT_BROKER=tradier
CACHE_TTL_SECONDS=30
LOG_LEVEL=INFO
Usage
Three example prompts to send to Claude (or any MCP-compatible agent):
Use get_compressed_chain to get an iron condor setup on SPY expiring 2026-06-19Check if SPY options data is trustworthy before I place my tradeGet me the ATM straddle strikes for AAPL expiring 2026-06-19
Run it in two terminals
# Tab 1 — start the MCP server
python -m thinchain.server
# Tab 2 — call a tool from a Python shell or your MCP client
# Tool signatures:
# get_compressed_chain(symbol, expiration, strategy="raw",
# delta_range=None, broker="tradier")
# get_sanitized_quote(symbol, broker="tradier")
# get_circuit_status(symbol, expiration, broker="tradier")
How it works
Three layers between raw broker output and your model:
Broker API → [Sanitize] → [Compress] → [Circuit Break] → MCP Tool → AI Agent
hygiene strategy anomaly gate
rules slicing + cache
- Sanitize: Drops ghost quotes (0.0/0.0), inverted spreads, NaN/empty/dash values, clamps deltas to [-1, 1], normalizes positive theta on long options, flags illiquid strikes.
- Compress: Slices the chain to only the strikes relevant to your strategy (iron condor, straddle, etc.) — typically 95%+ token reduction.
- Circuit Break: Four-tier data quality (
clean/noisy/degraded/circuit_breaker_active). When >65% of rows are anomalous, refuses to serve stale data and falls back to last known-good cache.
Real numbers from a live SPY iron condor (2026-06-19 expiration)
RAW TRADIER PAYLOAD THINCHAIN OUTPUT
─────────────────────────────────────────────
Rows: 482 Rows: 25
Est tokens: 38,560 Est tokens: 2,000
Token savings: 95%
Anomalous rows removed: 217
Data quality: noisy → still safely served
ThinChain compresses 482 rows / 38,560 tokens down to 25 rows / 2,000 tokens — and flags 217 anomalous strikes (illiquid, ghost quotes, wide spreads) that would have polluted the agent's context.
Roadmap
- Managed cloud tier (hosted, multi-tenant, webhook alerts)
- Polygon connector hardening (live SIP feed)
- Webhook alerts for circuit breaker trips
Contributing
PRs welcome. Run pytest before submitting.
Instalação
Adicione thinchain ao seu cliente. Escolha o que você usa.
claude mcp add thinchain -- uvx thinchaincodex mcp add thinchain -- uvx thinchainamp mcp add thinchain -- uvx thinchain{
"mcpServers": {
"thinchain": {
"command": "uvx",
"args": [
"thinchain"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"thinchain": {
"command": "uvx",
"args": [
"thinchain"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"thinchain","command":"uvx","args":["thinchain"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"thinchain": {
"command": "uvx",
"args": [
"thinchain"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"thinchain": {
"command": "uvx",
"args": [
"thinchain"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"thinchain": {
"command": "uvx",
"args": [
"thinchain"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"thinchain": {
"type": "local",
"command": "uvx",
"args": [
"thinchain"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"thinchain": {
"command": {
"path": "uvx",
"args": [
"thinchain"
]
}
}
}
}Add to your Zed `settings.json`.
uvx thinchainRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Pontuação
39 / 100
Incompleta
- Documentação22/25
- Manutenção13/25
- Confiança16/20
- Capacidade0/15
- Instalação12/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 102 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
Histórico de versões
| Versões | Publicada |
|---|---|
| 0.1.1Mais recente | 22 de mai. de 2026 |