You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@artemis.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2026/06/16 21:21:00 UTC

[jira] [Work logged] (ARTEMIS-6118) Add a Model Context Protocol (MCP) server for Artemis

     [ https://issues.apache.org/jira/browse/ARTEMIS-6118?focusedWorklogId=1025480&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1025480 ]

ASF GitHub Bot logged work on ARTEMIS-6118:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 16/Jun/26 21:20
            Start Date: 16/Jun/26 21:20
    Worklog Time Spent: 10m 
      Work Description: k-krawczyk opened a new pull request, #6519:
URL: https://github.com/apache/artemis/pull/6519

   > Draft. Opening this to share the implementation while the direction is
   > discussed on the dev@ list. Please do not merge until that discussion
   > reaches consensus.
   
   ## What
   
   Adds a new `artemis-mcp-server` reactor module: a Model Context Protocol (MCP)
   server that exposes broker operations as MCP tools over the STDIO transport, so
   AI agents can inspect, monitor and administer an Artemis broker through a
   standard protocol.
   
   JIRA: https://issues.apache.org/jira/browse/ARTEMIS-6118
   dev@ discussion: <link to the [DISCUSS] thread>
   
   ## Tools (15)
   
   Read-only (always available):
   `list_queues`, `list_addresses`, `get_broker_overview`, `get_queue_stats`, `browse_messages`
   
   Admin (registered only when `mode=admin`):
   `create_queue`, `create_address`, `delete_queue`*, `delete_address`*, `purge_queue`*,
   `delete_messages`*, `move_messages`*, `retry_dlq`*, `send_message`, `consume_message`*
   
   (*) destructive — require `confirm=true`, enforced by both the tool input schema and the handler.
   
   ## Design
   
   - Read-only mode is the DEFAULT; admin tools are not registered unless `mode=admin`.
   - Monitoring/management uses Artemis management messages to `activemq.management`
     (single broker connection, no open JMX required).
   - Messaging uses the Core/JMS client (browse = `QueueBrowser`, send = producer,
     consume = consumer).
   - MCP layer uses the MCP Java SDK (MIT / ASF Category A).
   
   ## Testing
   
   - 24 unit + integration tests against an embedded broker; green via `mvn install`.
   - Builds inside the reactor; Artemis checkstyle clean; apache-rat clean.
   - Verified end-to-end against an Apache Artemis broker running in Docker via real
     JSON-RPC `tools/call` (create/list/stats/browse/send/consume/purge/move/delete),
     including confirm-gating on destructive tools.
   
   ## Notes for reviewers
   
   - New dependency footprint: the MCP Java SDK pulls in Jackson 3.x,
     json-schema-validator, snakeyaml-engine and reactor-core. All ASF Category A.
     Happy to discuss trimming (e.g. `mcp-core` only) if the footprint is a concern.
   - `slf4j-simple` is a runtime logging binding for standalone use; happy to align
     with the distribution's logging setup.
   - Docs (`docs/`) and a binary-distribution LICENSE/NOTICE entry for the MIT SDK
     will follow once the direction is agreed.
   




Issue Time Tracking
-------------------

            Worklog Id:     (was: 1025480)
    Remaining Estimate: 0h
            Time Spent: 10m

> Add a Model Context Protocol (MCP) server for Artemis
> -----------------------------------------------------
>
>                 Key: ARTEMIS-6118
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-6118
>             Project: Artemis
>          Issue Type: New Feature
>            Reporter: Karol Krawczyk
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> *Background*
> Model Context Protocol (MCP, https://modelcontextprotocol.io) is an open
> standard that lets AI agents invoke well-defined tools against a system.
> Adding an MCP server for Artemis would let operators and AI agents inspect
> and manage a broker through a standard protocol.
> This was discussed on the dev@ list: <wklej link do wątku [DISCUSS]>.
> Several Apache projects already provide first-party MCP servers, e.g.
> KAFKA-20436, SPARK-56698, FLINK-38800, HIVE-29558, IGNITE-26563, SOLR-17944,
> CAMEL-21925.
> *Proposal*
> A new Java module exposing broker operations as MCP tools:
> messaging: send / browse / consume messages (Core/JMS client)
> management: list/create/delete queues & addresses, queue info (Artemis management messages)
> monitoring: broker overview, queue stats, consumers, connections (JMX/Jolokia where needed)
> administration: purge / move / delete messages, retry DLQ
> *Design notes*
> Prefer Artemis management messages (single broker connection, no mandatory open JMX).
> Dependency: MCP Java SDK (io.modelcontextprotocol.sdk:mcp) — MIT / ASF
> Category A. Transitive deps (Jackson, Reactor) are Apache-2.0. LICENSE/NOTICE
> to be updated; verified by apache-rat.
> Safety: read-only mode is the DEFAULT. Destructive tools require an explicit admin mode plus a `confirm` flag.
> Transport: STDIO and/or HTTP/SSE.
> *Scope / increments*
> MVP (this issue or first PR): monitoring + read-only messaging, well tested.
> Follow-up PRs: management, then administration (destructive ops).
> *Acceptance*
> Builds with `mvn clean install`; passes checkstyle and apache-rat.
> Unit + integration tests against a running broker, in the style of existing module tests.
> User-manual docs under docs/ and a module README.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@artemis.apache.org
For additional commands, e-mail: issues-help@artemis.apache.org