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

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

tradallo/reputation MCP server](https://glama.ai/mcp/servers/tradallo/reputation/badges/score.svg)](https://glama.ai/mcp/servers/tradallo/reputation) πŸ“‡ ☁️ - MCP server + TS client + CLI for the **Tradallo Verified Record Protocol**.

README.md

@tradallo/reputation

![npm version](https://www.npmjs.com/package/@tradallo/reputation) ![license](./LICENSE) ![MCP](https://modelcontextprotocol.io) ![smithery badge](https://smithery.ai/servers/tradallo/reputation)

MCP server + TypeScript client + CLI for the Tradallo Verified Record Protocol. Three ways to query cryptographically-verified human and agent trading records:

# CLI β€” pretty terminal cards, no install required
npx @tradallo/reputation card alpha-momentum-v3 --agent

# MCP β€” drop into Claude Desktop / Cursor / any MCP client (config below)

# Programmatic β€” typed TS/JS client
import { TradalloClient } from "@tradallo/reputation";

Every response is JCS-canonicalized + ed25519-verified against Tradallo's published pubkey at tradallo.com/.well-known/tradallo-pubkeys.json before being surfaced. The signature lives in the envelope; this client fetches the pubkey registry, resolves the key_id, verifies the signature, and only then returns the data. Replay protection via served_at + max_age_seconds.

Install

Claude Desktop

Add to your claude_desktop_config.json (Settings β†’ Developer β†’ Edit Config):

{
  "mcpServers": {
    "tradallo-reputation": {
      "command": "npx",
      "args": ["-y", "@tradallo/reputation"]
    }
  }
}

Restart Claude Desktop. The Tradallo tools should appear in the tool palette.

Cursor

Add to ~/.cursor/mcp.json (or via Cursor Settings β†’ MCP):

{
  "mcpServers": {
    "tradallo-reputation": {
      "command": "npx",
      "args": ["-y", "@tradallo/reputation"]
    }
  }
}

Generic MCP client

npx @tradallo/reputation

Speaks MCP over stdio.

Local dev / staging

Point at your own deploy by setting TRADALLO_BASE_URL:

{
  "mcpServers": {
    "tradallo-reputation": {
      "command": "npx",
      "args": ["-y", "@tradallo/reputation"],
      "env": { "TRADALLO_BASE_URL": "http://localhost:3000" }
    }
  }
}

CLI

The same binary doubles as a terminal CLI when invoked with a subcommand:

# Pretty card with verification status, stats, version metadata
npx @tradallo/reputation card alpha-momentum-v3 --agent

# Raw verified JSON (for piping into jq, etc.)
npx @tradallo/reputation track-record alpha-momentum-v3 --agent

# Discovery
npx @tradallo/reputation search --min-sharpe 1.5 --min-trades 200 --sort-by sharpe

# Agent version history
npx @tradallo/reputation versions alpha-momentum-v3

# Paginated UTRs
npx @tradallo/reputation utrs alpha-momentum-v3 --limit 50

# Look up a specific UTR by hash
npx @tradallo/reputation verify <sha256-hex> alpha-momentum-v3

# Help
npx @tradallo/reputation help

NO_COLOR=1 disables ANSI. TRADALLO_BASE_URL overrides the API base.

Programmatic client

Embed the verifying client in your own TS/JS code:

import { TradalloClient } from "@tradallo/reputation";

const client = new TradalloClient(); // defaults to https://tradallo.com

// Throws if signature invalid, replay window expired, or pubkey unknown.
// Returns the verified `data` payload (not the envelope wrapper).
const record = await client.getSigned<{ stats: { all_time: { sharpe_ratio: number | null } } }>(
  "/api/v1/agents/alpha-momentum-v3/track-record",
);

if ((record.stats.all_time.sharpe_ratio ?? 0) >= 1.5) {
  // ... delegate capital, copy trades, etc.
}

The verification flow happens INSIDE getSigned. If anything fails β€” bad signature, expired envelope, unknown key, schema mismatch β€” the call throws. You never see unverified data.

Tools

get_track_record(handle, principal_type?)

Fetch a verified track record for a Tradallo profile or agent.

Inputs:

  • handle (string, required) β€” the Tradallo handle (e.g. aaronjordan, alpha-momentum-v3)
  • principal_type ("human" | "agent", optional, default "agent") β€” which namespace to look in

Returns: the full signed payload (verification level, all-time + rolling 30/90/365d stats including Sharpe, max drawdown, win rate, PnL, expectancy).

Example use: > "Show me Aaron Jordan's verified trading record on Tradallo."

search_records(filters)

Discover verified records matching performance criteria.

Inputs (all optional): min_sharpe, min_trades, max_drawdown, venue, principal_type, sort_by, limit.

Returns: sorted list of human/agent summaries with their stats. Signature-verified.

verify_utr(utr_hash)

Look up a Universal Trade Receipt by hash. Returns whether Tradallo has anchored that hash on-chain via a Solana memo, and if so the chain, signature, slot, posted_at, Solana Explorer URL, and notarizer pubkey so the caller can independently verify on-chain.

Returns: { found, anchored_on_chain, chain?, signature?, slot?, posted_at?, explorer_url?, notarizer_pubkey? }.

get_versions(agent_handle)

Fetch an agent's full version history (semver tags, version_hash, policy_hash, when each version was deployed and superseded). Signature-verified.

get_utrs(agent_handle, since?, limit?)

Fetch raw Universal Trade Receipts for an agent, paginated cursor-style on closed_at. Each receipt includes its SHA-256 hash recomputed by Tradallo so consumers can spot-check individual records.

How verification works

Every signed Tradallo API response wraps the data in a JCS-canonicalized (RFC 8785) envelope with an ed25519 signature:

{
  "data": { ... },
  "schema_version": "1",
  "served_at": "2026-04-30T22:29:52.776Z",
  "max_age_seconds": 60,
  "signature": {
    "alg": "ed25519",
    "key_id": "tradallo-prod-2026-04",
    "sig": "<base64>"
  }
}

This MCP server:

  1. Fetches /.well-known/tradallo-pubkeys.json (cached 5 min)
  2. Resolves signature.key_id β†’ ed25519 public key
  3. JCS-canonicalizes {data, schema_version, served_at, max_age_seconds}
  4. Verifies the signature against the pubkey
  5. Rejects responses where now > served_at + max_age_seconds (replay protection)

If any check fails, the tool call returns an error rather than the data. The agent is told why.

Why this matters

Identity (who is the agent) and payments (how does it pay) are solved in 2026 by x402, MPP, Coinbase Agentic Wallets, and ERC-8004. Reputation is not. When an agent decides whether to delegate capital, copy trades, or subscribe to signals from another party, it needs a way to ask: "is their record real?"

This MCP server is the lowest-friction way to ask that question.

x402 β€” what's coming

Today the public API is anonymous and IP-rate-limited (60 req/min). We're rolling out tiered access via x402, the HTTP 402 payment-required standard, so agents can pay USDC micro-transactions on Base to bypass rate limits and unlock higher-throughput tiers without any signup or API-key dance.

Forward-compatible expectations:

  • Anonymous: 60 req/min/IP (today, free)
  • Active subscriber: 600 req/min via API key (in dev β€” Phase 4.4)
  • x402 micro-payment: per-call USDC payment for one-shot heavy queries; no account required (planned Phase 4.5)
  • Operator / Fleet tiers: webhook subscriptions, custom subdomains, priority indexing

The rate-limit response will gain an x402 payment-options block once the facilitator pipeline is wired. This MCP server will start auto-paying when it sees a 402 with x402 metadata. Until then, all queries are free and verifiable.

Reference agent

A working example agent that queries Tradallo before delegating capital: github.com/tradallo/agent.

Spec & docs

  • Protocol overview: docs/PROTOCOL.md
  • Spec: docs/SPEC_V1.1.md
  • Public API: https://tradallo.com/api/v1/
  • Pubkey registry: https://tradallo.com/.well-known/tradallo-pubkeys.json

Changelog

See CHANGELOG.md.

License

MIT

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Finance & Payments servers.