You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Java](https://mvnrepository.com/artifact/org.apache.iggy/iggy-java-sdk) - complete async API using Netty with CompletableFutures, TLS TCP support, fixed memory leak for sync client
46
+
-[Java](https://mvnrepository.com/artifact/org.apache.iggy/iggy) - complete async API using Netty with CompletableFutures, TLS TCP support, fixed memory leak for sync client
Copy file name to clipboardExpand all lines: content/blog/release-0.7.0.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,7 +97,7 @@ All SDKs now have **auto-publishing** enabled — edge and RC versions are autom
97
97
98
98
-[Rust](https://crates.io/crates/iggy) — improved high-level producer/consumer with ordered sharding, graceful `shutdown()`, and message loss prevention; fixed `max_in_flight` permit acquisition and client reconnection after disconnect
99
99
-[C#](https://www.nuget.org/packages/Apache.Iggy/) — .NET 10 support, `DeleteSegments` and `GetSnapshot` methods, `TimeSpan`-based expiry handling, source link for debugging
100
-
-[Java](https://mvnrepository.com/artifact/org.apache.iggy/iggy-java-sdk) — fluent builder API (`Iggy.tcpClientBuilder().blocking()`), semantic exception hierarchy, BDD tests with Cucumber, user headers support, TLS for HTTP, memory leak detection in CI
100
+
-[Java](https://mvnrepository.com/artifact/org.apache.iggy/iggy) — fluent builder API (`Iggy.tcpClientBuilder().blocking()`), semantic exception hierarchy, BDD tests with Cucumber, user headers support, TLS for HTTP, memory leak detection in CI
101
101
-[Python](https://pypi.org/project/apache-iggy/) — `AsyncIterator` interface for `IggyConsumer`, `message_expiry` parameter in `create_topic`, Windows build support
102
102
-[Node.js (TypeScript)](https://www.npmjs.com/package/apache-iggy) — comprehensive JSDoc comments for improved API documentation and IDE support
103
103
-[Go](https://pkg.go.dev/github.com/apache/iggy/foreign/go) — leader redirection for cluster failover handling
Copy file name to clipboardExpand all lines: content/docs/ai/mcp.mdx
+127-2Lines changed: 127 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,16 @@
2
2
title: MCP Server
3
3
---
4
4
5
-
The [Model Context Protocol](https://modelcontextprotocol.io) (MCP) is an open protocol that standardizes how applications provide context to LLMs. The Apache Iggy MCP Server is an implementation of the MCP protocol for the message streaming infrastructure.
5
+
The [Model Context Protocol](https://modelcontextprotocol.io) (MCP) is an open protocol that standardizes how applications provide context to LLMs. The Apache Iggy MCP Server is an implementation of the MCP protocol for the message streaming infrastructure. It is built using the `rmcp` crate and supports both **stdio** and **HTTP** transports.
6
+
7
+
## Getting started
6
8
7
9
To start the MCP server, simply run `cargo run --bin iggy-mcp`.
8
10
9
11
The [docker image](https://hub.docker.com/r/apache/iggy-mcp) is available, and can be fetched via `docker pull apache/iggy-mcp`.
10
12
13
+
## Configuration
14
+
11
15
The minimal viable configuration requires at least the Iggy credentials, to create the connection with the running Iggy server using TCP with which the MCP server will communicate. You can choose between HTTP and STDIO transports (e.g. for the local usage with tools such as [Claude Desktop](https://claude.ai/download) choose `stdio`).
12
16
13
17
```toml
@@ -20,6 +24,11 @@ password = "iggy"
20
24
# token = "secret" # Personal Access Token (PAT) can be used instead of username and password
21
25
# consumer = "iggy-mcp" # Optional consumer name
22
26
27
+
# TLS settings for connecting to Iggy server
28
+
# [iggy.tls]
29
+
# enabled = false
30
+
# cert_file = "path/to/cert.pem"
31
+
23
32
[http] # Optional HTTP API configuration
24
33
address = "127.0.0.1:8082"
25
34
path = "/mcp"
@@ -43,10 +52,115 @@ create = true
43
52
read = true
44
53
update = true
45
54
delete = true
55
+
56
+
[telemetry] # Optional OpenTelemetry integration
57
+
enabled = false
58
+
service_name = "iggy-mcp"
46
59
```
47
60
48
61
Keep in mind that either of `toml`, `yaml`, or `json` formats are supported for the configuration file. The path to the configuration can be overriden by `IGGY_MCP_CONFIG_PATH` environment variable. Each configuration section can be also additionally updated by using the following convention `IGGY_MCP_SECTION_NAME.KEY_NAME` e.g. `IGGY_MCP_IGGY_USERNAME` and so on.
49
62
63
+
## Available tools
64
+
65
+
The MCP server exposes 40+ tools covering the full Iggy API:
66
+
67
+
### Server
68
+
69
+
| Tool | Description |
70
+
|------|-------------|
71
+
|`ping`| Health check |
72
+
|`get_stats`| Server statistics (streams, topics, partitions, OS info) |
73
+
|`get_me`| Current client info |
74
+
|`get_client`| Get specific client details |
75
+
|`get_clients`| List all connected clients |
76
+
|`get_cluster_metadata`| Cluster information |
77
+
|`snapshot`| Collect troubleshooting data |
78
+
79
+
### Streams
80
+
81
+
| Tool | Description |
82
+
|------|-------------|
83
+
|`get_streams`| List all streams |
84
+
|`get_stream`| Get stream details |
85
+
|`create_stream`| Create a new stream |
86
+
|`update_stream`| Update stream name |
87
+
|`delete_stream`| Delete a stream |
88
+
|`purge_stream`| Purge all messages from a stream |
89
+
90
+
### Topics
91
+
92
+
| Tool | Description |
93
+
|------|-------------|
94
+
|`get_topics`| List topics in a stream |
95
+
|`get_topic`| Get topic details |
96
+
|`create_topic`| Create a new topic |
97
+
|`update_topic`| Update topic settings |
98
+
|`delete_topic`| Delete a topic |
99
+
|`purge_topic`| Purge all messages from a topic |
100
+
101
+
### Partitions & Segments
102
+
103
+
| Tool | Description |
104
+
|------|-------------|
105
+
|`create_partitions`| Add partitions to a topic |
106
+
|`delete_partitions`| Remove partitions from a topic |
107
+
|`delete_segments`| Delete segments from a partition |
The `[permissions]` section provides a first layer of access control, checked before any request is forwarded to the Iggy server. This lets you restrict the MCP server to read-only operations, for example:
151
+
152
+
```toml
153
+
[permissions]
154
+
create = false
155
+
read = true
156
+
update = false
157
+
delete = false
158
+
```
159
+
160
+
On top of this, the Iggy user account used by the MCP server has its own granular permissions. For production use, create a dedicated user with the minimum required permissions.
161
+
162
+
## Claude Desktop integration
163
+
50
164
Here's the example configuration to be used with Claude Desktop:
51
165
52
166
```json
@@ -63,4 +177,15 @@ Here's the example configuration to be used with Claude Desktop:
63
177
}
64
178
```
65
179
66
-
**Remember to use the appropriate Iggy account credentials for your environment** (e.g. create the user with read-only permissions to avoid modifying the data). On top of this, you can also configure the `permissions` for the MCP server to control which operations are allowed (this will be checked first, before forwarding the actual request to the Iggy server).
0 commit comments