Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

claude mcp add coinopai -- npx -y coinopai-mcp

Summary

forgemeshlabs/coinopai-mcp MCP server](https://glama.ai/mcp/servers/forgemeshlabs/coinopai-mcp/badges/score.svg)](https://glama.ai/mcp/servers/forgemeshlabs/coinopai-mcp) πŸ“‡ - Local stdio MCP server for x402-powered paid crypto intelligence: preflight...

Connect from your MCP client

One-click install

Add this server to your editor with a single click. Fill in any required credentials afterward.

Claude Code

Run this once and Claude Code registers the server for you:

claude mcp add coinopai -- npx -y coinopai-mcp

Claude Desktop

Add this to claude_desktop_config.json under Settings β†’ Developer β†’ Edit Config:

{
  "mcpServers": {
    "coinopai": {
      "command": "npx",
      "args": [
        "-y",
        "coinopai-mcp"
      ],
      "env": {
        "WALLET_PRIVATE_KEY": "<WALLET_PRIVATE_KEY>"
      }
    }
  }
}

Cursor

Add this to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):

{
  "mcpServers": {
    "coinopai": {
      "command": "npx",
      "args": [
        "-y",
        "coinopai-mcp"
      ],
      "env": {
        "WALLET_PRIVATE_KEY": "<WALLET_PRIVATE_KEY>"
      }
    }
  }
}

Cline and other MCP clients

Most MCP clients accept the standard mcpServers JSON block:

{
  "mcpServers": {
    "coinopai": {
      "command": "npx",
      "args": [
        "-y",
        "coinopai-mcp"
      ],
      "env": {
        "WALLET_PRIVATE_KEY": "<WALLET_PRIVATE_KEY>"
      }
    }
  }
}

Codex CLI

Register the server with OpenAI's Codex CLI β€” run this once, or add the equivalent block to ~/.codex/config.toml:

codex mcp add coinopai --env WALLET_PRIVATE_KEY=<WALLET_PRIVATE_KEY> -- npx -y coinopai-mcp

# or add to ~/.codex/config.toml:
[mcp_servers.coinopai]
command = "npx"
args = ["-y", "coinopai-mcp"]
[mcp_servers.coinopai.env]
WALLET_PRIVATE_KEY = "<WALLET_PRIVATE_KEY>"

OpenClaw

OpenClaw reads MCP servers from the mcp.servers section of ~/.openclaw/openclaw.json (managed via `openclaw mcp add` or the mcporter skill):

{
  "mcp": {
    "servers": {
      "coinopai": {
        "command": "npx",
        "args": [
          "-y",
          "coinopai-mcp"
        ],
        "env": {
          "WALLET_PRIVATE_KEY": "<WALLET_PRIVATE_KEY>"
        }
      }
    }
  }
}

Replace the <PLACEHOLDER> values with your own credentials β€” see the configuration table below.

Configuration

coinopai-mcp reads the following environment variable:

VariableRequired
WALLET_PRIVATE_KEYRequired

README.md

coinopai-mcp

