ballerina-activemq-mcp-server
Automates the full setup and deployment of Ballerina + Apache ActiveMQ integrations inside a WSO2 Integrator workspace, from broker validation to a runnable BI-low-code-ready project.
README
ballerina-activemq-mcp-server
An MCP server that automates the full setup and deployment of Ballerina + Apache ActiveMQ (OpenWire/JMS) integrations inside a WSO2 Integrator (BI) workspace — from broker validation to a runnable, BI-low-code-ready project — with minimal user interaction.
It generates code against the ballerinax/activemq connector (v0.1.0, Ballerina 2201.12.10),
matching the real connector API (Client / Listener / Caller / Transaction). See
INSPECTION_NOTES.md for the Phase 0 API inspection this is built on.
Tools
| Tool | Purpose |
|---|---|
mq_validate_broker |
TCP reachability to the OpenWire port (+ Jolokia console destination listing). |
mq_scaffold_project |
Main tool. Generate a complete BI-ready Ballerina project. |
mq_write_config_toml |
Write/rotate the broker Config.toml. |
mq_add_queue |
Add a queue producer/consumer helper module. |
mq_add_topic |
Add a topic (pub/sub) publisher helper module. |
mq_add_listener |
Add a Listener service — the polling-loop carrier — with ack-mode/transaction options. |
mq_set_ack_mode |
Change the acknowledgement mode on a listener service (edits the @activemq:ServiceConfig). |
mq_build_project |
Run bal build. |
mq_deploy_project |
Run bal run; returns PID (+ service URL). |
Acknowledgement modes
ack_mode |
Ballerina enum | Needs Caller? |
Semantics |
|---|---|---|---|
auto (default) |
AUTO_ACKNOWLEDGE |
no | auto-ack on successful onMessage return |
client |
CLIENT_ACKNOWLEDGE |
yes | caller->acknowledge(message) |
dups-ok |
DUPS_OK_ACKNOWLEDGE |
no | lazy ack, possible duplicates |
transacted |
SESSION_TRANSACTED |
yes | caller->'commit() / 'rollback() |
The ack mode is a compile-time annotation field, so it lives in
listener.bal(notConfig.toml).mq_set_ack_modeedits the source accordingly.
Build
npm install
npm run build
Run
# stdio (default — for MCP clients that spawn the server)
npm start
# streamable HTTP, bound to 127.0.0.1
npm run start:http # or: node dist/index.js --http --port 3000
Register with an MCP client (stdio)
{
"mcpServers": {
"ballerina-activemq": {
"command": "node",
"args": ["/absolute/path/to/ballerina-activemq-mcp-server/dist/index.js"]
}
}
}
What gets scaffolded
mq_scaffold_project writes a complete project under <bi_path>/<project_name>/:
Ballerina.toml · Dependencies.toml · Config.toml (+ .example, gitignored) · .gitignore
main.bal · listener.bal · transactions.bal · modules/<dest>/<dest>.bal
docker-compose.yml (apache/activemq-classic:6.2.0) · README.md
main.bal—configurablebroker settings +activemq:Clientproducer/consumer demo.listener.bal— the polling-loop carrier: a declarativeservice activemq:Service on mqListenerper destination, ack mode baked into@activemq:ServiceConfig.- Virtual topics — publish to
topic://VirtualTopic.<name>; consume the queueConsumer.<group>.VirtualTopic.<name>.
Design notes
This is JMS/OpenWire, not Kafka. Consumer groups, offset commits, partitions, and
bootstrap.servers have no analog here and are intentionally absent — reliability comes from
ack modes and transacted sessions. The closest thing to a consumer group is an ActiveMQ
Virtual Topic, modeled as a queue naming convention. See INSPECTION_NOTES.md for the full
rejected-Kafka-patterns rationale.
License
Apache-2.0
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.