{"app":{"handle":"quick-notice","name":"Quick Notice"},"available":true,"endpoint":"https:\/\/api.sappo.xco.agency\/quick-notice\/mcp","protocolVersions":["2025-11-25","2025-06-18","2025-03-26","2024-11-05"],"server":{"name":"Quick Notice","version":"1.0.0"},"instructions":"Notices and redirect rules for the authenticated shop.\n\nThe store is identified automatically from your API token.\n\nAvailable tools:\n- `list_notices`: List notices\n- `get_notice`: Get one notice by id\n- `list_redirect_rules`: List redirect rules\n- `get_redirect_rule`: Get one redirect rule by id\n\nEvery `list_` tool takes `page` and `page_size` (25 by default, 100 at most) and\nreturns the page plus `meta.total`. Every `get_` tool takes the record `id`.\nEverything is read-only: changes are made in the app, never through this server.","auth":{"tokenPrefix":"mak_","header":"Authorization","scheme":"Bearer","whereToGet":"Open the app in your Shopify admin, go to Settings \u2192 API Access, and create a token. The full token is shown once, at creation time; afterwards only its first 12 characters are stored in readable form. If that card is locked, API access is not included in your current plan and the app will not create a token until the plan changes. At most three tokens can be active at once, so revoke one you no longer use before creating another.","plan":{"required":false,"plans":[]}},"clientConfig":{"claudeDesktop":{"mcpServers":{"sappo-quick-notice":{"type":"http","url":"https:\/\/api.sappo.xco.agency\/quick-notice\/mcp","headers":{"Authorization":"Bearer mak_your_token_here"}}}},"cli":"claude mcp add --transport http sappo-quick-notice https:\/\/api.sappo.xco.agency\/quick-notice\/mcp --header \"Authorization: Bearer mak_your_token_here\""},"tools":[{"name":"list_notices","title":"List Notices Tool","description":"List notices for the authenticated shop.","inputSchema":{"properties":{"page":{"description":"Page number, starting at 1","type":"integer"},"page_size":{"description":"Page size, maximum 100","type":"integer"}},"type":"object"},"examplePrompt":"Show me the notices."},{"name":"get_notice","title":"Get Notice Tool","description":"Get one notice by id for the authenticated shop.","inputSchema":{"properties":{"id":{"description":"Record id","type":"string"}},"type":"object","required":["id"]},"examplePrompt":"Give me the details of a notice."},{"name":"list_redirect_rules","title":"List Redirect Rules Tool","description":"List redirect rules for the authenticated shop.","inputSchema":{"properties":{"page":{"description":"Page number, starting at 1","type":"integer"},"page_size":{"description":"Page size, maximum 100","type":"integer"}},"type":"object"},"examplePrompt":"Show me the redirect rules."},{"name":"get_redirect_rule","title":"Get Redirect Rule Tool","description":"Get one redirect rule by id for the authenticated shop.","inputSchema":{"properties":{"id":{"description":"Record id","type":"string"}},"type":"object","required":["id"]},"examplePrompt":"Give me the details of a redirect rule."}],"errors":[{"status":401,"code":"MISSING_TOKEN","message":"Authorization header with Bearer token is required.","whatToDo":"Send an `Authorization: Bearer mak_\u2026` header. This code also appears when the header is present but does not start with `Bearer ` \u2014 a bare token or a `Token \u2026` prefix is not accepted."},{"status":401,"code":"INVALID_TOKEN","message":"Token is invalid, expired, or revoked.","whatToDo":"Check the token was copied in full, is still listed as active in Settings \u2192 API Access, and has not passed its expiry date. Create a new token if in doubt. The same code is returned when the store is suspended."},{"status":403,"code":"PLAN_REQUIRED","message":"API access is not included in the current plan.","whatToDo":"The token is valid, but this app sells API access on named plans only and this store is not on one of them. The plans that carry it are listed under **Authentication** above; change the plan in the app and the same token starts working \u2014 there is no need to create a new one."},{"status":404,"code":"APP_NOT_FOUND","message":"App not found.","whatToDo":"The app handle in the path is not one Sappo serves. Use the handle this documentation was generated for, and check for a typo or a stray path segment."},{"status":429,"code":"RATE_LIMITED","message":"Too many requests. Please slow down.","whatToDo":"Wait the number of seconds in the `Retry-After` header before retrying, and keep each client under 60 requests per 60 seconds. Fetch more records per request instead of making more requests."},{"status":503,"code":"API_NOT_AVAILABLE","message":"The API is not available for this app yet.","whatToDo":"The app is served but its store of API tokens has not been created yet, so no token can be checked. Nothing is wrong with your request: retry later, and tell support if it lasts."}],"throttle":{"requests":60,"windowSeconds":60,"scope":"client address","message":"Too Many Attempts.","headers":["X-RateLimit-Limit","X-RateLimit-Remaining","X-RateLimit-Reset","Retry-After"]}}