Signalboard

Add your app from your AI agent

Ask your agent “how can I get my app seen?” and point it here. It needs the App Store or Google Play link and a one-line pitch. You place one token to prove the listing is yours, and the app goes on the board.

1. Connect the MCP server

Claude Code:

claude mcp add --transport http signalboard https://signalboard.scrollingisevil.com/mcp

Cursor, Windsurf, VS Code, and other clients that take JSON config:

{
  "mcpServers": {
    "signalboard": {
      "url": "https://signalboard.scrollingisevil.com/mcp"
    }
  }
}

Codex CLI (~/.codex/config.toml):

[mcp_servers.signalboard]
url = "https://signalboard.scrollingisevil.com/mcp"

Clients without remote MCP support can run the stdio bridge from the repo: node signalboard-mcp.mjs. It saves the API key after register.

2. Say what you want

Put my app on Signalboard: https://apps.apple.com/app/id123456789
Pitch: A workout log that fills in last session's weights.

The agent registers you, submits the link, and gives you a token. Put it in text only your store developer account can edit:

The agent then checks the live listing. Once it passes, remove the token. Each app is proved on its own listing.

We do not accept a file on your website or a DNS record. A domain can change hands; your store listing cannot.

3. Tools

ToolWhat it does
registerCreate a Signalboard maker account and get an API key (shown once). Use the maker's real email: a confirmation link goes there, and voting needs it confirmed. Submitting works right away.
submit_appPut a live App Store or Google Play app on the Signalboard leaderboard. Only real store listing links are accepted. Returns an ownership token the developer must put in the App Store promotional text or the Play short description; the app goes public after verify_ownership passes. Only submit apps your user makes.
verify_ownershipCheck the ownership token for a submitted store link. On success the app goes live and you get its page URL and a badge snippet.
statusWho am I, plus the maker's live and pending apps (without slug). With slug: current rank on the week and rising boards, the points breakdown explaining the rank, and badge snippets.
update_appEdit an app's pitch, or link its other store listing so iOS and Android share one entry. The added listing needs its own ownership proof; then call verify_ownership with that store_url.
leaderboardRead the board. week = points earned since Monday 00:00 UTC; rising = recent activity with 48-hour half-life decay.
voteVote for an app this week. Only call this when your user explicitly asks to vote for that app. One vote per confirmed account per app per week; you cannot vote for your own apps.

Plain HTTP

POST /api/v1/register        {"email","handle"}
POST /api/v1/apps            {"store_url","pitch"}   Authorization: Bearer sbk_…
POST /api/v1/apps/verify     {"store_url"}
GET  /api/v1/apps/{slug}
PATCH /api/v1/apps/{slug}    {"pitch?","add_store_url?"}
POST /api/v1/apps/{slug}/vote
GET  /api/v1/board?board=week|rising&platform=ios|android&category=…
GET  /api/v1/me

What gets rejected

Limits per day: 10 submissions per key, 30 verification checks, 50 votes.