{"openapi":"3.1.0","info":{"title":"Runn (BYOK) API","version":"0.1.0","description":"Runn (BYOK) lets an AI assistant read your own Runn data through the Runn API with a key you supply (Runn API token (read scope is enough)). Read-only: 11 tools (get_account, list_people, list_projects, list_clients, list_assignments, list_actuals, list_teams, list_roles, list_skills, list_workstreams, list_placeholders). The BYOK key travels with each request, is used for that one call only and...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-runn.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-runn/docs"},"termsOfService":"https://connectorbay.com/byok-runn/terms"},"servers":[{"url":"https://byok-runn.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-runn/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_account":{"post":{"operationId":"get_account","summary":"Show the name of the Runn account the token belongs to. Accounts hosted in the US region use a different host and are no","description":"Show the name of the Runn account the token belongs to. Accounts hosted in the US region use a different host and are not covered by this connector. Use for \"Which Runn account is my API token for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_accountArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_people":{"post":{"operationId":"list_people","summary":"List people in Runn with email, team, tags, manager ids, archived flag and external references. Filterable by name or em","description":"List people in Runn with email, team, tags, manager ids, archived flag and external references. Filterable by name or email; cursor-paged. Use for \"Who is on the team in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the person with this email.","title":"Email"},"first_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only people with this first name.","title":"First Name"},"last_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only people with this last name.","title":"Last Name"},"include_placeholders":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include placeholders (unfilled roles) in the list.","title":"Include Placeholders"},"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_peopleArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List projects with client, team, pricing model, budget, confirmation and archive flags, managers and tags. Filterable by","description":"List projects with client, team, pricing model, budget, confirmation and archive flags, managers and tags. Filterable by name; cursor-paged. Use for \"Which projects are running in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects with this name.","title":"Name"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True (default) includes archived projects, false hides them.","title":"Include Archived"},"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_clients":{"post":{"operationId":"list_clients","summary":"List clients with website, archive flag and external references. Filterable by name; cursor-paged. Use for \"Which client","description":"List clients with website, archive flag and external references. Filterable by name; cursor-paged. Use for \"Which clients do we have in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only clients with this name.","title":"Name"},"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_clientsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_assignments":{"post":{"operationId":"list_assignments","summary":"List planned assignments (who is booked on which project, role and dates, minutes per day, billable flag). Filter by per","description":"List planned assignments (who is booked on which project, role and dates, minutes per day, billable flag). Filter by person, project, role or date range; cursor-paged. Use for \"Who is assigned to project 5 next month in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"person_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only assignments of this person id.","title":"Person Id"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only assignments on this project id.","title":"Project Id"},"role_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only assignments for this role id.","title":"Role Id"},"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Format YYYY-MM-DD; start of the date range filter.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Format YYYY-MM-DD; end of the date range filter.","title":"End Date"},"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return (1 to 200, default 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_assignmentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_actuals":{"post":{"operationId":"list_actuals","summary":"List actual logged time (timesheet entries) per day with billable and non-billable minutes, person, project, role and no","description":"List actual logged time (timesheet entries) per day with billable and non-billable minutes, person, project, role and notes. Filter by person, project and dates; cursor-paged. Use for \"How much time did person 1 log on project 5 in March in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"person_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only actuals of this person id.","title":"Person Id"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only actuals on this project id.","title":"Project Id"},"role_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only actuals for this role id.","title":"Role Id"},"min_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest date, YYYY-MM-DD.","title":"Min Date"},"max_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest date, YYYY-MM-DD.","title":"Max Date"},"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return (1 to 500, default 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_actualsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_teams":{"post":{"operationId":"list_teams","summary":"List teams (id and name) used to group people and projects. Use for \"What teams exist in Runn\".","description":"List teams (id and name) used to group people and projects. Use for \"What teams exist in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_teamsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_roles":{"post":{"operationId":"list_roles","summary":"List roles (job functions used when booking people) with archived flag and the ids of the people holding each role. Rate","description":"List roles (job functions used when booking people) with archived flag and the ids of the people holding each role. Rates and costs are not included. Use for \"What roles are defined in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only roles with this name.","title":"Name"},"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_rolesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_skills":{"post":{"operationId":"list_skills","summary":"List the skills defined in the account (id and name). Use for \"Which skills are tracked in Runn\".","description":"List the skills defined in the account (id and name). Use for \"Which skills are tracked in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_skillsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_workstreams":{"post":{"operationId":"list_workstreams","summary":"List workstreams (parallel streams of work inside projects) with their archived flag. Use for \"What workstreams are set ","description":"List workstreams (parallel streams of work inside projects) with their archived flag. Use for \"What workstreams are set up in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_workstreamsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_placeholders":{"post":{"operationId":"list_placeholders","summary":"List placeholders (unfilled roles used for capacity planning) with tags and archive flag. Use for \"Which placeholders do","description":"List placeholders (unfilled roles used for capacity planning) with tags and archive flag. Use for \"Which placeholders do we plan with in Runn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort_by":{"anyOf":[{"enum":["id","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"id","description":"Field to sort by.","title":"Sort By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Order"},"modified_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only records modified after this date (YYYY-MM-DD) or time (YYYY-MM-DDTHH:MM:SSZ).","title":"Modified After"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 200, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer to get the next page; leave empty for the first page.","title":"Cursor"}},"title":"list_placeholdersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}