Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ebdbe18
DATAGO-103482: Added Optional Params for multiple broker support
Aryelmr Sep 19, 2025
10f6751
DATAGO-112318 moved code and updated project structure
rudraneel-chakraborty Oct 6, 2025
fc49215
DATAGO-112318 moved code and updated project structure
rudraneel-chakraborty Oct 6, 2025
f2cf680
DATAGO-112318 moved code and updated project structure
rudraneel-chakraborty Oct 7, 2025
c147adf
DATAGO-112318 added unit tests
rudraneel-chakraborty Oct 7, 2025
7d6898e
Update solace-event-portal-designer-mcp/src/solace_event_portal_desig…
rudraneel-chakraborty Oct 8, 2025
18dcfd7
DATAGO-112318 wip
rudraneel-chakraborty Oct 8, 2025
3c2ab92
DATAGO-112318 PR comments
rudraneel-chakraborty Oct 8, 2025
6cc9453
DATAGO-112318 PR comments
rudraneel-chakraborty Oct 9, 2025
c9e69e2
DATAGO-112318 PR comments
rudraneel-chakraborty Oct 9, 2025
879e972
DATAGO-103482: Added to README.md the Dynamic Broker Configuration
Aryelmr Oct 10, 2025
c046b1e
DATAGO-112318 readme update
rudraneel-chakraborty Oct 14, 2025
8e58ce1
DATAGO-112318 readme update
rudraneel-chakraborty Oct 14, 2025
e935f99
DATAGO-112318 readme update
rudraneel-chakraborty Oct 14, 2025
7c03ecd
DATAGO-112318 readme update
rudraneel-chakraborty Oct 15, 2025
da301ae
DATAGO-112318 readme update
rudraneel-chakraborty Oct 15, 2025
fe58d22
Updated some docs based on Claude security analysis recommendations a…
moodiRealist Oct 16, 2025
8541104
DATAGO-112318 PR comments
rudraneel-chakraborty Oct 16, 2025
9bff0ac
Fix Australia base URL in README and example JSON
JKaram Oct 17, 2025
c37c68f
Fix Australia base URL in README and example JSON
JKaram Oct 17, 2025
cf19143
Update README.md
moodiRealist Oct 20, 2025
757158f
#8 Issue fixed for repeatable select query parameter
peetkes Oct 22, 2025
b250113
DATAGO-113999: Address rebranding of pubsub+
moodiRealist Oct 22, 2025
c778bd5
Merge pull request #10 from SolaceLabs/moodiRealist/DATAGO-113999-rew…
moodiRealist Oct 22, 2025
b8421d9
Merge branch 'main' into DATAGO-112318-Move-EP-MCP-Server-to-SolaceLabs
moodiRealist Oct 22, 2025
5b032ea
Merge pull request #7 from SolaceLabs/DATAGO-112318-Move-EP-MCP-Serve…
moodiRealist Oct 22, 2025
2a2e7a5
Merge branch 'main' of https://github.com/SolaceLabs/solace-platform-…
Aryelmr Oct 28, 2025
85b6ec0
DATAGO-103482: Modifed Multiple Broker support to Aliases
Aryelmr Oct 28, 2025
73b3141
DATAGO-105622: Add a statement about mcp being used in a controlled e…
moodiRealist Oct 30, 2025
c5bcc8a
DATAGO-105622: change version to 0.1.0
moodiRealist Oct 30, 2025
009e173
Merge pull request #11 from SolaceLabs/moodiRealist/DATAGO-105622-rel…
moodiRealist Oct 30, 2025
0bbd1c3
Fixed issue with msgVpnName property from the broker response
peetkes Nov 3, 2025
6442cfc
DATAGO-105622: Upversion fastmcp
moodiRealist Nov 3, 2025
67eb583
Merge pull request #12 from SolaceLabs/moodiRealist/DATAGO-105622-rel…
moodiRealist Nov 3, 2025
670b778
Remove outdated configuration examples reference from README
bol444 Nov 3, 2025
fb2eda9
Update README links to use direct link to Github
bol444 Nov 3, 2025
e8e63d3
Update README to reflect final release status for version 0.1.0
bol444 Nov 3, 2025
5fd3dde
DATAGO-105622: add missing items for the fossa scans.
moodiRealist Nov 3, 2025
ae50ae1
Merge pull request #13 from SolaceLabs/boliao/DATAGO-105622-update-re…
bol444 Nov 3, 2025
c6ce6ee
Merge pull request #14 from SolaceLabs/moodiRealist/DATAGO-105622-fossa
moodiRealist Nov 3, 2025
a4c7203
DATAGO-105622: update requirements
moodiRealist Nov 4, 2025
48cb3ee
Merge pull request #15 from SolaceLabs/moodiRealist/DATAGO-105622-upd…
moodiRealist Nov 4, 2025
111157f
DATAGO-105622: Add 3rd party licenses to the ep-designer mcp folder
moodiRealist Nov 4, 2025
8697901
Merge pull request #16 from SolaceLabs/moodiRealist/DATAGO-105622-add…
moodiRealist Nov 4, 2025
d890c85
DATAGO-103482: Fixed single broker config when using aliases
Aryelmr Nov 4, 2025
d251726
Merge pull request #6 from SolaceLabs/DATAGO-103482
Aryelmr Nov 4, 2025
1a796d8
Issue fixed for repeatable select query parameter
peetkes Oct 22, 2025
38cd6ea
Fixed issue with msgVpnName property from the broker response
peetkes Nov 3, 2025
7c38df6
Merge branch 'issue#8' of https://github.com/peetkes/solace-platform-…
peetkes Nov 6, 2025
a4b3ae5
created wrappers around the original functions.
peetkes Nov 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .fossa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: 3


