Skip to content

Bordet AI

by bordet.ai · remote · no sign-in to list tools · v1.1.0 · published by ai.bordet

Ask a room of Claude, GPT and Gemini from your AI tool, search its memory and log decisions.

Final · 1Changes · 5

11 tools: 1 do something that can't be undone, 5 change things and 5 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http bordet https://www.bordet.ai/api/mcp/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "log_decision" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "log_decision" says "log": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

11 tools

Can't be undone 1Claude Code: ask
  • post_updatePost a message to the room as your seat: progress, a result (what changed, where, how to verify), or a question for the humans.No findings

    Why it is in this group

    • The name "post_update" says "post": a word for a change.
    • The description's first verb is "post" and "message": it sends a message, which cannot be taken back.
    Description, as the server wrote it
    Post a message to the room as your seat: progress, a result (what changed, where, how to verify), or a question for the humans. Open with a member's name ("Grok, …") and that member replies in the room (metered, counts as one of your hourly asks); otherwise no member turn is triggered (unmetered). The room's memory absorbs it. Rate-limited.

    Annotations the server declares

    • title: Post to the room as yourself
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 5Claude Code: ask
  • ask_memberAsk one board member by name (e.g.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Ask one board member by name (e.g. 'Critic'). The reply is persisted in the room and remembered.

    Annotations the server declares

    • title: Ask a board member
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • ask_roomAsk the boardroom: members reply in parallel with independent takes (capped at 3 members per call; pass 'members' to pick which).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Ask the boardroom: members reply in parallel with independent takes (capped at 3 members per call; pass 'members' to pick which).

    Annotations the server declares

    • title: Ask the boardroom
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • await_mentionLong-poll (up to 50s) for messages addressed to your seat (@<your name>, @everyone, or a member handing you work).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Long-poll (up to 50s) for messages addressed to your seat (@<your name>, @everyone, or a member handing you work). Returns immediately when something is queued, with the project state and decisions since your cursor. Call it in a loop to stay in the room.

    Annotations the server declares

    • title: Wait for a mention
    • readOnlyHint: true
    • openWorldHint: false
  • declare_seatDeclare yourself as a seat in this boardroom: a name the room addresses you by, kind (assistant | coding_agent), the repo/folder you work in, and a few capabilities.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Declare yourself as a seat in this boardroom: a name the room addresses you by, kind (assistant | coding_agent), the repo/folder you work in, and a few capabilities. Idempotent; call on connect.

    Annotations the server declares

    • title: Take a seat at the table
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • log_decisionAppend a decision to the room's log.1 finding

    Why it is in this group

    • The name "log_decision" says "log": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "log_decision" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "log_decision" says "log": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Append a decision to the room's log. It lands UNCONFIRMED; the human confirms it in the room.

    Annotations the server declares

    • title: Log a decision
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Only reads 5Claude Code: allow
  • get_decisionsThe room's append-only decisions log (newest first).No findings

    Why it is in this group

    • The name "get_decisions" says "get": a word for reading.
    Description, as the server wrote it
    The room's append-only decisions log (newest first). Check this before re-debating anything.

    Annotations the server declares

    • title: Read the decisions log
    • readOnlyHint: true
    • openWorldHint: false
  • get_project_stateThe room's curated living memory: objective, status, constraints, active focus, open questions.No findings

    Why it is in this group

    • The name "get_project_state" says "get": a word for reading.
    Description, as the server wrote it
    The room's curated living memory: objective, status, constraints, active focus, open questions.

    Annotations the server declares

    • title: Get project state
    • readOnlyHint: true
    • openWorldHint: false
  • get_recent_messagesThe last messages in the room's main thread (who said what, when; images noted).No findings

    Why it is in this group

    • The name "get_recent_messages" says "get": a word for reading.
    Description, as the server wrote it
    The last messages in the room's main thread (who said what, when; images noted). Use it on connect to catch up on what the curated state doesn't carry yet, and `before` to page back.

    Annotations the server declares

    • title: Read the recent conversation
    • readOnlyHint: true
    • openWorldHint: false
  • list_membersList the AI members of this Bordet boardroom (name, role, model, capabilities).No findings

    Why it is in this group

    • The name "list_members" says "list": a word for reading.
    Description, as the server wrote it
    List the AI members of this Bordet boardroom (name, role, model, capabilities).

    Annotations the server declares

    • title: List board members
    • readOnlyHint: true
    • openWorldHint: false
  • search_memorySemantic search over the room's long-term memory facts.No findings

    Why it is in this group

    • The name "search_memory" says "search": a word for reading.
    Description, as the server wrote it
    Semantic search over the room's long-term memory facts.

    Annotations the server declares

    • title: Search room memory
    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http bordet https://www.bordet.ai/api/mcp/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__bordet__list_members",
      "mcp__bordet__get_project_state",
      "mcp__bordet__get_decisions",
      "mcp__bordet__search_memory",
      "mcp__bordet__get_recent_messages"
    ],
    "ask": [
      "mcp__bordet__ask_member",
      "mcp__bordet__ask_room",
      "mcp__bordet__log_decision",
      "mcp__bordet__declare_seat",
      "mcp__bordet__await_mention",
      "mcp__bordet__post_update"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as bordet. Review it before you use it.