Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
37 changes: 26 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,24 @@ mockall = "0.14.0"
nix = { version = "0.30.1", features = ["fs", "resource", "sched"] }
nonzero_lit = "0.1.2"
once_cell = "1.21.3"
opentelemetry = { version = "0.31.0", features = ["trace", "logs"] }
opentelemetry-appender-tracing = { version = "0.31.1", features = ["log"] }
opentelemetry-otlp = { version = "0.31.0", features = [
"logs",
"trace",
"grpc-tonic",
"http",
"http-proto",
"reqwest-client",
] }
opentelemetry-semantic-conventions = "0.31.0"
opentelemetry_sdk = { version = "0.31.0", features = [
"logs",
"trace",
"experimental_async_runtime",
"experimental_logs_batch_log_processor_with_async_runtime",
"experimental_trace_batch_span_processor_with_async_runtime",
] }
parquet = "=55.2.0"
passterm = "=2.0.1"
postcard = { version = "1.1.3", features = ["alloc"] }
Expand Down Expand Up @@ -197,6 +215,7 @@ tower-http = { version = "0.6.8", features = [
] }
tracing = "0.1.44"
tracing-appender = "0.2.4"
tracing-opentelemetry = "0.32.1"
tracing-subscriber = { version = "0.3.22", default-features = false, features = [
"fmt",
"env-filter",
Expand Down
22 changes: 11 additions & 11 deletions DEPENDENCIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -390,19 +390,19 @@ iggy: 0.8.1-edge.5, "Apache-2.0",
iggy-bench: 0.3.1-edge.1, "Apache-2.0",
iggy-bench-dashboard-server: 0.5.1-edge.1, "Apache-2.0",
iggy-cli: 0.10.1-edge.1, "Apache-2.0",
iggy-connectors: 0.2.1-edge.3, "Apache-2.0",
iggy-mcp: 0.2.1-edge.3, "Apache-2.0",
iggy-connectors: 0.2.1-edge.4, "Apache-2.0",
iggy-mcp: 0.2.1-edge.4, "Apache-2.0",
iggy_binary_protocol: 0.8.1-edge.2, "Apache-2.0",
iggy_common: 0.8.1-edge.1, "Apache-2.0",
iggy_connector_elasticsearch_sink: 0.1.0, "Apache-2.0",
iggy_connector_elasticsearch_source: 0.1.0, "Apache-2.0",
iggy_connector_iceberg_sink: 0.1.0, "Apache-2.0",
iggy_connector_postgres_sink: 0.1.0, "Apache-2.0",
iggy_connector_postgres_source: 0.1.0, "Apache-2.0",
iggy_connector_quickwit_sink: 0.1.0, "Apache-2.0",
iggy_connector_random_source: 0.1.0, "Apache-2.0",
iggy_connector_sdk: 0.1.1-edge.1, "Apache-2.0",
iggy_connector_stdout_sink: 0.1.0, "Apache-2.0",
iggy_connector_elasticsearch_sink: 0.2.0-edge.1, "Apache-2.0",
iggy_connector_elasticsearch_source: 0.2.0-edge.1, "Apache-2.0",
iggy_connector_iceberg_sink: 0.2.0-edge.1, "Apache-2.0",
iggy_connector_postgres_sink: 0.2.0-edge.1, "Apache-2.0",
iggy_connector_postgres_source: 0.2.0-edge.1, "Apache-2.0",
iggy_connector_quickwit_sink: 0.2.0-edge.1, "Apache-2.0",
iggy_connector_random_source: 0.2.0-edge.1, "Apache-2.0",
iggy_connector_sdk: 0.1.1-edge.2, "Apache-2.0",
iggy_connector_stdout_sink: 0.2.0-edge.1, "Apache-2.0",
iggy_examples: 0.0.5, "Apache-2.0",
ignore: 0.4.25, "MIT OR Unlicense",
impl-more: 0.1.9, "Apache-2.0 OR MIT",
Expand Down
9 changes: 8 additions & 1 deletion core/ai/mcp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

[package]
name = "iggy-mcp"
version = "0.2.1-edge.3"
version = "0.2.1-edge.4"
description = "MCP Server for Iggy message streaming platform"
edition = "2024"
license = "Apache-2.0"
Expand All @@ -35,6 +35,12 @@ figlet-rs = { workspace = true }
figment = { workspace = true }
iggy = { workspace = true }
iggy_common = { workspace = true }
opentelemetry = { workspace = true }
opentelemetry-appender-tracing = { workspace = true }
opentelemetry-otlp = { workspace = true }
opentelemetry-semantic-conventions = { workspace = true }
opentelemetry_sdk = { workspace = true, features = ["rt-tokio"] }
reqwest = { workspace = true }
rmcp = { version = "0.13.0", features = [
"server",
"transport-io",
Expand All @@ -47,6 +53,7 @@ thiserror = { workspace = true }
tokio = { workspace = true }
tower-http = { workspace = true }
tracing = { workspace = true }
tracing-opentelemetry = { workspace = true }
tracing-subscriber = { workspace = true }

[dev-dependencies]
Expand Down
18 changes: 18 additions & 0 deletions core/ai/mcp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,21 @@ Here's the example configuration to be used with Claude Desktop:
**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).

![MCP](../../../assets/iggy_mcp_server.png)

## Telemetry

The MCP server supports OpenTelemetry for logs and traces. To enable telemetry, add the following configuration:

```toml
[telemetry]
enabled = true
service_name = "iggy-mcp"

[telemetry.logs]
transport = "grpc" # Options: "grpc", "http"
endpoint = "http://localhost:4317"

[telemetry.traces]
transport = "grpc" # Options: "grpc", "http"
endpoint = "http://localhost:4317"
```
12 changes: 12 additions & 0 deletions core/ai/mcp/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,15 @@ create = true
read = true
update = true
delete = true

[telemetry]
enabled = false
service_name = "iggy-mcp"

[telemetry.logs]
transport = "grpc"
endpoint = "http://localhost:4317"

[telemetry.traces]
transport = "grpc"
endpoint = "http://localhost:4317"
Loading
Loading