Skip to main content
Glama

Bot Office

Server Details

Report AI bot work to a live office; ask a person to approve risky actions; work queue and memory.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

create_office provisions a brand new office with no credential, while join_office requests membership in an existing office using a boj_ code. The two purposes are mutually exclusive and cannot be mistaken for one another.

Naming Consistency5/5

Both tools follow a clean verb_noun convention (create_office, join_office) with matching snake_case and parallel verb choices. No deviation exists in this two-tool set.

Tool Count2/5

Only two tools are exposed for a domain that clearly spans provisioning, joining, approval polling, token minting, and event reporting. The surface is too thin to be a self-sufficient server, with much of the workflow pushed to raw REST endpoints mentioned in the descriptions.

Completeness2/5

There is no tool to read an office, approve or reject pending joiners, list bots, or send reports — the descriptions explicitly defer these to POST /v1/join/status, mint_bot_links, and report_to_office on other surfaces. An agent must fall back to manual HTTP calls to complete any lifecycle beyond initial create/join.

Available Tools

2 tools
create_officeCreate an officeAInspect

Create a new Bot Office with no credential (same as POST /v1/workspaces; 10 per address per hour). The answer carries workspace_id, office_url and ingest_key: the office ACCESS CODE, shown once and never recoverable. Give the access code to your human (it manages the office); then mint your own bot link with it (mint_bot_links on /mcp with Authorization: Bearer , or POST /v1/workspaces/:id/tokens) and connect to /mcp with that bot link to report. Example: {"name":"Acme Dental","url":"https://acme-dental.example"} (url is optional: the office takes the site's name, colours and industry when given).

NameRequiredDescriptionDefault
kitNoIndustry kit id when you know it (e.g. generic, dental, gov-cyber, msp). Optional.
urlNoThe organisation's website, http(s). Optional: used for the name, colours and industry kit.
nameNoThe organisation's name (shown on the office).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing a rate limit (10 per address per hour), that no credential is required, and critically that the returned ingest_key is an ACCESS CODE shown once and never recoverable — a one-way disclosure an agent must know before calling. It also spells out the multi-step follow-up workflow that the annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the create action, rate limit and the unrecoverable access-code warning before the downstream workflow, which is the right ordering. It is dense with stacked parentheticals and one long chained sentence, so it is efficient rather than elegant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming the three returned fields (workspace_id, office_url, ingest_key) and their significance. For a creation tool with a one-time secret, this covers everything an agent needs to call it and act on the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the burden is already met; the description adds only a worked example and the reminder that url is optional. It says nothing extra about the kit parameter that the schema does not already cover, so this sits at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create a new Bot Office") plus the crucial qualifier "with no credential" and the backing endpoint (POST /v1/workspaces). This is enough for an agent to distinguish it from join_office, which by contrast attaches to an existing office.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear operational context: create here, hand the access code to the human, then mint a bot link via mint_bot_links or POST /v1/workspaces/:id/tokens and connect to /mcp. It never explicitly says when to prefer the sibling join_office, so the exclusion is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

join_officeJoin an officeAInspect

Ask to join a Bot Office with the office code your owner gave you (boj_...). Send your own name, the platform you run on and one line on what you do. Usually the owner must approve you first: the answer is status pending with a join_pass; POST /v1/join/status with Authorization: Bearer <join_pass> every 30 seconds until it says approved and carries your bot_token (shown once). Then add this MCP server again with that bot_token as Bearer (or /mcp/<bot_token>) to get report_to_office. The code only asks to join: it cannot read the office or send events.

NameRequiredDescriptionDefault
codeYesThe office code, boj_ followed by 43 characters. Never put it in a URL.
nameYesYour display name, at most 40 characters (text only).
purposeNoOne line: what you do. No customer data.
platformNoWhat runs you, one word (e.g. openai, claude, n8n).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the asynchronous approval flow, the pending status and join_pass return, the polling interval, that bot_token is shown once, and the hard limitation that this call cannot read the office or send events. This is exactly the operational context an agent needs before and after invoking a non-idempotent registration call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action, then walks through the post-call flow in a logical order with no filler. It is dense and slightly run-on across the polling and re-registration clauses, but nearly every sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by describing the return shape (status pending, join_pass, later bot_token) and the required follow-up sequence. Nothing an agent needs to complete the join flow correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so code, name, purpose and platform are already documented, including the boj_ prefix and character limits. The description restates the code's origin ('the office code your owner gave you') and the purpose/platform intent, adding only mild contextual value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Ask to join a Bot Office') and immediately distinguishes itself from the sibling create_office by framing the action as a request that requires an office code from an owner. The closing sentence further scopes it: 'The code only asks to join: it cannot read the office or send events.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the prerequisite (an office code from your owner), the approval gate, and the exact next steps: POST /v1/join/status with the join_pass every 30 seconds until approved, then re-add the server with the bot_token. It does not name create_office as the alternative, so the routing guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedcreate_office
    • First observedjoin_office

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to request human approval before consequential actions, with policy-based routing, phone-based approver decisions, and signed audit evidence.
    40 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Human approval for AI agents: request_human_approval pauses a high-stakes action until a named person approves or rejects (console, email, Telegram, Slack); silence is not consent. Every decision is sealed in a hash-chained audit log. EU-hosted.
    3
    47 PyPI
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources