{
  "protocolVersion": "0.3.0",
  "name": "GRAJ Protocol",
  "description": "GRAJ is commerce infrastructure — wholesale first — where brands, sellers, buyers, distributors and seven other roles trade on one protocol for a 5% fee. This card describes the machine doors that exist today. GRAJ does NOT run an A2A task endpoint (message/send, tasks/*): the url below is a Model Context Protocol server (JSON-RPC 2.0: initialize, ping, tools/list, tools/call), and the REST API is described at /openapi.json. Every skill here answers about the signed-in account (your own API key, or signing in with your GRAJ account over OAuth 2.1) or about public catalog, directory and help data. Every skill but one is read-only; that one saves a draft order the person places themselves.",
  "url": "https://www.getreadyandjump.com/api/v1/mcp",
  "preferredTransport": "JSONRPC",
  "additionalInterfaces": [
    {
      "url": "https://www.getreadyandjump.com/api/v1/mcp",
      "transport": "JSONRPC"
    }
  ],
  "provider": {
    "organization": "GRAJ Protocol",
    "url": "https://www.getreadyandjump.com"
  },
  "version": "2026.09",
  "documentationUrl": "https://www.getreadyandjump.com/docs",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "securitySchemes": {
    "apiKey": {
      "type": "apiKey",
      "in": "header",
      "name": "X-API-Key",
      "description": "The participant's own key from /settings/api-keys. GRAJ issues no keys to third parties."
    },
    "bearer": {
      "type": "http",
      "scheme": "bearer",
      "description": "Authorization: Bearer graj_live_… (the same key)."
    }
  },
  "security": [
    {
      "apiKey": []
    },
    {
      "bearer": []
    }
  ],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "list_my_products",
      "name": "list my products",
      "description": "Your own catalog: name, SKU, status, wholesale and retail price in cents, stock, minimum order quantity and case pack. Read-only. MCP tool \"list_my_products\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "list_my_orders",
      "name": "list my orders",
      "description": "Orders you are the seller or a brand on, newest first, with your own share in cents; open_only for the ones still moving. Read-only. MCP tool \"list_my_orders\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "list_my_leads",
      "name": "list my leads",
      "description": "Your own pipeline, as your Leads screen lists it: store, contact, stage, zone, tier and next action. Read-only. MCP tool \"list_my_leads\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "list_my_customers",
      "name": "list my customers",
      "description": "Your own customer book, as your Customers screen lists it: orders, spend and the last order. Read-only. MCP tool \"list_my_customers\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "my_day_plan",
      "name": "my day plan",
      "description": "Your plan for a day: each stop in order, its status and the lead's next action, with map links. Read-only. MCP tool \"my_day_plan\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "order_stops",
      "name": "order stops",
      "description": "Put stops or your own leads into a driving order (nearest-next, then 2-opt), with map links. Saves nothing. Read-only. MCP tool \"order_stops\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "my_receivables",
      "name": "my receivables",
      "description": "What your buyers owe you, aged from each due date, with the biggest buyers and their risk. Read-only. MCP tool \"my_receivables\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "search_directory",
      "name": "search directory",
      "description": "The public participant directory Explore searches, from a plain-English role and place. Read-only. MCP tool \"search_directory\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "search_catalog",
      "name": "search catalog",
      "description": "Active products on GRAJ whose name matches a query. No prices. Read-only. MCP tool \"search_catalog\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "search_help_centre",
      "name": "search help centre",
      "description": "GRAJ's published help articles, FAQ, glossary and guides, ranked for a query. Read-only. MCP tool \"search_help_centre\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "protocol_facts",
      "name": "protocol facts",
      "description": "The protocol fee, what the MCP server can and cannot do, and how to revoke it. Read-only. MCP tool \"protocol_facts\".",
      "tags": [
        "read-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "draft_order_for_customer",
      "name": "draft order for customer",
      "description": "Save a draft order for one of your customers, marked drafted by your assistant. Not placed: nothing is sent and nobody is charged until you place it yourself in GRAJ. Writes a draft only. MCP tool \"draft_order_for_customer\".",
      "tags": [
        "drafts-only",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "x-graj": {
    "a2aTaskEndpoint": null,
    "readOnly": false,
    "writes": "drafts only: one MCP tool saves a draft order the person must open and place themselves in GRAJ. Nothing places an order, messages anybody or moves money.",
    "openapi": "https://www.getreadyandjump.com/openapi.json",
    "llms": "https://www.getreadyandjump.com/llms.txt",
    "mcp": {
      "endpoint": "https://www.getreadyandjump.com/api/v1/mcp",
      "manifest": "https://www.getreadyandjump.com/.well-known/mcp.json",
      "transport": "streamable-http (JSON responses)",
      "methods": [
        "initialize",
        "ping",
        "tools/list",
        "tools/call"
      ],
      "readOnly": false,
      "oauth": {
        "protectedResource": "https://www.getreadyandjump.com/.well-known/oauth-protected-resource",
        "authorizationServer": "https://www.getreadyandjump.com/.well-known/oauth-authorization-server"
      }
    },
    "rateLimit": "600 requests a minute per key",
    "agents": "The twelve GRAJ agents (Raj, Marcus, Camila, Li, Taylor, Kwame, Mina, Luka, Harper, Bao, Priya, Jake) are AI agents for people signed in to GRAJ; they are not reachable from outside with a key. Their list is GET /api/v1/agents."
  }
}
