mcpField
S
SigRank — AI Operator Benchmarking

SigRank — AI Operator Benchmarking

Remote
signalaf.comData & Analytics7Updated today

About SigRank — AI Operator Benchmarking

SigRank is SignalAF’s public leaderboard for AI operator token telemetry, aimed at operators and people comparing token-processing metrics. It combines verified submissions, cascade scoring, profiles, and comparison views.

Key features

  1. 01Filter leaderboard by time window and platform
  2. 02View raw and derived metrics
  3. 03Compare two operators’ telemetry
  4. 04Browse profiles, records, and badges
  5. 05Verify and rescore submitted snapshots

Use cases

  1. 01Compare token metrics between operators
  2. 02Inspect an operator’s submission history
  3. 03Review leaderboard trends by platform

MCP support

The application includes MCP endpoints for its main service and an analyst plugin. The README points to the separate `sigrank-mcp` package but does not describe the endpoints’ specific tools.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://signalaf.com/api/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

16
ParameterTypeRequiredDescription
inputnumberYesTotal input tokens consumed in the session.
outputnumberYesTotal output tokens generated.
contextstringYesExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringYesThe exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess.
cache_readnumberYesTokens read from prompt cache (reused context).
cache_writenumberYesTokens written to prompt cache (new context stored for reuse).
conversation_idstringNoPass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.

Details

From the project README

SignalAF · SigRank web app

Browse AI operator token telemetry, explore personal profiles, and compare token-cascade metrics on signalaf.com.

CI npm License: MIT

Live site · Leaderboard · Methodology · CLI & MCP · Local setup

This repository contains the Next.js application: the leaderboard homepage, operator profiles, Compare, Hall of Signal, editorial pages, accounts, billing, and server APIs.

Explore the site

SurfaceWhat you can do
Leaderboard / homepageFilter the field by window and platform; inspect RAW and derived metrics
Operator profilesView personal stats, submission history, badges, and account settings
CompareExamine two operators' telemetry and metric differences
Hall of SignalBrowse records and the badge directory
SigRank overviewUnderstand the measurement and enrollment flow
Field, Articles, Blog, WikiRead research, explanations, and metric definitions

Some features are gated; see Feature flags. This README describes the source tree, not a promise that every optional integration is configured on every deployment.

Get your own results

You do not need to clone this application to use it. Run the CLI/MCP package:

npx sigrank                       # inspect local usage in the terminal
npx sigrank enroll                # bind your device using a Settings connect code
npx sigrank submit --dry-run      # inspect the payload without sending it
npx sigrank submit                # publish a signed snapshot

Sign in at signalaf.com to create a connect code. Claims for profiles from the original board require ownership verification through [email protected].

What is measured

Four token pillars feed the cascade: input, output, cache-write, and cache-read. Yield is calculated as:

Υ = (cache_read × output) / input²

The server verifies and re-scores submissions. Leverage, Velocity, SNR, and 10xDEV describe token-processing patterns; they are not measures of model quality, work quality, productivity, or business outcomes.

Upsilon is the measurement engine; SigRank is the public leaderboard and proof surface on SignalAF. Protocol semantics belong to TTEOP. See the methodology and wiki for definitions and limitations.

Ranked telemetry does not require prompt text, responses, or source code. Submissions also carry identity, device/signature, platform, and report metadata; see the CLI privacy details.

Stack

  • Next.js 16 App Router, React 19, TypeScript (strict)
  • Tailwind CSS 3
  • Supabase (Postgres, Auth, Realtime)
  • Stripe Checkout, Billing Portal, webhooks
  • Upstash Redis for rate limiting (Supabase Postgres fallback)
  • zod, Node test runner, Vitest, Playwright

Local setup

Requires Node 22.x (engines in package.json, .nvmrc).

npm install
cp .env.example .env.local   # optional; see Environment
npm run dev                  # http://localhost:3000

Unconfigured local development can use snapshot or demo data on supported read paths. This is not live telemetry. Live board data, authentication, signed writes, and billing need their corresponding services configured. A configured database with no matching records returns an empty result rather than a fabricated operator history.

Scripts

CommandWhat it does
npm run devStart the dev server
npm run buildBuild for production (next build --webpack)
npm run startServe the production build
npm run lintRun ESLint
npm testRun the Node test suites in __tests__/
npm run test:uiRun Vitest component tests
npm run test:canonicalCheck canonical ingest parity (MO§ES Υ 18436.98)
npm run test:coverageRun npm test with c8 coverage
npm run e2eRun Playwright tests (e2e:local targets localhost:3000)
npm run verifyRun tsc --noEmit, the canonical test, and npm test
npm run db:parityCheck local migrations against the remote ledger (db:parity:ci for CI)
npm run snapshotRefresh the cold-store board snapshot
npm run sitemap:validateValidate the sitemap (:live checks production)

