mcpField
E
Easy Predict

Easy Predict

Local
github.com/WilliamsRizziData & Analytics0Updated 18w ago

About Easy Predict

Easy Predict is an API for forecasting the next value in a numeric series and detecting outliers, aimed at agents and applications that need basic time-series analysis. Calls are paid individually with USDC on Base through x402.

Key features

  1. 01Next-value forecasting
  2. 02Model selection using holdout errors
  3. 03Z-score anomaly detection
  4. 04Optional context echoed in responses
  5. 05Pay per call with USDC on Base

Use cases

  1. 01Forecasting a numeric series
  2. 02Finding outliers in measured values

MCP support

Its local MCP server exposes prediction and anomaly-detection tools to MCP clients. It signs x402 payments on the device and sends the signed payment header to the API.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"easy-predict": {
"command": "uvx",
"args": [
"easy-predict-mcp"
],
"env": {
"WALLET_PRIVATE_KEY": "<WALLET_PRIVATE_KEY>"
}
}
}
}
Run commanduvx easy-predict-mcp
Environment variables to set
WALLET_PRIVATE_KEYSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypieasy-predict-mcp

Tools

2

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
contextstringNo
seriesarrayYes

Details

From the project README

easy-predict

Agent-first prediction and anomaly detection API. Send a list of numbers, get the next predicted value or a list of anomalous points. Paid per call via x402 v2 micropayments — $0.01 USDC on Base. No API keys, no accounts.

Live at easy-predict.com


Endpoints

MethodPathCostDescription
POST/timeseries$0.01 USDCPredict the next value in a numeric series
POST/anomaly-detection$0.01 USDCDetect anomalies via z-score
GET/.well-known/x402freex402 v2 resource discovery
GET/openapi.jsonfreeOpenAPI 3.1 spec
GET/llms.txtfreeHuman/agent-readable API docs
POST /timeseries
curl https://easy-predict.com/timeseries \
  -H "Content-Type: application/json" \
  -H "PAYMENT-SIGNATURE: <signed-x402-payload>" \
  -d '{"series": [1.0, 2.3, 4.1, 6.8, 9.2], "context": "monthly revenue USD"}'

Response:

{
  "prediction": 12.1,
  "method": "linear",
  "holdout_errors": {"linear": 0.05, "log1p-linear": 0.31, "last-delta": 0.05, "mean": 3.5},
  "slope": 1.94,
  "intercept": 0.12
}

Model selection: holds out the last point, evaluates linear, log1p-linear, last-delta, and mean against it, retrains the winner on the full series.

POST /anomaly-detection
curl https://easy-predict.com/anomaly-detection \
  -H "Content-Type: application/json" \
  -H "PAYMENT-SIGNATURE: <signed-x402-payload>" \
  -d '{"series": [1.0, 2.3, 4.1, 6.8, 99.0], "threshold": 2.0}'

Response:

{
  "anomalies": [{"index": 4, "value": 99.0, "z_score": 2.14}],
  "method": "z-score",
  "mean": 15.12,
  "std": 39.18,
  "threshold": 2.0
}

Both endpoints accept an optional "context" string (max 200 chars) echoed back in the response.


x402 payment flow

Omit the payment header to get a 402 with the full payment terms:

{
  "x402Version": 2,
  "error": "Payment Required",
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "10000",
    "payTo": "0xc99b83818c8865340AC55C45554f377f41c68DBC",
    "maxTimeoutSeconds": 60
  }]
}
  1. Parse accepts[0] from the 402 response
  2. Sign a payment payload with your wallet
  3. Base64-encode the signed JSON and retry with PAYMENT-SIGNATURE: <encoded>
  4. The Cloudflare Worker verifies via https://x402.org/facilitator and settles on-chain

Payment: 10000 atomic units = $0.01 USDC (6 decimals) on Base mainnet.


MCP server (Claude Desktop, Cursor, Windsurf)

The MCP server runs locally on your machine. Your wallet private key never leaves your device — it signs the x402 payment locally and only the signed header is sent to easy-predict.com.

Add to your MCP client config:

{
  "mcpServers": {
    "easy-predict": {
      "command": "uvx",
      "args": ["easy-predict-mcp"],
      "env": {
        "WALLET_PRIVATE_KEY": "0xYOUR_WALLET_PRIVATE_KEY"
      }
    }
  }
}

Then ask Claude: "Predict the next value for this series: 1.2, 2.4, 4.1, 6.8" — it calls the tool, pays $0.01 USDC from your wallet automatically, and returns the forecast.

Listed on Smithery — search easy-predict to install with one click.


Agent integration (Python)

A working Claude agent that handles the full 402 → sign → retry loop autonomously:

pip install anthropic requests eth-account
ANTHROPIC_API_KEY=sk-... WALLET_PRIVATE_KEY=0x... python examples/demo_agent.py

examples/demo_agent.py — uses Anthropic tool use. The same pattern works with LangChain, LlamaIndex, CrewAI, or AutoGen.

Demo mode (no wallet, against local server):

cd timeseries && python app.py &
ANTHROPIC_API_KEY=sk-... python examples/demo_agent.py

Architecture

  • Cloudflare Worker (src/index.ts) — edge runtime, rate limiting, full x402 verify+settle via the facilitator
  • Flask backend (timeseries/app.py) — Python prediction logic, local dev server
  • Static assets (public/) — splash page, openapi.json, llms.txt

The Worker handles all production traffic. The Flask app is used for local development and runs on port 8000.


Local development

pip install -r requirements.txt
cd timeseries && python app.py        # Flask on http://localhost:8000

The local Flask server uses presence-only payment checking — any non-empty PAYMENT-SIGNATURE header is accepted. Useful for testing without a real wallet.

For the Cloudflare Worker:

npm install
npx wrangler dev                      # Worker on http://localhost:8787

Repo structure

timeseries/app.py                        Flask backend (prediction + anomaly detection logic)
anomaly_detection/app.py                 Anomaly detection blueprint
src/index.ts                             Cloudflare Worker (edge runtime)
mcp_server/easy_predict_mcp/server.py   MCP server — runs locally, signs payments on device
mcp_server/pyproject.toml               PyPI package definition (easy-predict-mcp)
smithery.yaml                            Smithery registry config
public/
  index.html                             Splash page
  openapi.json                           OpenAPI 3.1 spec
  llms.txt                               Human/agent-readable docs
examples/
  demo_agent.py                          Claude agent integration demo with x402 payments
tests/                                   Test suite

Configuration

Flask backend env vars (all optional):

VariableDefaultDescription
PAY_TO_ADDRESS0xc99b...Recipient wallet
X402_ASSETUSDC on BaseERC-20 asset address
X402_NETWORKeip155:8453Chain ID
X402_MAX_AMOUNT10000Atomic units ($0.01)
FACILITATOR_URLhttps://x402.org/facilitatorx402 facilitator
PUBLIC_BASE_URLhttps://easy-predict.comBase URL for resource URLs in 402 responses

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.