BROKABROKA
Sign inDownload CommunityPricing
GuideGovernance

An AI assistant, under the same rules as a person

The quick way to let an assistant work on your brokers is to give it a broker credential. BROKA Commercial gives it a person instead — that person's permissions, the environment's guards, and the same audit trail as the console.

6 min read

BROKA Commercial serves an MCP server from the console itself. An assistant connected to it acts as the owner of an API token: it reads what that person may read, changes what they may change, stops where the environment stops them, and every call lands on the audit trail. MCP is a way to call BROKA, never a way around it.

The usual alternative, a broker credential pasted into the assistant's configuration, works — and afterwards the broker sees a shared identity, no environment policy stood in the way, and the record says "someone with the key".

The question Where BROKA answers it
May assistants reach this installation at all? Settings ▸ MCP — Off, Read only, or Read and write. Off by default
Who is the assistant? The owner of the API token it sends
What may it touch? That person's permissions, narrowed further by the token, and mcp.use to reach the server
May this change happen here? The environment's write policy, exactly as for the console
What did it do? The audit trail, each event marked with the MCP channel

1 — Off until an administrator turns it on

The server answers at /api/mcp, on the address and port the console is already published on — no separate service, no extra port — over MCP's Streamable HTTP transport. Settings ▸ MCP has three modes:

  • Off — the default. /api/mcp answers 404 to everybody, as if it were not there.
  • Read only — the tools that read, and the previews, are listed. Every tool that changes something is hidden, and refused if called.
  • Read and write — every tool the token's owner could use is listed. Saving it asks for confirmation first: Let assistants make changes.

The page needs settings.manage, and every change of mode is recorded with the mode before and after. The screen puts the consequence plainly: an assistant acts with the authority of the token's owner.

Settings ▸ MCP in Read only: the warning that an assistant acts with the authority of its token's owner, the Mode switch with Off, Read only and Read and write and the number of calls each token may make a minute, then Connect an assistant with the endpoint's address, its Copy button, and the configuration for Claude Code, Claude Desktop and Cursor.
The address is your console's own; each configuration carries where the token goes.

2 — The assistant is a person's token

The server accepts an API token sent as a bearer token; a console session is not accepted. Under Profile ▸ API tokens, someone who holds mcp.use sees an extra option, For an AI assistant (MCP). Ticking it makes a token that can do only what is ticked beneath it: every permission you hold is offered, mcp.use is always included, and you untick what the assistant does not need. Give an assistant a token of its own, with the scopes it needs and nothing more.

Profile ▸ API tokens with the New token sheet open for Cursor on the release laptop, expiring in 90 days: For an AI assistant (MCP) is ticked, Use the MCP server is always included, and beneath it every permission the owner holds is offered, grouped from Overview to Settings & governance and all still ticked, above Cancel and Create.
What is left ticked is all the token can do, and the token can never do more than its owner.

The owner's roles and grants are resolved again on every request, so a removed role, a disabled account, or an expired or revoked token stops the very next call.

mcp.use — Use the MCP server in the roles editor — is in the built-in Admin role and no other. It must be held installation-wide; a grant scoped to an environment or a connection does not open the server. And it confers nothing else: each tool behind it needs the permission its console screen needs, and a tool the token cannot use is not listed to it.

3 — Every guard the console has

Each tool calls the console's own routes with the caller's own token, so everything those routes check applies unchanged:

  • A read-only environment refuses every change. A guarded one needs a reason on every change; each tool that changes something takes a reason, and BROKA sends it with the change.
  • Resource grants. A connection, topic or queue the owner cannot see does not exist for the assistant either.
  • messages.read for message bodies, key values and payloads, as in the console.
  • Data masking. A masked field comes back masked, and an unmasked read is recorded whatever the read tier.

Some things only a person does, in the console, whatever the mode: users, teams, roles, grants and API tokens; the installation's settings, the MCP setting included; connections and environments; alerting; access on the brokers themselves, such as Kafka ACLs and RabbitMQ users; and operations on a whole cluster. An assistant acting on a token cannot widen its own reach.

4 — What it reads and what it changes

The tools cover the estate, Kafka with its Schema Registry and Kafka Connect, Redis, RabbitMQ, Apache Artemis, Memcached, and the console's own operations — the audit trail, access review, applications and resource metadata. Reads include message contents: kafka_read_messages, redis_get_key, artemis_browse_messages. Changes run from kafka_create_topic and kafka_produce to rabbitmq_purge_queue and memcached_delete_key.

Every tool has one of five kinds — read, write, destructive, preview or apply — and tells the client which through readOnlyHint, destructiveHint and idempotentHint, so a client that honours them can ask you before a destructive call. Note that rabbitmq_peek_messages is destructive: a peek takes messages from the head of the queue and puts them back marked redelivered.

5 — Preview, plan, apply

Where the console previews a change, MCP makes it two tools. The preview checks the change with the server, writes nothing, and returns what would change with a plan id. The apply tool takes only that plan id, so what is applied is exactly what was shown. A plan is good for ten minutes, is applied once, and belongs to the token that previewed it. The apply runs every check again: an environment that turned read-only in between refuses it.

Five changes work this way: a topic's configuration, a consumer group's offset reset, registering a schema, a connector's configuration, and deleting Redis keys by pattern.

Every destructive tool — a delete, a purge, an applied offset reset — requires a reason, in every environment. A call without one is refused before its arguments are read, and the refusal is recorded.

6 — On the record

Every tool call produces the audit record its console route produces, with the token's owner as the actor, and names the channel: MCP, the tool, the client's name and version, and the token's prefix. In Operations ▸ Audit Logs such a row carries an MCP badge, and the Channel filter — All channels, Console, MCP — answers "what did the assistant do on Tuesday?". Changes and refusals are always recorded; reads follow the installation's read tier. A refusal the server makes itself — no mcp.use, a change in Read only mode, a missing reason, an expired plan — is recorded as integration.mcp-tool.call.

Operations ▸ Audit Logs with the channel filter set to MCP beside All activity, All actors, All results and All environments, for 20.10.2026: 4 events, each with the token's owner, Nora Bergstrom, and the MCP badge — the ACLs of execution.reports listed and a consume session on it opened and closed, each a Read and a Success in Production, and integration.mcp-tool.call for kafka_create_topic, Blocked.
The MCP channel filter narrows the trail to what assistants did: three reads, and a create refused by the server itself, recorded beside them.

A message body or a connector's stack trace was written by somebody else, and an assistant may read instructions into it. BROKA returns such contents as data marked dataIsUntrusted, beside its own one-line summary. The marking tells the assistant; it cannot make it listen — which is why every change is its own call, Read only exists, and the token is the boundary that holds.

Connecting a client

Settings ▸ MCP shows the endpoint's address and ready configuration for Claude Code, Claude Desktop and Cursor. For Claude Code:

claude mcp add --transport http broka https://<host>/api/mcp --header "Authorization: Bearer <token>"

Any MCP client that can send that header connects the same way.

What this article does not cover

  • Every tool, one by one. MCP tools lists them by area, with each one's kind.
  • Limits, prompts and resources. They are on MCP server, with the configuration for each client. The MCP page describes the server from the product's side.

Applies to BROKA 1.0.1 and later · Commercial.