Before opening a PR, run npm run verify and npm run build.

Environment

Copy .env.example to .env.local. It lists every variable with notes. Never commit values. Production values live in Vercel environment variables.

VariableUsed for
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEYLive Supabase reads and service-role writes. The server client needs all three.
STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_PRICE_*Billing and webhooks
NEXT_PUBLIC_SITE_URLStripe redirects and public URLs
UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN (or Vercel's KV_REST_API_URL, KV_REST_API_TOKEN)Shared rate limiter. Without Upstash, the limiter uses Supabase Postgres (api_rate_limit_hit, migration 0055), then a per-instance in-memory counter. Sensitive write routes fail closed.
SIGRANK_RULESETServer-only RS.xx scoring overrides
SIGRANK_API_KEYTrusted bulk-read key for the public API (x-api-key)
SIGRANK_INGEST_WRITE1 enables persistence of verified snapshots to the board.
CRON_SECRETBearer token for /api/cron/recompute
NEXT_PUBLIC_POSTHOG_KEY, NEXT_PUBLIC_POSTHOG_HOST, POSTHOG_KEYProduct analytics
RESEND_API_KEY, *AGENTMAIL_API_KEYContact form and exchange email
ALGOLIA_*, EXA_API_KEY, MOTHERDUCK_*, AI_GATEWAY_*, VERCEL_CLIENT_*, SIGNALAF_LIVE_TOKENSearch, enrichment, analytics, AI gateway, Vercel integration, live demo
NEXT_PUBLIC_REALTIME_ENABLEDSet to false to disable live board updates
Feature flags

lib/features.ts defines the flags. All gated flags default to off and accept 1 or true.

FlagGates
NEXT_PUBLIC_GATE_CHALLENGESThrow-down challenges. Also needs NEXT_PUBLIC_GATE_ARENA. Off: /api/v1/challenges returns 404.
NEXT_PUBLIC_GATE_ARENAChallenge submission interface (required with the challenges gate)
NEXT_PUBLIC_GATE_SIGNAL_DROPWeekly signal drop
NEXT_PUBLIC_GATE_BRACKETSBlind bracket / Circle Wars
NEXT_PUBLIC_GATE_TRADING_CARD_SPECIESSpecies badge on trading cards

Database and migrations

Migrations live in supabase/migrations/. Use that directory and npm run db:parity for the current schema and remote-ledger status rather than relying on a hard-coded migration count. Apply required migrations before deploying code that depends on them; review the pending SQL and target project first.

Row Level Security policies, seed data, and security tests live in supabase/. See supabase/README.md to run your own instance.

Project map

PathContents
app/App Router pages and API routes
app/api/v1/Public API: ingest, claim, devices, billing, metrics, leaderboard
app/api/mcp/, app/api/plugins/sigrank/mcp/, app/api/exchange/mcp/MCP endpoints (main server, analyst plugin, exchange)
app/exchange/, app/api/exchange/Contribution exchange UI and API
components/UI components
lib/board/Board reads: Supabase, snapshot, mock fallback
lib/ingest/Payload parsing, signature checks, cascade materialization
lib/analytics/Scoring engine and server-only ruleset boundary
lib/exchange/, lib/exchange-gateway/Exchange server logic and portable gateway reference
lib/infra/Supabase clients, Stripe, rate limiting, API gates
supabase/Migrations, policies, seeds, SQL tests, edge functions
__tests__/, e2e/Node, Vitest, and Playwright tests

Development conventions:

  • Pages are server components by default. Add 'use client' only for hooks, handlers, or browser APIs.
  • Keep RS.xx scoring configuration out of client code.
  • Avoid random values and wall-clock reads at module scope.

Deployment

Pushes to main deploy to Vercel (vercel.json). A daily cron calls /api/cron/recompute. Set environment variables in Vercel. An OpenNext Cloudflare path exists (npm run preview, npm run deploy, wrangler.jsonc).

Security

Report vulnerabilities privately. Email the maintainer or open a private GitHub security advisory. Do not file public issues for vulnerabilities. See SECURITY.md.

Related

Contributing

Open an issue with repro steps and your Node version. For code changes, branch from main, keep the change small, run npm run verify, and open a PR. See Contributing and the Code of Conduct.

License

MIT. See LICENSE.

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.