![npm version](https://www.npmjs.com/package/coinopai-mcp) ![npm downloads](https://www.npmjs.com/package/coinopai-mcp) ![License: MIT](LICENSE) ![Node.js](https://nodejs.org) ![payments](https://x402.org) ![network](https://base.org)

Auditable market context with calibrated forecast ranges and outcome verification.

Source: https://github.com/forgemeshlabs/coinopai-mcp

An MCP server that lets AI agents buy Kronos market context with x402 micropayments on Base. Kronos is not a buy/sell oracle: it gives agents calibrated ranges, risk context, decision journals, and audit records they can verify.

This repo is the MCP client layer; paid intelligence is served from hosted CoinOpAI x402 endpoints.

Weak calls and wrong calls are shown too. That's the point.

Why Kronos Is Different

Most market APIs stop after returning a direction. Kronos leads with calibrated ranges and risk context, then assigns a decision_id so every decision can be audited against future market behavior.

The moat is the audit loop:

preflight -> decision -> audit

Trust the process less. Verify the record more.

---

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Claude Code / AI Agent         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚  MCP (stdio)
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        coinopai-mcp              β”‚
β”‚    npx coinopai-mcp              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚  HTTP + 402 payment header
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      x402.coinopai.com           β”‚
β”‚   Kronos intelligence API        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Coinbase x402 Facilitator      β”‚
β”‚   USDC settled on Base mainnet   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The agent calls a tool β†’ the MCP server receives an HTTP 402 β†’ automatically signs a USDC micropayment β†’ retries with the payment header β†’ data returned. Configure once, pay automatically from the configured low-balance wallet.

Current package: coinopai-mcp@1.2.10.

Settlement note: the MCP pins @x402/core and @x402/evm to 2.11.0 and signs EIP-3009 authorizations with a chain-aware timestamp. This avoids the Base RPC/facilitator clock-skew failure mode where a payment can be rejected as "authorization is not yet valid" or "valid before expired". Successful object responses include x402 settlement metadata under _payment, including the on-chain transaction hash when available.

---

The Auditable Loop ($0.27/cycle)

check_trade_preflight  ──→  get_crypto_decision  ──→  [wait 1h]  ──→  audit_trade_decision
       $0.05                      $0.15                                      $0.07

   Market state?             Directional context              Outcome record
   Cooldown context?         Confidence context               Direction held?
   Regime context?           + decision_id                    Verdict
   Data freshness?           + audit hint                     + pnl_pct

Every decision is self-verifying. The decision_id links the setup to the outcome. The audit fetches real market prices and produces a verdict. Nothing is hidden.

Current Status

Live

  • Model context
  • Risk assessment
  • Decision journaling
  • Outcome verification
  • Forecast: conformally-calibrated 80% price range (~0.80 empirical coverage)

Research

  • Directional edge: none demonstrated in backtest (~51% accurate) β€” the calibrated range is the validated product, not the direction
  • Forecast vs execution agreement analysis: collecting evidence

The calibrated forecast range is live and validated (conformal, ~0.80 coverage). Directional values are supporting context, not standalone trade instructions. Use them with the calibrated range, risk state, and audit record.

Directional Context

| Value | Meaning | |--------|---------| | Positive | Bullish model context | | Negative | Bearish model context | | 0.00-0.01 | Weak magnitude | | 0.01-0.03 | Moderate magnitude | | 0.03+ | Strong magnitude |

Directional values are supporting context, not guarantees, human recommendations, or standalone trade instructions. Use them with the calibrated range, risk state, and audit record.

---

Real Output

Step 1 β€” Preflight (BTC, $0.05) ``json { "allowed": true, "symbol": "BTC/USD", "market_state": "NORMAL", "signal_strength": "weak_or_mixed", "regime": "TREND", "cooldown_remaining_seconds": 0 } ``

Step 2 β€” Decision (BTC, $0.15) ``json { "symbol": "BTC/USD", "directional_bias": "upward", "confidence": 0.514, "compliance_mode": "market_intelligence_only", "regime": "TREND", "decision_id": "a3f8c1d2-9472-4dfe-b459-5df17b282614", "directional_edge": "none_demonstrated", "why_not_high": [ "Directional confidence is capped by observed historical accuracy, not boosted by signal magnitude." ], "next_step": "Call audit_trade_decision with this decision_id after 1h using window=1h" } ``

Step 3 β€” Audit (1h later, $0.07) ``json { "decision_id": "a3f8c1d2-9472-4dfe-b459-5df17b282614", "direction_held": true, "pnl_pct": 0.82, "verdict": "GOOD_DECISION" } ``

Audit verdicts include GOOD_DECISION, BAD_DIRECTION, NOISE, NO_ACTION_TAKEN, and PENDING. Kronos gets some right, gets some wrong, and exposes both through the same record.

Fresh audits can return pending_window until the evaluation window matures.

---

Tools

| Tool | What it does | Cost | Affiliate | |------|-------------|------|-----------| | check_trade_preflight | Gate check: market allowed, cooldown, regime, model context | $0.05 | βœ“ | | get_crypto_decision | Probabilistic decision journal + decision_id | $0.15 | βœ“ | | audit_trade_decision | Verify against real prices: verdict + PnL% | $0.07 | βœ“ | | get_crypto_signals | Model context for BTC, ETH, SOL, XRP, ADA | $0.05 | βœ“ | | get_crypto_signal_history | Up to 168h of context history for analysis | $0.05 | βœ“ | | get_crypto_forecast | Conformally-calibrated 80% price range (~0.80 empirical coverage) for BTC, ETH, SOL, XRP, ADA | $0.05 | βœ“ | | review_signal_anomaly | Score signal features for unusual conditions; returns review labels, drivers, and component scores | $0.07 | β€” | | get_crypto_risk | Market risk state and cooldown context | $0.02 | β€” | | search_agent_automations | Search 819 agent automation prompts | $0.01 | β€” | | get_agent_automation | Full prompt + workflow steps by slug | $0.01 | β€” | | list_automation_categories | All 35 automation categories with counts | $0.005 | β€” |

No API keys. No subscriptions. Pay per call in USDC.

---

Install

Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "coinopai": {
      "command": "npx",
      "args": ["-y", "coinopai-mcp"],
      "env": {
        "WALLET_PRIVATE_KEY": "0x<your-base-wallet-private-key>"
      }
    }
  }
}

Restart Claude Code. The tools appear automatically.

Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "coinopai": {
      "command": "npx",
      "args": ["-y", "coinopai-mcp"],
      "env": {
        "WALLET_PRIVATE_KEY": "0x<your-base-wallet-private-key>"
      }
    }
  }
}

Smithery

Not currently listed on Smithery. Use the npx install flow shown above until a verified public listing is live.

Developer smoke-test note

When testing the published package with an MCP stdio harness, do not launch npx coinopai-mcp@... from inside the coinopai-mcp source checkout. npm can prefer the local package context and fail before the temporary bin is available. Test from another directory, or install into a temp project and launch ./node_modules/.bin/coinopai-mcp.

