Skip to content

Agents

Connect your AI assistant

Let your own assistant read your board packs, open decisions, your action items and meeting agendas — and, if you allow it, save private drafts of pre-meeting questions. It sees exactly what you can see in Prepared Board, nothing more. Prepared Board itself does not call any AI model.

How access works

  • Off until the chair allows it. A chair, owner, or admin turns on agent access for the board in Settings → Security → Agent access.
  • Your own token. Each director creates a personal access token for one board. It expires (7, 30, or 90 days), can be revoked anytime, and is stored only as a hash.
  • Same rules as the app. Confidentiality levels, document access lists, committee scope, executive session, and recusal are applied to every call using the same code paths as the app. Link credentials in text are redacted.
  • Read-only by default. The only write is optional: saving a pre-meeting question as a private, agent-assisted draft that you review and share yourself.
  • Audited. Every call writes an audit-log entry (tool, outcome, record ids — never the token or the content returned). Rate limit: 60 requests a minute per token.
  • If the board requires two-factor sign-in, tokens work only while your account has two-factor on.

1. Create a token

Sign in → Settings → Security → Agent access → name the token, choose an expiry, and copy it (shown once). It starts with pb_pat_.

2. Add the MCP server

Server URL (Streamable HTTP): https://preparedboard.com/api/mcp with header Authorization: Bearer <token>.

Claude Code

claude mcp add --transport http prepared-board https://preparedboard.com/api/mcp \
  --header "Authorization: Bearer pb_pat_YOUR_TOKEN"

Claude Desktop

Settings → Developer → Edit Config, then add (uses the open-source mcp-remote bridge; needs Node.js):

{
  "mcpServers": {
    "prepared-board": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://preparedboard.com/api/mcp",
               "--header", "Authorization:${PB_AUTH}"],
      "env": { "PB_AUTH": "Bearer pb_pat_YOUR_TOKEN" }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or the project’s .cursor/mcp.json):

{
  "mcpServers": {
    "prepared-board": {
      "url": "https://preparedboard.com/api/mcp",
      "headers": { "Authorization": "Bearer pb_pat_YOUR_TOKEN" }
    }
  }
}

Claude.ai and ChatGPT (web connectors, OAuth)

No token to paste: these apps sign you in with OAuth. Add a custom connector with the server URL https://preparedboard.com/api/mcp.

  • Claude.ai: Settings → Connectors → Add custom connector → paste the URL → Connect.
  • ChatGPT: Settings → Connectors (developer mode) → Create → paste the URL, authentication OAuth → Create.

You’ll be sent to Prepared Board to sign in (including two-factor if you use it) and see a consent screen with the app’s name, the board to connect (only boards whose chair allowed agent access can be chosen), and the scopes: read, plus optional questions:draft you can untick. Approving returns you to the app. Under the hood: OAuth 2.1 authorization code with PKCE (S256 only), dynamic client registration, discovery at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server. Access tokens last 1 hour and refresh tokens 30 days (rotated on every use); both are stored only as hashes. The connection appears under Settings → Security → Agent access as a connected app, where you can revoke it; consent, token issue, refresh and revoke are all audit-logged.

Tools

  • get_profile — Your name, board, role, and this token's scopes.
  • list_meetings — Meetings on your board (upcoming first by default) with pack status. Use get_meeting for the agenda and pack.
  • get_meeting — Agenda, decisions on the agenda, pack documents you can see, open actions, and conflicts for one meeting (markdown).
  • list_open_decisions — Decisions on your board that are not yet adopted, defeated, withdrawn, superseded, or closed.
  • get_decision — One decision: brief, options, motion, votes, conflicts and recusals, actions, and evidence you can see (markdown).
  • list_my_actions — Open action items assigned to you on this board, with due dates and linked decisions.
  • get_document — 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).
  • draft_pre_meeting_question — 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.

REST API (same tools)

curl -H "Authorization: Bearer pb_pat_YOUR_TOKEN" https://preparedboard.com/api/agent/v1/meetings

GET  https://preparedboard.com/api/agent/v1/me
GET  https://preparedboard.com/api/agent/v1/meetings?when=upcoming|past|all
GET  https://preparedboard.com/api/agent/v1/meetings/{id}
GET  https://preparedboard.com/api/agent/v1/decisions            (open decisions)
GET  https://preparedboard.com/api/agent/v1/decisions/{id}
GET  https://preparedboard.com/api/agent/v1/actions              (your open action items)
GET  https://preparedboard.com/api/agent/v1/documents/{id}
POST https://preparedboard.com/api/agent/v1/meetings/{id}/questions  {"question": "..."}   (questions:draft scope)

Limits

  • Uploaded PDFs: the assistant gets the title, confidentiality, and a link — not the file bytes.
  • No votes, approvals, minutes edits, or messages can be made through the API.
  • Your assistant’s provider handles what you send it under its own terms. Check your board’s AI policy first; see /trust/ai.

Machine-readable facts: /llms.txt · /agent-facts.json