project:
locator: custom+48578/github.com/SolaceLabs/solace-platform-mcp
name: solace-event-portal-designer-mcp
team: event-portal
teams:
- solace-cloud
- event-portal
labels:
- mcp-servers
paths:
only:
- ./solace-event-portal-designer-mcp
exclude: []

telemetry:
scope: full
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -171,3 +171,4 @@ cython_debug/
*.swo
*~
.DS_Store
.claude
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Fork the current repository and clone your fork
locally.

```sh
git clone https://github.com/solacecommunity/<github-repo>
git clone https://github.com/SolaceLabs/solace-platform-mcp
```

#### Step 2: Branch
Expand Down Expand Up @@ -66,7 +66,7 @@ $ git rebase upstream/master
If you have not set the upstream, do so as follows:

```sh
$ git remote add upstream https://github.com/solacecommunity/<github-repo>
$ git remote add upstream https://github.com/SolaceLabs/solace-platform-mcp
```

If you have already pushed your fork, then do not rebase. Instead merge any changes from master that are not already part of your branch.
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@ These servers enable Large Language Models (LLMs) to securely access, monitor, a
## Purpose

The MCP servers in this repository provide standardized interfaces for AI systems to:
- Monitor Solace PubSub+ event brokers in real-time
- Monitor Solace event brokers in real-time
- Retrieve metrics and operational data from Solace products
- Execute management operations through natural language instructions
- Access event mesh topology and configuration information
- Analyze message flow patterns and performance metrics


## 👀 Explore available MCP server(s)
## 👀 Explore available MCP servers
- [Solace Monitoring MCP Server for Solace Agent Mesh](solace-monitoring-mcp-server/)
- [Solace Event Portal Designer MCP Server](solace-event-portal-designer-mcp/)
- more coming soon


Expand Down
209 changes: 209 additions & 0 deletions solace-event-portal-designer-mcp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
# (EA) Solace Event Portal Designer MCP Server

> **FINAL RELEASE** - Version: 0.1.0

The Event Portal MCP (Model Context Protocol) Server is designed to revolutionize how developers interact with event-driven architecture by bringing Event Portal’s comprehensive EDA design capabilities directly into AI-assisted IDEs like Claude Code. This powerful integration tool bridges the gap between Event Portal’s rich event management features and modern development workflows, enabling developers to seamlessly access, create, and manipulate EDA assets through natural language conversations without leaving their preferred development environment.

Whether you’re developing applications already designed in Event Portal or creating new event-driven architectures from scratch, this Early Access MCP server allows you to retrieve design information including produced/consumed events and schemas, access AsyncAPI specifications, generate application code, and even create new application versions in Event Portal Designer—all through simple chat interfaces in your IDE.

By meeting developers where they are and eliminating context switching between tools, the Event Portal MCP Server aims to streamline the entire event-driven application development lifecycle from design to implementation.

## Table of Contents

