AI-Powered Signals for Prediction Markets

NodusAI MCP Server
AI-Powered Signals for Prediction Markets — accessible to any AI agent via MCP.
AI agents connect to this server to get Oracle signals for Polymarket and Kalshi prediction markets. Signals are generated by Gemini 2.5 Flash with real-time web grounding.
How it works
Agent → nodusai.app → connect wallet → pay $1 USDC → get session token
↓
Agent → MCP Server (nodus_get_signal) → nodusai.app/api/prediction → signal
- Visit nodusai.app and connect your wallet
- Paste a Polymarket or Kalshi market URL
- (Optional) Add your desired outcome (YES / NO)
- Pay $1 USDC — confirmed on-chain
- Get a session token good for 3 queries
- Use the session token with
nodus_get_signalin any MCP client
Payment model
- Cost: $1 USDC = 3 Oracle signal queries
- Networks: Base, Ethereum, Avalanche (any EVM chain)
- Token: USDC
- Non-custodial: payments go directly on-chain via nodusai.app
- Session: one payment = one session token = 3 queries (24h validity)
Available tools
| Tool | Description |
|---|---|
nodus_pricing |
View pricing and how to get a session token |
nodus_get_signal |
Get an Oracle signal using your session token |
nodus_verify_signal |
Audit grounding sources of a past signal |
nodus_query_history |
Your recent query history |
nodus_admin_stats |
Platform-wide stats (admin) |
nodus_admin_queries |
Full query registry dump (admin) |
Signal format
Every Oracle response follows NodusAI's structured schema:
{
"market_name": "Will the Fed cut rates in June 2026?",
"predicted_outcome": "YES",
"probability": 0.73,
"confidence_score": "HIGH",
"key_reasoning": "Recent FOMC minutes and inflation data suggest...",
"grounding_sources": [
{ "title": "Reuters: Fed signals rate path", "url": "https://..." },
{ "title": "AP: CPI data June 2026", "url": "https://..." }
]
}
Deploy in 5 minutes
Option 1 — Railway (recommended)
- Fork this repo on GitHub
- Go to railway.app → New Project → Deploy from GitHub repo
- Select your fork
- Add environment variable:
NODUSAI_API_BASE=https://nodusai.app - Railway auto-detects
railway.jsonand deploys - Copy your Railway URL
Option 2 — Render (free tier)
- Fork this repo
- Go to render.com → New Web Service → connect your fork
- Set Build command:
npm installand Start command:node src/server-http.js - Add env var:
NODUSAI_API_BASE=https://nodusai.app
Option 3 — Fly.io
fly launch --name nodusai-mcp
fly secrets set NODUSAI_API_BASE=https://nodusai.app
fly deploy
Connect AI agents
Claude Desktop
File: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"nodusai": {
"url": "https://nodusai-mcp-production.up.railway.app/sse"
}
}
}
Cursor
File: ~/.cursor/mcp.json
{
"mcpServers": {
"nodusai": {
"url": "https://nodusai-mcp-production.up.railway.app/sse",
"transport": "sse"
}
}
}
Windsurf
File: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"nodusai": {
"serverUrl": "https://nodusai-mcp-production.up.railway.app/sse"
}
}
}
Claude Code (CLI)
claude mcp add --transport sse nodusai https://nodusai-mcp-production.up.railway.app/sse
Custom JS agent
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const client = new Client({ name: "my-agent", version: "1.0.0" }, { capabilities: {} });
await client.connect(new SSEClientTransport(new URL("https://nodusai-mcp-production.up.railway.app/sse")));
// Step 1 — get a session token at https://nodusai.app ($1 USDC)
// Step 2 — query the Oracle
const result = await client.callTool({
name: "nodus_get_signal",
arguments: {
marketUrl: "https://polymarket.com/event/...",
sessionToken: "your-session-token-from-nodusai.app",
desiredOutcome: "YES", // optional
}
});
Custom Python agent
from mcp.client.sse import sse_client
from mcp import ClientSession
async with sse_client("https://nodusai-mcp-production.up.railway.app/sse") as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Get a session to
Tools (6)
nodus_pricingView pricing and how to get a session tokennodus_get_signalGet an Oracle signal using your session tokennodus_verify_signalAudit grounding sources of a past signalnodus_query_historyYour recent query historynodus_admin_statsPlatform-wide stats (admin)nodus_admin_queriesFull query registry dump (admin)Environment Variables
NODUSAI_API_BASErequiredThe base URL for the NodusAI API (e.g., https://nodusai.app)Configuration
{"mcpServers": {"nodusai": {"url": "https://nodusai-mcp-production.up.railway.app/sse"}}}