Skip to content

MCP server ​

Studio speaks the Model Context Protocol, so an assistant can answer "why is ORDERS.DLQ backed up" against your real clusters instead of guessing.

The surface is sixteen intent-shaped tools — diagnose, message_action, broker_config_change — not a mirror of the REST API. A mirror would spend the model's context on plumbing and leave it to assemble the diagnosis; the tools are shaped like the questions instead (ADR-0045).

Get a key ​

Sign in → avatar menu → Account → API keys → New key → choose the scope and permissions it carries → copy the value. It is shown once.

Connect ​

POST /mcp, on the same origin as the UI, with the key as a bearer token.

json
{
  "mcpServers": {
    "artemis-studio": {
      "type": "http",
      "url": "https://studio.example.com/mcp",
      "headers": { "Authorization": "Bearer as_..." }
    }
  }
}

Smoke-test it without a client:

bash
curl -s https://studio.example.com/mcp \
  -H "Authorization: Bearer as_..." \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

scripts/mcp-config-e2e.sh drives the whole configuration loop over this wire — handshake, tools/list, declare, plan, refuse a stale plan, apply, converge, and every read kind — against the dev stack, and removes what it applied so it can be run again.

What is there ​

KindNameFor
Toolstudio_helpthe catalogue itself: every tool, its posture and its parameters
Tooldiagnosea cluster (HA role per node, split-brain, replication lag, firing alerts) or one queue end to end
Toollist_resourcesqueues, addresses, consumers, sessions, connections, producers, diverts, bridges
Toolmetric_seriesa bucketed timeseries for one metric
Toolconfig_diffclassified configuration differences between two nodes
Toolbroker_configthe cluster's declaration, its drift per node, the broker.xml fragment, or past applies
Toolbrowse_messagesheaders, or one body by id
Tooltrace_request_replyflows, latency and timeout statistics, configured expectations
Toolactivity_logbroker events, or Studio's own audit trail
Toolmessage_actionmove / retry / delete / expire / purge
Toolqueue_lifecyclecreate, update, pause, resume or destroy a queue, address or divert
Toolbroker_config_changedeclare a configuration, or apply it canary-first with hazards acknowledged by id
Toolconnection_actionclose a connection, session, consumer or an address's consumers
Toolsend_messageenqueue one message
Toolalert_rule / studio_settingalert rules; operational settings
Resourcestudio://clusters, studio://permissions, studio://toolswhat this key can see and do
Resourcecluster://{id}/topology, cluster://{id}/capabilities, cluster://{id}/nodes/{nodeId}/settingsnodes; what the connection supports, with the broker.xml to enable what it does not; one node's effective settings
Prompttriage_cluster, investigate_queue, before_you_purge, tune_scrape_loadrunbooks

The safety contract ​

An assistant with a management API is exactly where a safety model needs to be boring and explicit. This one is:

  • A key never exceeds its owner. Grants are intersected with the owner's live grants on every call, so narrowing a person narrows their keys at once (ADR-0046).
  • Mutations dry-run by default. A real destructive run additionally requires confirm to equal the queue's own name — separate from the bulk-cap override, which answers a different question and is never satisfied by confirm.
  • A configuration apply is the same contract at cluster scale. The dry run returns the plan, its hazards and the exact acknowledge ids a real run must echo; the real run needs confirm to equal the cluster's name and expectedPlanHash to equal the hash it previewed, goes canary first and halts at the first failure. See Broker configuration.
  • Everything is audited under the owner with the key's name attached (ada [token: laptop-agent]), dry runs included.
  • A cluster the key holds no grant on comes back as "no such cluster, or this key has no grant on it" — naming no permission and confirming no id.

Discovery ​

studio_help is a tool, not an optional resource, and one catalogue generates the schemas, the help text, the resource and the server instructions — so they cannot disagree (ADR-0054).

Apache-2.0. Apache ActiveMQ and Apache ActiveMQ Artemis are trademarks of the Apache Software Foundation. Artemis Studio is an independent project, not produced by, endorsed by, or affiliated with the ASF.