- [Prerequisites](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#prerequisites)
- [Quick Start](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#quick-start)
- [Installation](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#installation)
- [Recommended: No installation needed](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#recommended-no-installation-needed)
- [Alternative: Pre-install with pip](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#alternative-pre-install-with-pip)
- [Configuration](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#configuration)
- [Multi-Region Support](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#multi-region-support)
- [Environment Variables](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#environment-variables)
- [Available Tools](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#available-tools)
- [Example Usage](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#example-usage)
- [Troubleshooting](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#troubleshooting)
- [Verify your setup is working](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#verify-your-setup-is-working)
- [Common Issues](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#common-issues)
- [Development](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#development)
- [Running Tests](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#running-tests)
- [Manual Testing](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#manual-testing)

## Prerequisites

- **Python 3.10+** - Required to run the MCP server (includes `pip3`)
- **[uv](https://docs.astral.sh/uv/)** - Required if using `uvx` in your MCP client configuration (recommended). Not needed if using pip installation method.
- **MCP Client** - Such as [Claude Desktop](https://claude.ai/download) or [Cline](https://github.com/cline/cline)
- **Solace Cloud Account** - With access to Event Portal. [Sign up for free](https://console.solace.cloud/login/new-account)

## Quick Start

1. **Get an API Token** from the [Cloud Console](https://console.solace.cloud/). Ensure the token has **"Event Portal > Designer > Read"** permissions (and appropriate write permissions if you need to create/modify objects).

2. **Add to your MCP client configuration** (e.g., Claude Desktop, Cline):

```json
{
"mcpServers": {
"solace-event-portal-designer": {
"command": "uvx",
"args": ["solace-event-portal-designer-mcp"],
"env": {
"SOLACE_API_TOKEN": "<your-api-token>"
}
}
}
}
```

3. **Restart your MCP client** and start asking questions about Event Portal.

**Example prompts:**
- "List all application domains in my Event Portal"
- "Show me events in the OrderManagement domain"

## Usage Guidelines

This MCP server is intended for use with AI assistants (such as Claude Desktop or Cline) in a controlled environment with human oversight. It is not designed for automated workflows like GitHub Actions or unattended automation systems.

When using this tool, you share responsibility for the data privacy of your Solace Cloud data. Use API tokens with appropriate permissions and follow your organization's security policies.

## Installation

### Recommended: No installation needed

If you use `uvx` in your MCP client configuration (as shown above), the package will be automatically downloaded when your client starts.

### Alternative: Pre-install with pip

```bash
# Install from PyPI
pip install solace-event-portal-designer-mcp

# Or install from Git
pip install git+https://github.com/SolaceLabs/solace-platform-mcp.git#subdirectory=solace-event-portal-designer-mcp
```

Use this option if your MCP client doesn't support `uvx` or you prefer pre-installing. Then use `"command": "solace-ep-designer-mcp"` in your configuration instead of `uvx`.

## Configuration

### Multi-Region Support

By default, the server connects to the US region. If your Solace Cloud account is in a different region, set the `SOLACE_API_BASE_URL` environment variable in your MCP client configuration:

| Region | Base URL |
|--------|----------|
| United States (default) | `https://api.solace.cloud` |
| Australia | `https://api.solacecloud.com.au` |
| Europe | `https://api.solacecloud.eu` |
| Singapore | `https://api.solacecloud.sg` |

**Example configuration for Australia:**
```json
{
"mcpServers": {
"solace-event-portal-designer": {
"command": "uvx",
"args": ["solace-event-portal-designer-mcp"],
"env": {
"SOLACE_API_TOKEN": "<your-token>",
"SOLACE_API_BASE_URL": "https://api.solacecloud.com.au"
}
}
}
}
```

## Environment Variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `SOLACE_API_TOKEN` | Yes | - | Your Solace API token |
| `SOLACE_API_BASE_URL` | No | `https://api.solace.cloud` | Base URL for Solace Cloud API |

See [Managing your API Tokens](https://docs.solace.com/Cloud/ght_api_tokens.htm) and [Authentication](https://api.solace.dev/cloud/reference/authentication) for details on creating a token. Ensure the API Token has at least "Event Portal > Designer > Read" permissions.

## Available Tools

This server provides a comprehensive set of tools for full CRUD operations on Solace Event Portal Designer objects:

- **Application Domains** - Create, read, update, delete, and list domains
- **Applications** - Manage applications and their versions
- **Events** - Manage events and their versions
- **Schemas** - Manage schemas and their versions
- **AsyncAPI Export** - Generate AsyncAPI specifications from application versions

### Example Usage

Use your AI assistant to:
- "List all events in my application domain"
- "Create a new schema for order events"
- "Export an AsyncAPI spec for application version X"
- "Show me all applications that publish the OrderCreated event"

## Troubleshooting

### Verify your setup is working

After configuring your MCP client, verify the connection:

1. **Restart your MCP client** (e.g., Claude Desktop, Cline)
2. **Ask a simple question** like: "List my application domains"
3. If it works, you'll see results from Event Portal

### Common Issues

**"API token not found" or authentication errors:**
- Ensure `SOLACE_API_TOKEN` is set correctly in your MCP client configuration
- Verify your token hasn't expired in the [Cloud Console](https://console.solace.cloud/)
- Check the token has appropriate permissions

**"Connection refused" or timeout errors:**
- Check if you're using the correct region via `SOLACE_API_BASE_URL` (see [Multi-Region Support](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#multi-region-support))
- Verify your network allows connections to `api.solace.cloud` (or your region's URL)

**"Command not found" errors:**
- Verify you have the [prerequisites](https://github.com/SolaceLabs/solace-platform-mcp/tree/main/solace-event-portal-designer-mcp#prerequisites) installed
- If using pip install, run `which solace-ep-designer-mcp` to verify installation

## Development

This project uses [uv](https://docs.astral.sh/uv/getting-started/installation/) for dependency management.

```bash
# Clone repo
git clone https://github.com/SolaceLabs/solace-platform-mcp.git
cd solace-platform-mcp/solace-event-portal-designer-mcp

# Install dependencies
uv sync

# Install in editable mode
uv pip install -e .

# Make changes, test immediately (no rebuild needed)
```

### Running Tests

```bash
# Install development dependencies
uv sync --extra dev

# Run all tests
uv run pytest

# Run with coverage
uv run pytest --cov=solace_event_portal_designer_mcp --cov-report=term-missing
```

### Manual Testing

```bash
# Verify installation
which solace-ep-designer-mcp

# Test server starts (will wait for MCP protocol input on stdin)
export SOLACE_API_TOKEN="your-token"
solace-ep-designer-mcp
# Press Ctrl+C to exit
```
Loading