Registry status

Prepared MCP Registry identity: io.github.forgemeshlabs/coinopai-mcp. Refresh the public directory submission after publishing this package so old clawdbotworker entries stop being canonical.

---

Get a Wallet

  1. Install Coinbase Wallet or any EVM wallet
  2. Switch to Base network
  3. Buy or bridge USDC ($1 = ~3 full verified cycles)
  4. Use a dedicated low-balance Base wallet for agent payments and provide its private key locally via environment variable.

Your wallet key stays local. It never leaves your machine. Each payment is a signed micropayment β€” not a blanket approval.

---

Agent Code Example

// Step 1 β€” gate check ($0.05)
const pre = await mcp.call("check_trade_preflight", { symbol: "BTC" })
if (!pre.allowed) return  // cooldown, bad regime, or stale data

// Step 2 β€” get decision journal ($0.15)
const dec = await mcp.call("get_crypto_decision", { symbol: "BTC" })

// Store the decision_id β€” you'll need it to close the loop
const { decision_id, directional_bias, confidence } = dec

// Optional β€” review a feature set for anomaly context ($0.07)
const anomaly = await mcp.call("review_signal_anomaly", {
  symbol: "BTC",
  window: "24h",
  features: {
    price_change: 0.018,
    volume_change: 0.42,
    volatility: 0.031,
    signal_confidence: 72,
    risk_score: 31
  }
})
// review_label: "normal_review" | "review" | "elevated_review" | "critical_review"

// Step 3 β€” audit 1 hour later ($0.07)
const audit = await mcp.call("audit_trade_decision", {
  decision_id,
  window: "1h"
})
// verdict: "GOOD_DECISION" | "BAD_DIRECTION" | "NOISE"
console.log(audit.verdict, audit.pnl_pct + "%")

Every decision response includes a next_step field β€” your agent always knows when and how to audit.

Symbol unavailable? If a symbol isn't in the current Kronos cycle: ``json { "status": "UNAVAILABLE_THIS_CYCLE", "available_symbols": ["BTC/USD", "ETH/USD", "XRP/USD"], "retry_hint_seconds": 900 } `` Route to an available symbol or wait 15 minutes for the next cycle.

---

Payment Stack

| Component | Value | |-----------|-------| | Protocol | x402 | | Scheme | ExactEvmScheme (EIP-3009 transferWithAuthorization) | | Network | Base mainnet (eip155:8453) | | Token | USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) | | Facilitator | Coinbase | | Client SDK pins | @x402/core@2.11.0, @x402/evm@2.11.0 | | Receipt metadata | Successful object responses include _payment |

---

Affiliate Attribution (via Pyrimid)

High-value tools accept an optional affiliate_id parameter. When provided, payment routes through the Pyrimid affiliate network β€” the affiliate earns a commission split from within the listed price. No extra cost to the caller.

How the split works

Direct call (no affiliate_id):
  Caller pays $0.15  β†’  CoinOpAI receives $0.15

Affiliate call (affiliate_id present):
  Caller pays $0.15  β†’  CoinOpAI: 79.2% ($0.1188)
                      β†’  Affiliate: 19.8% ($0.0297)
                      β†’  Protocol:   1.0% ($0.0015)

The buyer always pays the listed price. The split comes out of the vendor's portion.

Usage

Pass affiliate_id in any supporting tool call:

// As an agent or user
await mcp.call("get_crypto_decision", {
  symbol: "BTC",
  affiliate_id: "af_youraffiliateID"
})

Building a wrapper? Set it once via env

If you're building an agent framework, MCP wrapper, or automation that embeds CoinOpAI tools, set your affiliate ID as an environment variable. Every call through your wrapper earns you a commission automatically.

{
  "mcpServers": {
    "coinopai": {
      "command": "npx",
      "args": ["-y", "coinopai-mcp"],
      "env": {
        "WALLET_PRIVATE_KEY": "0x<agent-wallet-key>",
        "PYRIMID_AFFILIATE_ID": "af_<your-affiliate-id>"
      }
    }
  }
}

The tool-level affiliate_id argument takes precedence over the env var. Callers can always override.

Without an affiliate_id

Normal x402 flow β€” CoinOpAI receives 100% of the listed price. Nothing changes for the caller.

---

Disclaimer

Decision outputs are probabilistic context and journal entries for experimental automated workflows only. Not financial advice. Directional bias alone has not been validated as a standalone trading strategy. Results will vary. Never risk capital you can't afford to lose.

---

Part of the ForgeMesh Ecosystem

Infrastructure for monetized agent ecosystems.

| Package | What | Install | |---------|------|---------| | affiliate-router-mcp | Vendor-neutral monetization routing | npm i affiliate-router-mcp | | coinopai-mcp | Paid crypto intelligence (this package) | npm i coinopai-mcp | | forgemesh-imagegen | Paid image generation MCP | npm i forgemesh-imagegen |

Each package works standalone. No shared dependency required.

---

License

MIT β€” see LICENSE

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Search servers.