{"openapi":"3.1.0","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"Prepared Board agent API","version":"1.1.0","summary":"Read your board's meetings, decisions, actions and pack documents, and save private pre-meeting question drafts, from your own AI assistant.","description":"The same tools as the MCP server at /api/mcp, over plain HTTPS. Your assistant sees exactly what you can see in Prepared Board — never more. A board's chair must allow agent access first (Settings → Security). Every call is audit-logged. Setup: https://preparedboard.com/agents/connect","contact":{"email":"security@preparedboard.com"}},"servers":[{"url":"https://preparedboard.com"}],"externalDocs":{"url":"https://preparedboard.com/agents/connect","description":"Connect your assistant"},"tags":[{"name":"read","description":"Read-only (scope read)"},{"name":"draft","description":"Saves a private draft only you and the board's officers can see (scope questions:draft)"}],"paths":{"/api/agent/v1/me":{"get":{"operationId":"get_profile","summary":"Who am I","description":"Your name, board, role, and this token's scopes.","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"get_profile","responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"email":{"type":"string"},"board":{"type":"string"},"boardId":{"type":"string"},"role":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["read","questions:draft"]}}},"required":["name","email","board","boardId","role","scopes"]}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/meetings":{"get":{"operationId":"list_meetings","summary":"List meetings","description":"Meetings on your board (upcoming first by default) with pack status. Use get_meeting for the agenda, get_pack for the pack's document list. Pass nextCursor back as cursor for the next page.","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"list_meetings","parameters":[{"name":"when","in":"query","required":false,"schema":{"type":"string","enum":["upcoming","past","all"],"default":"upcoming"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512,"description":"Opaque cursor from the previous page's nextCursor. Omit for the first page."}}],"responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"nextCursor":{"type":["string","null"],"description":"Pass as cursor to get the next page; null on the last page"},"meetings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"scheduledAt":{"type":"string","format":"date-time"},"status":{"type":"string"},"packStatus":{"type":"string"},"executiveSession":{"type":"boolean"},"committee":{"type":["string","null"]},"url":{"type":"string","format":"uri"}},"required":["id","title","scheduledAt","status","packStatus","executiveSession","committee","url"]}}},"required":["nextCursor","meetings"]}}}},"400":{"description":"Invalid input or cursor","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/meetings/{id}":{"get":{"operationId":"get_meeting","summary":"Meeting agenda and pack","description":"Agenda, decisions on the agenda, pack documents you can see, open actions, and conflicts for one meeting (markdown).","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"get_meeting","parameters":[{"name":"id","in":"path","required":true,"description":"Meeting id (from a list tool)","schema":{"type":"string"},"x-tool-argument":"meetingId"}],"responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"meetingId":{"type":"string"},"title":{"type":"string"},"markdown":{"type":"string","description":"Markdown briefing"}},"required":["meetingId","title","markdown"]}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found, or not visible to you","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/meetings/{id}/pack":{"get":{"operationId":"get_pack","summary":"Board pack for a meeting","description":"The meeting's board pack: status (draft, published or sealed), when it was published, the documents in it you are allowed to open (titles and details, no file contents), and any officer attestations. Use get_document to read one.","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"get_pack","parameters":[{"name":"id","in":"path","required":true,"description":"Meeting id (from a list tool)","schema":{"type":"string"},"x-tool-argument":"meetingId"}],"responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"meetingId":{"type":"string"},"title":{"type":"string"},"scheduledAt":{"type":"string","format":"date-time"},"packStatus":{"type":"string","enum":["DRAFT","PUBLISHED","SEALED"]},"sealed":{"type":"boolean"},"publishedAt":{"type":["string","null"],"format":"date-time"},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"confidentiality":{"type":"string"},"format":{"type":"string","enum":["pdf","text"]},"version":{"type":"integer","minimum":1},"source":{"type":"string","enum":["meeting","decision"]},"decisionId":{"type":["string","null"]},"changedAfterPublish":{"type":"boolean"},"url":{"type":"string","format":"uri"}},"required":["id","title","kind","confidentiality","format","version","source","decisionId","changedAfterPublish","url"]}},"attestations":{"type":"array","items":{"type":"object","properties":{"attestedAt":{"type":"string","format":"date-time"},"packHash":{"type":"string","description":"SHA-256 (hex) of the pack's ordered document list at attestation"}},"required":["attestedAt","packHash"]}},"url":{"type":"string","format":"uri"}},"required":["meetingId","title","scheduledAt","packStatus","sealed","publishedAt","documents","attestations","url"]}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found, or not visible to you","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/decisions":{"get":{"operationId":"list_decisions","summary":"List decisions","description":"Decisions on your board, most recently updated first. status: open (default; not yet adopted, ratified, defeated, withdrawn, superseded, closed or archived), closed (any of those), or all. Pass nextCursor back as cursor for the next page; a page can hold fewer than limit items.","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"list_decisions","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["open","closed","all"],"default":"open"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512,"description":"Opaque cursor from the previous page's nextCursor. Omit for the first page."}}],"responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"nextCursor":{"type":["string","null"],"description":"Pass as cursor to get the next page; null on the last page"},"decisions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":["string","null"]},"title":{"type":"string"},"status":{"type":"string"},"decidedAt":{"type":["string","null"],"format":"date-time"},"meeting":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"scheduledAt":{"type":"string","format":"date-time"}},"required":["id","title","scheduledAt"]},{"type":"null"}]},"url":{"type":"string","format":"uri"}},"required":["id","number","title","status","decidedAt","meeting","url"]}}},"required":["nextCursor","decisions"]}}}},"400":{"description":"Invalid input or cursor","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/decisions/{id}":{"get":{"operationId":"get_decision","summary":"Decision record","description":"One decision: brief, options, motion, votes, conflicts and recusals, actions, and evidence you can see (markdown).","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"get_decision","parameters":[{"name":"id","in":"path","required":true,"description":"Decision id (from a list tool)","schema":{"type":"string"},"x-tool-argument":"decisionId"}],"responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"decisionId":{"type":"string"},"title":{"type":"string"},"markdown":{"type":"string","description":"Markdown briefing"}},"required":["decisionId","title","markdown"]}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found, or not visible to you","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/decisions/{id}/record":{"get":{"operationId":"get_decision_record","summary":"Formal decision record","description":"The formal Decision Record for an adopted, closed, ratified or superseded decision — the same document as the Decision Record download in Prepared Board (markdown), for the same roles (Chair, Secretary, Admin). sealed, contentHash and verifyUrl stay false/null until sealed records are available.","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"get_decision_record","parameters":[{"name":"id","in":"path","required":true,"description":"Decision id (from a list tool)","schema":{"type":"string"},"x-tool-argument":"decisionId"}],"responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"decisionId":{"type":"string"},"number":{"type":["string","null"]},"title":{"type":"string"},"status":{"type":"string"},"markdown":{"type":"string","description":"The formal Decision Record (markdown), as downloaded in Prepared Board"},"sealed":{"type":"boolean","description":"false until sealed decision records are available"},"contentHash":{"type":["string","null"],"description":"sha256:<hex> of the sealed record; null while unsealed"},"verifyUrl":{"type":["string","null"],"format":"uri","description":"Public verify URL of the sealed record; null while unsealed"},"url":{"type":"string","format":"uri"}},"required":["decisionId","number","title","status","markdown","sealed","contentHash","verifyUrl","url"]}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found, or not visible to you","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The decision is not adopted, closed, ratified, or superseded, so it has no formal record yet","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/actions":{"get":{"operationId":"list_my_actions","summary":"My open action items","description":"Open action items assigned to you on this board, with due dates and linked decisions.","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"list_my_actions","responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"dueDate":{"type":["string","null"],"format":"date-time"},"decision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"title":{"type":["string","null"]}},"required":["id","title"]},{"type":"null"}]}},"required":["id","title","status","dueDate","decision"]}}},"required":["actions"]}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/documents/{id}":{"get":{"operationId":"get_document","summary":"Read a pack document","description":"Title, confidentiality, and text of a board document you are allowed to open. Uploaded PDFs return details and a link (file bytes are not sent through the API).","tags":["read"],"security":[{"bearerAuth":[]}],"x-required-scopes":["read"],"x-mcp-tool":"get_document","parameters":[{"name":"id","in":"path","required":true,"description":"Document id (from a list tool)","schema":{"type":"string"},"x-tool-argument":"documentId"}],"responses":{"200":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"kind":{"type":"string"},"confidentiality":{"type":"string"},"meetingId":{"type":["string","null"]},"decisionId":{"type":["string","null"]},"format":{"type":"string","enum":["pdf","text"]},"text":{"type":["string","null"]},"truncated":{"type":"boolean"},"note":{"type":["string","null"]},"url":{"type":"string","format":"uri"}},"required":["id","title","kind","confidentiality","meetingId","decisionId","format","text","truncated","note","url"]}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found, or not visible to you","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/agent/v1/meetings/{id}/questions":{"post":{"operationId":"draft_pre_meeting_question","summary":"Draft a pre-meeting question","description":"Save a pre-meeting question as a private draft, marked agent-assisted. It is visible only to you and the board's officers until you choose to share it in Prepared Board. Requires the questions:draft scope.","tags":["draft"],"security":[{"bearerAuth":[]}],"x-required-scopes":["questions:draft"],"x-mcp-tool":"draft_pre_meeting_question","parameters":[{"name":"id","in":"path","required":true,"description":"Meeting id (from a list tool)","schema":{"type":"string"},"x-tool-argument":"meetingId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":2000},"decisionId":{"type":"string","description":"Optional decision id this question is about"}},"required":["question"],"additionalProperties":false}}}},"responses":{"201":{"description":"OK","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"meetingId":{"type":"string"},"shared":{"type":"boolean","const":false},"message":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["id","meetingId","shared","message","url"]}}}},"400":{"description":"Invalid input","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Token lacks the scope, the board turned agent access off, or two-factor is required","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found, or not visible to you","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit reached for this token","headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A personal access token (pb_pat_…) from Settings → Security → Agent access, or an OAuth access token from /oauth/authorize. Scopes: read, questions:draft."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}},"headers":{"X-Request-Id":{"description":"Request id (your own X-Request-Id is echoed when it is 8–128 safe characters)","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests allowed per window for this token","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window resets","schema":{"type":"integer"}},"RateLimit-Policy":{"description":"Limit and window, e.g. 60;w=60","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying","schema":{"type":"integer"}}}},"x-tools":["get_profile","list_meetings","get_meeting","get_pack","list_decisions","get_decision","get_decision_record","list_my_actions","get_document","draft_pre_meeting_question"]}