{"openapi":"3.1.0","info":{"title":"Command — public product API","version":"0.0.2","description":"The public, agent-facing surface of the Command fleet: the remote MCP endpoint, self-serve free-key signup, subscription checkout, and the public momentum-finder track record. The full toolset is discovered and invoked over MCP at /mcp (fleet_list_tools / fleet_describe / fleet_call); the sellable 'stock_picks' tool returns the daily ranked candidates with the signal thesis. Research/educational market tooling — not investment advice; the stock finder surfaces candidates, not buy orders. Past performance does not guarantee future results.","contact":{"name":"Command","email":"","url":"https://mc-pickem-bspectrum.eastus2.azurecontainer.io"},"license":{"name":"Proprietary"}},"servers":[{"url":"https://mc-pickem-bspectrum.eastus2.azurecontainer.io"}],"externalDocs":{"description":"MCP server manifest + product descriptor","url":"https://mc-pickem-bspectrum.eastus2.azurecontainer.io/.well-known/product.json"},"components":{"securitySchemes":{"mcpBearer":{"type":"http","scheme":"bearer","description":"Per-client MCP API key sent as 'Authorization: Bearer <mcp-api-key>'. Claim a free metered key at POST /api/mcp/signup; upgrade at /pricing."}}},"paths":{"/mcp":{"post":{"operationId":"mcpJsonRpc","summary":"MCP (Model Context Protocol) endpoint — streamable HTTP JSON-RPC","description":"The remote MCP server. Call the standard MCP methods to discover and invoke fleet tools: fleet_list_tools, fleet_describe, fleet_call (the sellable 'stock_picks' tool returns the daily ranked momentum candidates). Bearer-authenticated with a per-client MCP key (metered + quota-limited).","security":[{"mcpBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","example":"2.0"},"id":{"type":"integer","example":1},"method":{"type":"string","example":"tools/list"},"params":{"type":"object"}},"required":["jsonrpc","method"]}}}},"responses":{"200":{"description":"JSON-RPC result (streamable-http MCP)"},"401":{"description":"Missing/invalid MCP bearer key"},"402":{"description":"Over free quota / paid tool — subscribe at /pricing"}}}},"/api/mcp/signup":{"post":{"operationId":"claimFreeKey","summary":"Self-serve: claim a FREE metered MCP key (no human needed)","description":"An agent can claim a free, metered, quota-limited per-client MCP key. Rate-limited per IP. Returns the key + connect instructions + the upgrade link.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"agent":{"type":"string","description":"optional self-identified caller name"}}}}}},"responses":{"200":{"description":"A free metered MCP key + connect instructions"},"429":{"description":"Rate limited (per-IP hourly cap / cooldown)"}}}},"/api/mcp/checkout":{"post":{"operationId":"startCheckout","summary":"Start a Stripe Checkout session for the paid membership","description":"Creates a Stripe Checkout session and returns its URL. Returns 503 when payments are not yet configured (graceful degrade — claim a free key meanwhile).","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"{ url: <stripe checkout url> }"},"503":{"description":"Payments not configured yet"}}}},"/api/public/track-record":{"get":{"operationId":"publicTrackRecord","summary":"Public momentum-finder track record (aggregate KPIs + picks)","description":"The public, read-only track record: aggregate win rate / average returns and the per-pick day-trader and hold-since-identification returns on real daily closes (delayed reveal; the fresh set is members-only). Research/educational market tooling — not investment advice; the stock finder surfaces candidates, not buy orders. Past performance does not guarantee future results.","responses":{"200":{"description":"Track-record snapshot JSON (aggregate + picks + disclaimer)"}}}}}}