From 1724cbca715ce301b5e1b9ec0193b611f9b889b5 Mon Sep 17 00:00:00 2001 From: Paulo Borges Date: Mon, 8 Sep 2025 15:05:18 -0300 Subject: [PATCH 01/20] docs: DOC-1649 Redpanda Cloud MCP Server (#369) * docs: add the new rpk cloud mcp reference * DOC-1649 Redpanda MCP Server docs * Improve GIF * Add alias * Clarify config * Clarify config * Apply suggestions * Add details about endpoint availability * Update modules/ai-agents/pages/mcp/local/overview.adoc * Update overview.adoc * Update overview.adoc * Update quickstart.adoc * Update configuration.adoc * Update configuration.adoc * Add extra context and links * Optional * Fix anchor * Apply suggestions from code review Co-authored-by: Angela Simms <102690377+asimms41@users.noreply.github.com> --------- Co-authored-by: JakeSCahill Co-authored-by: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Co-authored-by: Angela Simms <102690377+asimms41@users.noreply.github.com> --- .../ROOT/pages/mcp/local/configuration.adoc | 200 ++++++++++++++++++ modules/ROOT/pages/mcp/local/index.adoc | 5 + modules/ROOT/pages/mcp/local/overview.adoc | 50 +++++ modules/ROOT/pages/mcp/local/quickstart.adoc | 67 ++++++ 4 files changed, 322 insertions(+) create mode 100644 modules/ROOT/pages/mcp/local/configuration.adoc create mode 100644 modules/ROOT/pages/mcp/local/index.adoc create mode 100644 modules/ROOT/pages/mcp/local/overview.adoc create mode 100644 modules/ROOT/pages/mcp/local/quickstart.adoc diff --git a/modules/ROOT/pages/mcp/local/configuration.adoc b/modules/ROOT/pages/mcp/local/configuration.adoc new file mode 100644 index 0000000..6078104 --- /dev/null +++ b/modules/ROOT/pages/mcp/local/configuration.adoc @@ -0,0 +1,200 @@ += Configure Redpanda Cloud MCP +:page-beta: true +:description: Learn how to configure the Redpanda Cloud MCP Server for your AI assistant, including auto and manual client setup, enabling deletes, and security considerations. + +This page explains how to configure the Redpanda Cloud MCP Server for your AI assistant, including auto and manual client setup, enabling deletes, and security considerations. + +== Prerequisites + +* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer] +* Access to a Redpanda Cloud account +* Supported AI client (Claude, Claude Code, or other MCP-compatible client) + +== Endpoint availability + +The MCP server exposes Redpanda Cloud API endpoints for both the link:https://docs.redpanda.com/api/doc/cloud-controlplane/[Control Plane] and the link:https://docs.redpanda.com/api/doc/cloud-dataplane/[Data Plane] through `rpk`. Available endpoints depend on your `rpk` version. Newer API features require updated versions of `rpk`. + +TIP: Keep `rpk` updated to the latest version to access new Redpanda Cloud features through the MCP server. New MCP endpoints are documented in Redpanda link:https://github.com/redpanda-data/redpanda/releases[release notes]. + +== Auto-configured clients (Claude and Claude Code) + +For some supported clients, you can install and configure the MCP integration using the xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-install.adoc[`rpk cloud mcp install` command]. +For Claude and Claude Code, run one of these commands: + +```bash +# Choose one +rpk cloud mcp install --client claude +rpk cloud mcp install --client claude-code +``` + +If you need to update the integration, re-run the install command for your client. + +== Manual configuration for other MCP clients + +If you're using another MCP-compatible client, you can manually configure it to use Redpanda Cloud MCP Server. Follow these steps: + +Add an MCP server entry to your client's configuration (example shown in JSON). Adjust paths for your system. + +```json +"mcpServers": { + "redpandaCloud": { + "command": "rpk", + "args": [ + "--config", + "", <1> + "cloud", + "mcp", + "stdio" + ] + } +} +``` +<1> Optional: The `--config` flag lets you target a specific `rpk.yaml`, which contains the configuration for connecting to your cluster. Always use the same configuration path as you used for `rpk cloud login` to ensure it has your token. Default paths vary by operating system. See the xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[`rpk cloud login`] reference for the default paths. + +[TIP] +==== +You can also <>. +==== + +== Enable delete operations + +Destructive operations are **disabled by default**. To allow delete operations, add `--allow-delete` to the MCP server invocation. + +CAUTION: Enabling delete operations permits actions like **deleting topics or clusters**. Restrict access to your AI client and double-check prompts. + +[tabs] +==== +Auto-configured clients:: ++ +-- +```bash +# Choose one +rpk cloud mcp install --client claude --allow-delete +rpk cloud mcp install --client claude-code --allow-delete +``` +-- +Manual configuration example:: ++ +-- +```json +"mcpServers": { + "redpandaCloud": { + "command": "rpk", + "args": [ + "cloud", + "mcp", + "stdio", + "--allow-delete" + ] + } +} +``` +-- +==== + +== Configuration locations and paths + +All `rpk` commands accept a `--config` flag, which lets you specify the exact `rpk.yaml` configuration file to use for connecting to your Redpanda cluster. This flag overrides the default search path and ensures that the command uses the credentials and settings from the file you provide. + +Always use the same configuration path for both `rpk cloud login` and any MCP server setup or install commands to avoid authentication issues. By default, `rpk` searches for config files in standard locations depending on your operating system. See the xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[reference documentation] for details. Use an absolute path and make sure your user has read and write permissions. + +CAUTION: The `rpk` configuration file contains your Redpanda Cloud token. Keep the file secure and never share it. + +For example, if you want to use a custom config path, specify it for both login and the MCP install command: + +[source,bash] +---- +rpk cloud login --config /Users//my-rpk-config.yaml +rpk cloud mcp install --client claude --config /Users//my-rpk-config.yaml +---- + +Or for Claude Code: + +[source,bash] +---- +rpk cloud login --config /Users//my-rpk-config.yaml +rpk cloud mcp install --client claude-code --config /Users//my-rpk-config.yaml +---- + +== Remove the MCP server + +To remove the MCP server, delete or disable the `mcpServers.redpandaCloud` entry in your client's config (steps vary by client). + +== Security considerations + +* Avoid enabling `--allow-delete` unless required. +* For most local use cases, such as with Claude or Claude Code, log in with your personal Redpanda Cloud user account for better security and easier management. +* If you are deploying the MCP server as part of an application or shared environment, consider using a xref:security:cloud-authentication.adoc#authenticate-to-the-cloud-api[service account] with tailored roles. To log in as a service account, use: ++ +[source,bash] +---- +rpk cloud login --client-id --client-secret --save +---- +* Regularly review and rotate your credentials. + +== Troubleshooting + +=== Quick checks + +. Make sure you are using at least version 25.2.3 of `rpk`. +. If you see authentication errors, run `rpk cloud login` again. +. Ensure you installed for the right client: ++ +```bash +rpk cloud mcp install --client claude +# or +rpk cloud mcp install --client claude-code +``` +. If using another MCP client, verify your `mcpServers.redpandaCloud` entry (paths, JSON syntax, and args order). + +. [[local]]Start the server manually using the xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-stdio.adoc[`rpk cloud mcp stdio` command] (one-time login required) to verify connectivity to Redpanda Cloud endpoints: + ++ +[source,bash] +---- +rpk cloud login +rpk cloud mcp stdio +---- ++ +.. Send the following newline-delimited JSON-RPC messages (each on its own line): ++ +[source,json] +---- +{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{"roots":{},"sampling":{},"elicitation":{}},"clientInfo":{"name":"ManualTest","version":"0.1.0"}}} +{"jsonrpc":"2.0","method":"notifications/initialized"} +{"jsonrpc":"2.0","id":2,"method":"tools/list"} +---- ++ +Expected response shapes (examples): ++ +[source,json] +---- +{"jsonrpc":"2.0","id":1,"result":{"capabilities":{...}}} +{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"...","description":"..."}, ...]}} +---- ++ +.. Stop the server with `Ctrl+C`. + +== Common issues + +The server runs locally, but it must reach Redpanda Cloud endpoints to perform operations. + +=== Client can't find the MCP server + +* Re-run the install for your MCP client. +* Confirm the path in `--config /path/to/rpk.yaml` exists and is readable. +* Double-check your client's configuration format and syntax. + +=== Unauthorized errors or token errors + +Your capabilities depend on your Redpanda Cloud account permissions. If an operation fails with a permissions error, contact your account admin. + +* Run `rpk cloud login` to refresh the token. +* Ensure your account has the necessary permissions for the requested operation. + +=== Deletes not working + +* By default, delete operations are **disabled**. Add `--allow-delete` to the server invocation (auto or manual configuration) and restart the client. +* For auto-configured clients, you may need to edit the generated config or re-run the install command and adjust the entry. + + diff --git a/modules/ROOT/pages/mcp/local/index.adoc b/modules/ROOT/pages/mcp/local/index.adoc new file mode 100644 index 0000000..e70b573 --- /dev/null +++ b/modules/ROOT/pages/mcp/local/index.adoc @@ -0,0 +1,5 @@ += Redpanda Cloud MCP Server +:page-beta: true +:description: Find links to information about the Redpanda Cloud MCP Server and its features for building and managing AI agents that can interact with your Redpanda Cloud account and clusters. +:page-layout: index +:page-aliases: develop:agents/about.adoc \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/local/overview.adoc b/modules/ROOT/pages/mcp/local/overview.adoc new file mode 100644 index 0000000..8160dcc --- /dev/null +++ b/modules/ROOT/pages/mcp/local/overview.adoc @@ -0,0 +1,50 @@ + += About the Redpanda Cloud MCP Server +:page-beta: true +:description: Learn about the Redpanda Cloud MCP Server, which lets AI assistants securely access and operate your Redpanda Cloud account and clusters. + +The Redpanda Cloud MCP Server lets AI assistants securely access and operate your Redpanda Cloud account and clusters. MCP provides controlled access to: + +* link:https://docs.redpanda.com/api/doc/cloud-controlplane/[Control Plane] actions, such as creating a Redpanda Cloud cluster or listing clusters. +* link:https://docs.redpanda.com/api/doc/cloud-dataplane/[Data Plane] actions, such as creating topics or listing topics. + +By speaking natural language to your assistant, you can ask it to perform Redpanda operations on your behalf. The MCP server runs locally on your machine and authenticates to Redpanda Cloud using a Redpanda Cloud token. + +image::shared:cloud-mcp.gif[A terminal window showing Claude Code invoking Redpanda Cloud MCP to list topics in a cluster.] + +== What you can do + +You can do anything that's available in the Control Plane or Data Plane APIs. Typical requests you can make to your assistant once connected include: + +* Create a Redpanda Cloud cluster named `dev-mcp`. +* List topics in `dev-mcp`. +* Create a topic `orders-raw` with 6 partitions. + +NOTE: The MCP server does **not** expose delete endpoints by default. You can enable delete endpoints when you create the server if you intentionally want to allow delete operations. + +== Use cases + +* Test automation: Create short-lived clusters, create topics, and validate pipelines quickly. +* Operational assistance: Inspect a cluster's health or list topics during incidents. +* Onboarding and demos: Let team members issue high-level requests without memorizing every CLI flag. + +== How it works + +. Authenticate to Redpanda Cloud and receive a token using the xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[`rpk cloud login` command]. +. Configure your MCP client using the xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-install.adoc[`rpk cloud mcp install`] command. Your client then starts the server on-demand using xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-stdio.adoc[`rpk cloud mcp stdio`], authenticating with the Redpanda Cloud token from `rpk cloud login`. +. Prompt your assistant to perform Redpanda operations. The Redpanda Cloud MCP Server executes them in your Redpanda Cloud account using your Redpanda Cloud token. + +=== Components + +* AI client (Claude, Claude Code, or any other MCP client) that connects to the MCP server. +* Redpanda CLI (`rpk`) for obtaining a token and starting the local MCP server. +* Redpanda Cloud account that the local MCP server can connect to and issue API requests. + +== Next steps + +* xref:ai-agents:mcp/local/quickstart.adoc[] +* xref:ai-agents:mcp/local/configuration.adoc[] + +== Suggested reading + +The Redpanda documentation site has a read-only MCP server that provides access to Redpanda docs and examples. This server has no access to your Redpanda Cloud account or clusters. See xref:home:ROOT:mcp-setup.adoc[]. diff --git a/modules/ROOT/pages/mcp/local/quickstart.adoc b/modules/ROOT/pages/mcp/local/quickstart.adoc new file mode 100644 index 0000000..55eddc0 --- /dev/null +++ b/modules/ROOT/pages/mcp/local/quickstart.adoc @@ -0,0 +1,67 @@ += Redpanda Cloud MCP Quickstart +:page-beta: true +:description: Connect your Claude AI assistant to your Redpanda Cloud account and clusters using the Redpanda Cloud MCP Server. + +In this quickstart, you'll get your Claude AI assistant talking to Redpanda Cloud using the xref:ai-agents:mcp/local/overview.adoc[Redpanda Cloud MCP Server]. + +//// +To be used when Remote MCP is ready for public beta + +If you're trying to deploy your own MCP server as a managed service inside your cluster, see xref:ai-agents:mcp/remote/quickstart.adoc[]. +//// + +== Prerequisites + +* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer] +* Access to a Redpanda Cloud account +* link:https://support.anthropic.com/en/articles/10065433-installing-claude-desktop[Claude] or link:https://docs.anthropic.com/en/docs/claude-code/setup[Claude Code] installed ++ +TIP: For other clients, see xref:ai-agents:mcp/local/configuration.adoc[]. + +== Set up the MCP server + +. Verify your `rpk` version ++ +```bash +rpk version +``` ++ +Ensure the version is at least 25.2.3. + +. Log in to Redpanda Cloud ++ +```bash +rpk cloud login +``` ++ +A browser window opens. Sign in to grant access. After you sign in, `rpk` stores a token locally. This token is not shared with your AI assistant. It is used by the MCP server to authenticate requests to your Redpanda Cloud account. + +. Install the MCP integration. Choose one client: ++ +```bash +# Claude desktop +rpk cloud mcp install --client claude + +# Claude Code (IDE) +rpk cloud mcp install --client claude-code +``` ++ +This command configures the MCP server for your client. If you need to update the integration, re-run the install command for your client. + +== Start prompting + +Launch Claude or Claude Code and try one of these prompts: + +* “Create a Redpanda Cloud cluster named `dev-mcp`.” +* “List topics in `dev-mcp`.” +* “Create a topic `orders-raw` with 6 partitions.” + +:note-caption: Delete operations are opt-in + +NOTE: The MCP server does *not* expose API endpoints that result in delete operations by default. Use `--allow-delete` only if you intentionally want to enable delete operations. See xref:ai-agents:mcp/local/configuration.adoc#enable_delete_operations[Enable delete operations]. + +:note-caption: Note + +== Next steps + +* xref:ai-agents:mcp/local/configuration.adoc[] From add7f28c9dbf618606dd7a779cb721c5c8666534 Mon Sep 17 00:00:00 2001 From: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Date: Tue, 21 Oct 2025 17:23:56 +0100 Subject: [PATCH 02/20] Add docs for remote MCP servers (#413) * Add docs for remote MCP servers * Update modules/ai-agents/pages/mcp/remote/developer-guide.adoc Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add period * Apply suggestions from code review * Update modules/ai-agents/pages/mcp/remote/developer-guide.adoc * Update nav * Update nav * Apply suggestions from code review * Simplify * Update configuration.adoc * Update overview.adoc * Update headings to be task oriented * Require 25.2.5 * Improve overview * Improvements * Split examples * Clarify mcp client * Pipeline -> configuation * Use templates for quickstart * Use templates for quickstart * Fix grammar * Update modules/ai-agents/pages/mcp/remote/overview.adoc Co-authored-by: Paulo Borges * Apply suggestions from code review Co-authored-by: Paulo Borges * Add lint details * Update whats new * Clarify docs MCP * Document property restrictions * Remove private beta * Remove private beta * Fix formatting --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Paulo Borges --- .../ROOT/examples/customer_enrichment.yaml | 39 ++ .../gcp_bigquery_select_processor.yaml | 45 +++ modules/ROOT/examples/generate_input.yaml | 22 ++ modules/ROOT/examples/http_processor.yaml | 37 ++ modules/ROOT/examples/memory_cache.yaml | 14 + modules/ROOT/examples/observable_tool.yaml | 60 +++ modules/ROOT/examples/order_workflow.yaml | 107 ++++++ modules/ROOT/examples/redpanda_cache.yaml | 15 + modules/ROOT/examples/redpanda_output.yaml | 25 ++ modules/ROOT/examples/weather_service.yaml | 60 +++ modules/ROOT/pages/index.adoc | 13 + .../ROOT/pages/mcp/local/configuration.adoc | 12 +- modules/ROOT/pages/mcp/local/index.adoc | 5 +- modules/ROOT/pages/mcp/local/overview.adoc | 18 +- modules/ROOT/pages/mcp/local/quickstart.adoc | 10 +- modules/ROOT/pages/mcp/overview.adoc | 50 +++ .../ROOT/pages/mcp/remote/admin-guide.adoc | 56 +++ .../pages/mcp/remote/developer-guide.adoc | 349 ++++++++++++++++++ modules/ROOT/pages/mcp/remote/index.adoc | 4 + modules/ROOT/pages/mcp/remote/overview.adoc | 116 ++++++ .../pages/mcp/remote/pipeline-patterns.adoc | 306 +++++++++++++++ modules/ROOT/pages/mcp/remote/quickstart.adoc | 194 ++++++++++ 22 files changed, 1534 insertions(+), 23 deletions(-) create mode 100644 modules/ROOT/examples/customer_enrichment.yaml create mode 100644 modules/ROOT/examples/gcp_bigquery_select_processor.yaml create mode 100644 modules/ROOT/examples/generate_input.yaml create mode 100644 modules/ROOT/examples/http_processor.yaml create mode 100644 modules/ROOT/examples/memory_cache.yaml create mode 100644 modules/ROOT/examples/observable_tool.yaml create mode 100644 modules/ROOT/examples/order_workflow.yaml create mode 100644 modules/ROOT/examples/redpanda_cache.yaml create mode 100644 modules/ROOT/examples/redpanda_output.yaml create mode 100644 modules/ROOT/examples/weather_service.yaml create mode 100644 modules/ROOT/pages/index.adoc create mode 100644 modules/ROOT/pages/mcp/overview.adoc create mode 100644 modules/ROOT/pages/mcp/remote/admin-guide.adoc create mode 100644 modules/ROOT/pages/mcp/remote/developer-guide.adoc create mode 100644 modules/ROOT/pages/mcp/remote/index.adoc create mode 100644 modules/ROOT/pages/mcp/remote/overview.adoc create mode 100644 modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc create mode 100644 modules/ROOT/pages/mcp/remote/quickstart.adoc diff --git a/modules/ROOT/examples/customer_enrichment.yaml b/modules/ROOT/examples/customer_enrichment.yaml new file mode 100644 index 0000000..2096248 --- /dev/null +++ b/modules/ROOT/examples/customer_enrichment.yaml @@ -0,0 +1,39 @@ +label: customer_enrichment +processors: + - label: fetch_customer_base + sql_select: + driver: "postgres" + dsn: "${secrets.POSTGRES_DSN}" + table: "customers" + where: "customer_id = ?" + args_mapping: 'root = [this.customer_id]' + + - label: enrich_with_orders + sql_select: + driver: "postgres" + dsn: "${secrets.POSTGRES_DSN}" + table: "orders" + where: "customer_id = ? AND created_at >= NOW() - INTERVAL '30 days'" + args_mapping: 'root = [this.customer_id]' + + - label: combine_data + mutation: | + root = { + "customer": this.customers.index(0), + "recent_orders": this.orders, + "metrics": { + "total_orders": this.orders.length(), + "total_spent": this.orders.map_each(o -> o.total).sum(), + "avg_order_value": this.orders.map_each(o -> o.total).mean() + } + } + +meta: + mcp: + enabled: true + description: "Get comprehensive customer profile with recent order history and metrics" + properties: + - name: customer_id + type: string + description: "Customer ID to analyze" + required: true \ No newline at end of file diff --git a/modules/ROOT/examples/gcp_bigquery_select_processor.yaml b/modules/ROOT/examples/gcp_bigquery_select_processor.yaml new file mode 100644 index 0000000..c662058 --- /dev/null +++ b/modules/ROOT/examples/gcp_bigquery_select_processor.yaml @@ -0,0 +1,45 @@ +label: gcp_bigquery_select_processor +processors: + - label: prepare_parameters + mutation: | + meta customer_id = this.customer_id.string().catch("12345") + meta limit = this.limit.number().catch(10) + - label: query_bigquery + gcp_bigquery_select: + project: my-gcp-project + credentials_json: | + ${secrets.BIGQUERY_CREDENTIALS} + table: my_dataset.customer_orders + columns: + - "order_id" + - "customer_id" + - "order_date" + - "total_amount" + - "status" + where: customer_id = ? AND order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) + suffix: "ORDER BY order_date DESC LIMIT ?" + args_mapping: root = [ @customer_id, @limit ] + - label: format_response + mutation: | + root = { + "orders": this, + "metadata": { + "source": "BigQuery", + "customer_id": @customer_id, + "fetched_at": now().ts_format("2006-01-02T15:04:05.000Z") + } + } + +meta: + mcp: + enabled: true + description: "Query customer orders from BigQuery" + properties: + - name: customer_id + type: string + description: "Customer ID to filter orders" + required: true + - name: limit + type: number + description: "Maximum number of orders to return" + required: false diff --git a/modules/ROOT/examples/generate_input.yaml b/modules/ROOT/examples/generate_input.yaml new file mode 100644 index 0000000..0c81061 --- /dev/null +++ b/modules/ROOT/examples/generate_input.yaml @@ -0,0 +1,22 @@ +label: generate_input +generate: + mapping: | + let event_type = ["login", "logout", "purchase", "view_page", "click_button"].index(random_int(max:4)) + root = { + "id": uuid_v4(), + "timestamp": now().ts_format("2006-01-02T15:04:05.000Z"), + "user_id": random_int(min:1, max:10000), + "event_type": $event_type, + "data": { + "session_id": ksuid(), + "ip_address": "192.168.%v.%v".format(random_int(max:255), random_int(min:1, max:254)), + "user_agent": ["Chrome", "Firefox", "Safari", "Edge"].index(random_int(max:3)), + "amount": if $event_type == "purchase" { random_int(min:10, max:500) } else { null } + } + } + +meta: + mcp: + enabled: true + description: "Generate an example user event message with realistic data" + properties: [] diff --git a/modules/ROOT/examples/http_processor.yaml b/modules/ROOT/examples/http_processor.yaml new file mode 100644 index 0000000..6e523a1 --- /dev/null +++ b/modules/ROOT/examples/http_processor.yaml @@ -0,0 +1,37 @@ +label: fetch-weather +processors: + - label: prepare_parameters + mutation: | + meta city_name = this.city_name + - label: fetch_weather + http: + url: 'https://wttr.in/${! @city_name }?format=j1' + verb: GET + headers: + Accept: "application/json" + User-Agent: "redpanda-mcp-server/1.0" + - label: format_response + mutation: | + root = { + "city": @city_name, + "temperature": this.current_condition.0.temp_C.number(), + "feels_like": this.current_condition.0.FeelsLikeC.number(), + "humidity": this.current_condition.0.humidity.number(), + "pressure": this.current_condition.0.pressure.number(), + "description": this.current_condition.0.weatherDesc.0.value, + "wind_speed": this.current_condition.0.windspeedKmph.number(), + "metadata": { + "source": "wttr.in", + "fetched_at": now().ts_format("2006-01-02T15:04:05.000Z") + } + } + +meta: + mcp: + enabled: true + description: "Fetch current weather information for a specified city" + properties: + - name: city_name + type: string + description: "Name of the city to get weather information for" + required: true diff --git a/modules/ROOT/examples/memory_cache.yaml b/modules/ROOT/examples/memory_cache.yaml new file mode 100644 index 0000000..bf67ab8 --- /dev/null +++ b/modules/ROOT/examples/memory_cache.yaml @@ -0,0 +1,14 @@ +label: memory_cache +memory: + default_ttl: "5m" + init_values: + "user:1001": '{"name": "Alice", "role": "admin"}' + "user:1002": '{"name": "Bob", "role": "user"}' + "config:theme": "dark" + "config:language": "en" + shards: 4 + +meta: + mcp: + enabled: true + description: "In-memory cache for storing user data, configuration, and temporary values" diff --git a/modules/ROOT/examples/observable_tool.yaml b/modules/ROOT/examples/observable_tool.yaml new file mode 100644 index 0000000..e2596a7 --- /dev/null +++ b/modules/ROOT/examples/observable_tool.yaml @@ -0,0 +1,60 @@ +label: observable_tool +processors: + - label: init_tracing + mutation: | + # Generate correlation ID for request tracing + meta req_id = uuid_v7() + meta start_time = now() + + # Log request start with structured data + root.trace = { + "request_id": @req_id, + "timestamp": @start_time.ts_format("2006-01-02T15:04:05.000Z"), + "tool": "observable_tool", + "version": "1.0.0" + } + + - label: log_request_start + log: + message: "MCP tool request started" + fields: + request_id: "${! @req_id }" + tool_name: "observable_tool" + input_params: "${! this.without(\"trace\") }" + user_agent: "${! meta(\"User-Agent\").catch(\"unknown\") }" + level: "INFO" + + - label: finalize_response + mutation: | + # Calculate total execution time + meta duration = (now().ts_unix_nano() - @start_time.ts_unix_nano()) / 1000000 + + # Add trace information to response + root.metadata = { + "request_id": @req_id, + "execution_time_ms": @duration, + "timestamp": now().ts_format("2006-01-02T15:04:05.000Z"), + "tool": "observable_tool", + "success": !this.exists("error") + } + + - label: log_completion + log: + message: "MCP tool request completed" + fields: + request_id: "${! @req_id }" + duration_ms: "${! this.metadata.execution_time_ms }" + success: "${! this.metadata.success }" + result_size: "${! content().length() }" + level: "INFO" + +meta: + tags: [ example ] + mcp: + enabled: true + description: "Example tool with comprehensive observability and error handling" + properties: + - name: user_id + type: string + description: "User ID to fetch data for" + required: true diff --git a/modules/ROOT/examples/order_workflow.yaml b/modules/ROOT/examples/order_workflow.yaml new file mode 100644 index 0000000..ad0dc29 --- /dev/null +++ b/modules/ROOT/examples/order_workflow.yaml @@ -0,0 +1,107 @@ +label: order_workflow +processors: + - label: validate_order + mutation: | + # Validation logic + root = if this.total <= 0 { + throw("Invalid order total") + } else { this } + + - label: mock_inventory_check + mutation: | + # Mock inventory data for testing + let inventory = { + "widget-001": {"quantity": 100, "name": "Standard Widget"}, + "widget-premium": {"quantity": 25, "name": "Premium Widget"}, + "widget-limited": {"quantity": 2, "name": "Limited Edition Widget"} + } + + let product = $inventory.get(this.product_id) + root = if $product == null { + throw("Product not found: " + this.product_id) + } else if $product.quantity < this.quantity { + throw("Insufficient inventory. Available: " + $product.quantity.string()) + } else { + this.merge({ + "inventory_check": "passed", + "available_quantity": $product.quantity, + "product_name": $product.name + }) + } + + - label: route_by_priority + switch: + - check: 'this.total > 1000' + processors: + - label: mock_high_value_processing + mutation: | + # Mock premium processing + root = this.merge({ + "processing_tier": "premium", + "processing_time_estimate": "2-4 hours", + "assigned_rep": "premium-team@company.com", + "priority_score": 95 + }) + + - check: 'this.customer_tier == "vip"' + processors: + - label: mock_vip_processing + mutation: | + # Mock VIP processing + root = this.merge({ + "processing_tier": "vip", + "processing_time_estimate": "1-2 hours", + "assigned_rep": "vip-team@company.com", + "priority_score": 90, + "perks": ["expedited_shipping", "white_glove_service"] + }) + + - processors: + - label: mock_standard_processing + mutation: | + # Mock standard processing + root = this.merge({ + "processing_tier": "standard", + "processing_time_estimate": "24-48 hours", + "assigned_rep": "support@company.com", + "priority_score": 50 + }) + + - label: finalize_order + mutation: | + # Add final processing metadata + # Calculate estimated fulfillment by parsing processing time + let max_hours = this.processing_time_estimate.split("-").index(1).split(" ").index(0).number() + + root = this.merge({ + "order_status": "processed", + "processed_at": now().ts_format("2006-01-02T15:04:05.000Z"), + "estimated_fulfillment": "TBD - calculated based on processing tier", + "processing_time_hours": $max_hours + }) + +meta: + mcp: + enabled: true + description: "Process orders with validation, inventory check, and tiered routing (with mocks for testing)" + properties: + - name: order_id + type: string + description: "Unique order identifier" + required: true + - name: product_id + type: string + description: "Product ID (try: widget-001, widget-premium, widget-limited)" + required: true + - name: quantity + type: number + description: "Quantity to order" + required: true + - name: total + type: number + description: "Order total in dollars" + required: true + - name: customer_tier + type: string + description: "Customer tier (optional: vip, standard)" + required: false \ No newline at end of file diff --git a/modules/ROOT/examples/redpanda_cache.yaml b/modules/ROOT/examples/redpanda_cache.yaml new file mode 100644 index 0000000..49be191 --- /dev/null +++ b/modules/ROOT/examples/redpanda_cache.yaml @@ -0,0 +1,15 @@ +label: redpanda_cache +redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: "mcp-cache-topic" + tls: + enabled: true + sasl: + - mechanism: "SCRAM-SHA-512" + username: "${secrets.MCP_REDPANDA_CREDENTIALS.username}" + password: "${secrets.MCP_REDPANDA_CREDENTIALS.password}" + +meta: + mcp: + enabled: true + description: "Redpanda-backed distributed cache using Kafka topics for persistence" diff --git a/modules/ROOT/examples/redpanda_output.yaml b/modules/ROOT/examples/redpanda_output.yaml new file mode 100644 index 0000000..324b135 --- /dev/null +++ b/modules/ROOT/examples/redpanda_output.yaml @@ -0,0 +1,25 @@ +label: redpanda_output +redpanda: + seed_brokers: + - ${REDPANDA_BROKERS} + topic: ${! this.topic_name.string().catch("default-topic") } + timeout: 30s + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: ${secrets.REDPANDA_USERNAME} + password: ${secrets.REDPANDA_PASSWORD} +meta: + mcp: + enabled: true + description: Publishes a message to a specified Redpanda topic + properties: + - name: message + type: string + description: The message content to publish + required: true + - name: topic_name + type: string + description: The Redpanda topic to publish to + required: true diff --git a/modules/ROOT/examples/weather_service.yaml b/modules/ROOT/examples/weather_service.yaml new file mode 100644 index 0000000..1a6c56f --- /dev/null +++ b/modules/ROOT/examples/weather_service.yaml @@ -0,0 +1,60 @@ +label: weather-service +processors: + - label: validate_inputs + mutation: | + # Validate and sanitize city input + meta city = this.city.string(). + re_replace_all("[^a-zA-Z\\s\\-]", ""). + trim() + + # Check for empty input + root = if @city == "" { + throw("City name cannot be empty") + } else { "" } + + - label: fetch_weather_data + try: + - http: + url: "https://wttr.in/${! @city }?format=j1" + verb: GET + headers: + User-Agent: "redpanda-connect-mcp/1.0" + timeout: "10s" + - mutation: | + root = { + "city": @city, + "temperature_c": this.current_condition.0.temp_C.number(), + "temperature_f": this.current_condition.0.temp_F.number(), + "feels_like_c": this.current_condition.0.FeelsLikeC.number(), + "humidity": this.current_condition.0.humidity.number(), + "description": this.current_condition.0.weatherDesc.0.value, + "wind_speed_kmh": this.current_condition.0.windspeedKmph.number(), + "timestamp": now().format_timestamp("2006-01-02T15:04:05Z07:00") + } + - log: + message: "Weather data fetched for city: ${! @city }" + level: "INFO" + + - label: handle_weather_errors + catch: + - mutation: | + root = { + "error": "Failed to fetch weather data", + "city": @city, + "details": error(), + "timestamp": now().format_timestamp("2006-01-02T15:04:05Z07:00") + } + - log: + message: "Weather API error for city ${! @city }: ${! error() }" + level: "ERROR" + +meta: + tags: [ weather, example ] + mcp: + enabled: true + description: "Get current weather conditions for any city worldwide" + properties: + - name: city + type: string + description: "Name of the city (such as 'San Francisco', 'London')" + required: true diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc new file mode 100644 index 0000000..5c32a43 --- /dev/null +++ b/modules/ROOT/pages/index.adoc @@ -0,0 +1,13 @@ += AI Agents in Redpanda Cloud +:page-beta: true +:description: Learn about AI agents and the tools Redpanda Cloud provides for building them. +:page-layout: index +:page-aliases: develop:agents/about.adoc, develop:ai-agents/about.adoc + +AI agents are configurable assistants that autonomously perform specialist tasks by leveraging large language models (LLMs) and connecting to external data sources and tools. + +Redpanda Cloud provides two complementary Model Context Protocol (MCP) options to help you build AI agents: + +**Local MCP server for Redpanda Cloud**: A built-in server that gives your AI assistant direct access to your Redpanda Cloud account and clusters. This runs locally on your computer and lets you quickly perform operations like creating clusters, listing topics, and reading messages. + +**Remote MCP (managed)**: Your own custom MCP servers built with Redpanda Connect pipelines and hosted inside your Redpanda Cloud cluster. These let you create reusable tools for your team that integrate with knowledge bases, APIs, and web content while running close to your data. \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/local/configuration.adoc b/modules/ROOT/pages/mcp/local/configuration.adoc index 6078104..7b4453f 100644 --- a/modules/ROOT/pages/mcp/local/configuration.adoc +++ b/modules/ROOT/pages/mcp/local/configuration.adoc @@ -1,8 +1,8 @@ -= Configure Redpanda Cloud MCP += Configure the Local MCP server for Redpanda Cloud :page-beta: true -:description: Learn how to configure the Redpanda Cloud MCP Server for your AI assistant, including auto and manual client setup, enabling deletes, and security considerations. +:description: Learn how to configure the local MCP server for Redpanda Cloud, including auto and manual client setup, enabling deletes, and security considerations. -This page explains how to configure the Redpanda Cloud MCP Server for your AI assistant, including auto and manual client setup, enabling deletes, and security considerations. +This page explains how to configure the local MCP server for Redpanda Cloud, including auto and manual client setup, enabling deletes, and security considerations. == Prerequisites @@ -31,7 +31,7 @@ If you need to update the integration, re-run the install command for your clien == Manual configuration for other MCP clients -If you're using another MCP-compatible client, you can manually configure it to use Redpanda Cloud MCP Server. Follow these steps: +If you're using another MCP-compatible client, you can manually configure it to use the local MCP server for Redpanda Cloud. Follow these steps: Add an MCP server entry to your client's configuration (example shown in JSON). Adjust paths for your system. @@ -175,10 +175,6 @@ Expected response shapes (examples): + .. Stop the server with `Ctrl+C`. -== Common issues - -The server runs locally, but it must reach Redpanda Cloud endpoints to perform operations. - === Client can't find the MCP server * Re-run the install for your MCP client. diff --git a/modules/ROOT/pages/mcp/local/index.adoc b/modules/ROOT/pages/mcp/local/index.adoc index e70b573..1642959 100644 --- a/modules/ROOT/pages/mcp/local/index.adoc +++ b/modules/ROOT/pages/mcp/local/index.adoc @@ -1,5 +1,4 @@ -= Redpanda Cloud MCP Server += Local MCP server for Redpanda Cloud :page-beta: true -:description: Find links to information about the Redpanda Cloud MCP Server and its features for building and managing AI agents that can interact with your Redpanda Cloud account and clusters. +:description: Find links to information about the Local MCP server for Redpanda Cloud and its features for building and managing AI agents that can interact with your Redpanda Cloud account and clusters. :page-layout: index -:page-aliases: develop:agents/about.adoc \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/local/overview.adoc b/modules/ROOT/pages/mcp/local/overview.adoc index 8160dcc..cc624f4 100644 --- a/modules/ROOT/pages/mcp/local/overview.adoc +++ b/modules/ROOT/pages/mcp/local/overview.adoc @@ -1,16 +1,16 @@ -= About the Redpanda Cloud MCP Server += About the Local MCP server for Redpanda Cloud :page-beta: true -:description: Learn about the Redpanda Cloud MCP Server, which lets AI assistants securely access and operate your Redpanda Cloud account and clusters. +:description: Learn about the local MCP server for Redpanda Cloud, which lets AI assistants securely access and operate your Redpanda Cloud account and clusters. -The Redpanda Cloud MCP Server lets AI assistants securely access and operate your Redpanda Cloud account and clusters. MCP provides controlled access to: +The local MCP server for Redpanda Cloud lets AI assistants securely access and operate your Redpanda Cloud account and clusters. MCP provides controlled access to: * link:https://docs.redpanda.com/api/doc/cloud-controlplane/[Control Plane] actions, such as creating a Redpanda Cloud cluster or listing clusters. * link:https://docs.redpanda.com/api/doc/cloud-dataplane/[Data Plane] actions, such as creating topics or listing topics. By speaking natural language to your assistant, you can ask it to perform Redpanda operations on your behalf. The MCP server runs locally on your machine and authenticates to Redpanda Cloud using a Redpanda Cloud token. -image::shared:cloud-mcp.gif[A terminal window showing Claude Code invoking Redpanda Cloud MCP to list topics in a cluster.] +image::shared:cloud-mcp.gif[A terminal window showing Claude Code invoking the local MCP server for Redpanda Cloud to list topics in a cluster.] == What you can do @@ -32,7 +32,7 @@ NOTE: The MCP server does **not** expose delete endpoints by default. You can en . Authenticate to Redpanda Cloud and receive a token using the xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[`rpk cloud login` command]. . Configure your MCP client using the xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-install.adoc[`rpk cloud mcp install`] command. Your client then starts the server on-demand using xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-stdio.adoc[`rpk cloud mcp stdio`], authenticating with the Redpanda Cloud token from `rpk cloud login`. -. Prompt your assistant to perform Redpanda operations. The Redpanda Cloud MCP Server executes them in your Redpanda Cloud account using your Redpanda Cloud token. +. Prompt your assistant to perform Redpanda operations. The local MCP server for Redpanda Cloud executes them in your Redpanda Cloud account using your Redpanda Cloud token. === Components @@ -40,6 +40,14 @@ NOTE: The MCP server does **not** expose delete endpoints by default. You can en * Redpanda CLI (`rpk`) for obtaining a token and starting the local MCP server. * Redpanda Cloud account that the local MCP server can connect to and issue API requests. +== Security considerations + +MCP servers authenticate to Redpanda Cloud using your personal or service account credentials. However, there is **no auditing or access control** that distinguishes between actions performed by MCP servers versus direct API calls: + +* All API actions appear in Redpanda Cloud's internal logs as coming from the authenticated user account, not the specific MCP server. +* You cannot audit which MCP server performed which operations, as Redpanda Cloud logs are not accessible to users. +* You cannot restrict specific MCP servers to only certain API endpoints or resources. + == Next steps * xref:ai-agents:mcp/local/quickstart.adoc[] diff --git a/modules/ROOT/pages/mcp/local/quickstart.adoc b/modules/ROOT/pages/mcp/local/quickstart.adoc index 55eddc0..6cf7ee1 100644 --- a/modules/ROOT/pages/mcp/local/quickstart.adoc +++ b/modules/ROOT/pages/mcp/local/quickstart.adoc @@ -1,14 +1,10 @@ -= Redpanda Cloud MCP Quickstart += Local MCP server for Redpanda Cloud Quickstart :page-beta: true -:description: Connect your Claude AI assistant to your Redpanda Cloud account and clusters using the Redpanda Cloud MCP Server. +:description: Connect your Claude AI assistant to your Redpanda Cloud account and clusters using the local MCP server for Redpanda Cloud. -In this quickstart, you'll get your Claude AI assistant talking to Redpanda Cloud using the xref:ai-agents:mcp/local/overview.adoc[Redpanda Cloud MCP Server]. - -//// -To be used when Remote MCP is ready for public beta +In this quickstart, you'll get your Claude AI assistant talking to Redpanda Cloud using the xref:ai-agents:mcp/local/overview.adoc[local MCP server for Redpanda Cloud]. If you're trying to deploy your own MCP server as a managed service inside your cluster, see xref:ai-agents:mcp/remote/quickstart.adoc[]. -//// == Prerequisites diff --git a/modules/ROOT/pages/mcp/overview.adoc b/modules/ROOT/pages/mcp/overview.adoc new file mode 100644 index 0000000..6024bfe --- /dev/null +++ b/modules/ROOT/pages/mcp/overview.adoc @@ -0,0 +1,50 @@ += MCP in Redpanda Cloud +:page-beta: true +:description: Learn about Model Context Protocol (MCP) in Redpanda Cloud, including the two complementary options: Redpanda Cloud MCP Server and Remote MCP (managed). + + +**Model Context Protocol (MCP)** is a way to give AI assistants like Claude access to tools and data they wouldn't normally have. Instead of just chatting with your AI assistant, you can ask it to perform real tasks on your behalf. + +== Why use MCP with Redpanda Cloud? + +With MCP, you can have natural conversations with your AI assistant about your streaming data infrastructure. Rather than remembering command-line syntax or navigating through web interfaces, you describe what you want in plain language and your AI assistant handles the technical details. + +== MCP options in Redpanda Cloud + +In Redpanda Cloud, there are two complementary options to use MCP: + +[cols="1s,2a,2a"] +|=== +| | Redpanda Cloud MCP Server | Remote MCP + +| Description +| A server that gives your AI assistant access to your Redpanda Cloud account and clusters. +| Your own MCP server built with Redpanda Connect and hosted inside your Redpanda Cloud cluster. + +| Where it runs +| Your computer +| In your Redpanda Cloud cluster (managed by Redpanda) + +| Who builds it +| Redpanda +| You, with Redpanda Connect + +| Example use cases (prompts you might ask) +| - Create a new cluster called `dev-analytics` for testing. +- List all topics in my production cluster. +| - Analyze the last 100 orders and show me the top product categories. +- Generate a summary of user activity from the events stream. +|=== + +TIP: The Redpanda documentation site includes a read-only MCP server that gives you access to Redpanda documentation and code examples through AI assistants like Claude Desktop. This server only provides access to public documentation content. It cannot access your Redpanda Cloud account, clusters, or any private data. This is useful for getting help with Redpanda concepts and examples without connecting your actual Redpanda environment. For setup instructions, see xref:home:ROOT:mcp-setup.adoc[]. + +== Which should I use? + +Use the **Redpanda Cloud MCP Server** to operate your Redpanda Cloud account quickly from your laptop. + +Use the **Remote MCP** to provide reusable tools for your team, running inside the cluster, authored with Redpanda Connect. + +== Get started + +* xref:ai-agents:mcp/local/quickstart.adoc[] +* xref:ai-agents:mcp/remote/quickstart.adoc[] diff --git a/modules/ROOT/pages/mcp/remote/admin-guide.adoc b/modules/ROOT/pages/mcp/remote/admin-guide.adoc new file mode 100644 index 0000000..ec09bc7 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/admin-guide.adoc @@ -0,0 +1,56 @@ += Manage Remote MCP Servers +:page-beta: true +:description: Learn how to manage, edit, stop, resume, and delete Remote MCP servers in Redpanda Cloud. + + +This guide is for Redpanda Cloud administrators who need to manage the lifecycle of Remote MCP servers. + +== Prerequisites + +You must have an existing MCP server. If you do not have one, see xref:ai-agents:mcp/remote/quickstart.adoc[]. + +== Edit an existing MCP server + +You can update the configuration, resources, or metadata of a Remote MCP server at any time. + +. In the Redpanda Cloud Console, navigate to *Remote MCP*. +. Find the MCP server you want to edit and click its name. +. Click *Edit configuration*. +. Make your changes. +. Click *Save* to apply changes. + +[NOTE] +==== +Editing a running MCP server may cause a brief interruption. Review changes before deploying to production. +==== + +== Stop (pause) an MCP server + +Pausing a server stops all tool execution and releases compute resources, but preserves configuration and state. + +. In the *Remote MCP* list, find the server you want to stop. +. Click the three dots and select *Stop*. +. Confirm the action. + +[NOTE] +==== +While stopped, the server does not respond to MCP requests. Start it again to restore service. +==== + +== Resume a stopped MCP server + +. In the *Remote MCP* list, find the stopped server. +. Click the three dots and select *Start*. +. Wait for the status to show *Running* before reconnecting clients. + +== Delete an MCP server + +Deleting a server is permanent and cannot be undone. + +. In the *Remote MCP* list, find the server to delete. +. Click the three dots and select *Delete*. +. Confirm the deletion when prompted. + +== API and automation + +All of these actions can also be performed using the Redpanda Cloud API version v1alpha3. See the link:https://github.com/redpanda-data/console/blob/master/proto/gen/openapi/openapi.v1alpha3.yaml[OpenAPI specification file] for endpoints to manage MCP servers. \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/remote/developer-guide.adoc b/modules/ROOT/pages/mcp/remote/developer-guide.adoc new file mode 100644 index 0000000..5fc7aff --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/developer-guide.adoc @@ -0,0 +1,349 @@ += Build Remote MCP Servers in Redpanda Cloud +:page-beta: true +:description: Learn how to write and deploy Remote MCP servers in Redpanda Cloud. This guide covers concepts, patterns, and best practices. + + +This guide teaches you how to build xref:ai-agents:mcp/remote/overview.adoc[Remote MCP servers] that are managed in Redpanda Cloud. Remote MCP servers run inside your Redpanda Cloud cluster and expose tools that AI clients can call using MCP. + +== Prerequisites + +* Access to a Redpanda Cloud cluster +* Ability to manage the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] entries +* At least version 25.2.5 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer] +* (Optional) An AI assistant like Claude or Claude Code for testing + +TIP: For a quickstart, see xref:ai-agents:mcp/remote/quickstart.adoc[]. + +You should also be familiar with YAML, HTTP APIs, and basic event-stream processing concepts. + +== Concepts and architecture + +Remote MCP server:: A managed, hosted MCP service deployed to your cluster. You write each tool's logic using Redpanda Connect configuration and annotate them with MCP metadata so clients can discover and invoke them. + +Redpanda Connect:: A framework for building event-driven data pipelines. Tools inside your Remote MCP servers are implemented as Redpanda Connect configurations that run inside your Redpanda Cloud cluster. + +Tool:: A single request/response operation exposed to MCP. + +Secrets:: Credentials and tokens that you want to use in your tools. These values must be stored in the Secrets Store and referenced as `${secrets.NAME}`. Use uppercase snakecase for secret names (such as `DATAPLANE_TOKEN`). + +== Development workflow + +. <>: Select a Redpanda Cloud cluster to host your MCP server. +. <>: Annotate MCP metadata with `meta.mcp.enabled: true`, provide a concise description, and declare parameters. +. <>: Create secrets in the Secrets Store for any credentials. Never inline secrets in YAML. +. <>: Build the logic for your MCP tool using Redpanda Connect configurations. +. <>: Validate your configuration, catch schema errors, then deploy and test with the MCP Inspector. +. <>: Install a proxy entry with `rpk cloud mcp proxy` in your AI assistant MCP configuration, or connect with your own MCP client. +. <>: Add temporary `log` processors, adjust timeouts/retries, and right-size resources. + +[[access]] +== Access MCP Servers in Redpanda Cloud + +. Log into your link:https://cloud.redpanda.com[Redpanda Cloud Console^]. +. Select your cluster from the cluster list. +. In the left sidebar, navigate to *Remote MCP*. +. If this is your first MCP server, you'll see an empty list with a *Create MCP Server* button. +. Fill in the required fields: ++ +* *Name*: A unique identifier for your server (for example `weather-tool`, `customer-lookup`). +* *Description*: Brief description of what your server does. +* *Configuration*: This is where to put your YAML configuration to define an MCP tool. + +[[contract]] +== Design the tool contract and MCP metadata + +Each MCP tool must declare its interface using `meta.mcp` metadata. This metadata allows AI clients to discover and invoke the tool correctly. + +Define a clear, stable interface for each tool. Keep the description task-oriented and keep properties to a minimum. + +[source,yaml] +---- +meta: + mcp: + enabled: true <1> + description: "Publishes a message to a specified Redpanda topic" <2> + properties: <3> + - name: message + type: string + description: "The message content to publish" + required: true + - name: topic_name + type: string + description: "The Redpanda topic to publish to" + required: true +---- + +<1> Set `meta.mcp.enabled: true` to expose the tool using MCP. +<2> A concise description that explains what the tool does. This should be understandable by an AI model. +<3> Define the properties that AI clients can provide when calling this tool. ++ +Properties define the inputs that AI clients can provide when calling your tool. Each property has: + +* **name**: The parameter name AI clients will use +* **type**: Data type (`string`, `number`, or `boolean`) +* **description**: Human-readable explanation of what this property does +* **required**: Whether the property is mandatory (`true`) or optional (`false`) + +Property guidance: + +* Use descriptive names that clearly indicate the property's purpose. +* Provide clear descriptions that explain both the purpose and any constraints. +* Mark only mandatory fields as required. Prefer optional properties with sensible defaults. +* Document default values in the description and implement them in your tool logic. +* Consider component type restrictions: `input` components only support a `count` property, `cache` components have no custom properties, and `output` components receive properties as arrays for batch operations. + +After defining your tool contract, implement the logic to handle input validation, defaults, and the main processing steps. + +[[provision-secrets]] +== Provision secrets + +All credentials and sensitive values must be stored in the Redpanda Cloud xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. Follow these best practices: + +- Reference secrets as `${secrets.NAME}` in your YAML configuration. +- Never commit secrets to Git or reference them directly inline in configuration files. +- Use uppercase snakecase for secret names (such as `DATAPLANE_TOKEN`). +- Rotate secrets in the Secrets Store as needed. +- Only request the scopes/roles required by your tool (principle of least privilege). + +See an example of using secrets in xref:ai-agents:mcp/remote/pipeline-patterns.adoc#secrets[MCP patterns]. + +[[pipeline-patterns]] +== Implement the logic of your MCP tool + +Use Redpanda Connect components to implement the logic of your MCP tool. Here are some best practices: + +* **Single responsibility**: Each tool should do one thing well. +* **Descriptive naming**: Use clear, specific labels like `fetch-user-profile` instead of generic names like `get-data`. The top-level label becomes the tool's name in the MCP server. +* **Input validation**: Always validate and sanitize user inputs using xref:develop:connect/guides/bloblang/about.adoc[Bloblang]. +* **Error handling**: Provide meaningful error messages. +* **Documentation**: Write clear descriptions that explain what the tool does and what it returns. + +For common patterns and examples, see xref:ai-agents:mcp/remote/pipeline-patterns.adoc[]. + +Here's a complete example that demonstrates best practices: + +[source,yaml] +---- +include::ai-agents:example$weather_service.yaml[] +---- + +=== YAML configuration rules + +Each YAML configuration (tool) should contain exactly one component type. The component type is inferred from the type you choose in the dropdown when creating or editing the MCP server. Valid component types are: + +* xref:develop:connect/components/inputs/about.adoc[`input`] (for data sources) +* xref:develop:connect/components/outputs/about.adoc[`output`] (for data sinks) +* xref:develop:connect/components/processors/about.adoc[`processor`] (for data transformations and data access) +* xref:develop:connect/components/caches/about.adoc[`cache`] (for caching intermediate results) + +=== Property restrictions by component type + +Different component types have different property capabilities when exposed as MCP tools: + +[cols="1,2,2"] +|=== +| Component Type | Property Support | Details + +| `input` +| Only supports `count` property +| AI clients can specify how many messages to read, but you cannot define custom properties. + +| `cache` +| No custom properties +| Properties are hardcoded to `key` and `value` for cache operations. + +| `output` +| Custom properties supported +| AI sees properties as an array for batch operations: `[{prop1, prop2}, {prop1, prop2}]`. + +| `processor` +| Custom properties supported +| You can define any properties needed for data processing operations. +|=== + +=== Configuration examples + +.Correct example +[source,yaml] +---- +label: event-reader +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "events" ] + consumer_group: "mcp-reader" + +meta: + mcp: + enabled: true + description: "Consume events from Redpanda" +---- + +.Correct example +[source,yaml] +---- +label: fetch-example-data +processors: + - label: safe_operation + try: + - http: + url: "https://api.example.com/data" + timeout: "10s" + - mutation: | + root = this.merge({"processed": true}) + + - label: handle_errors + catch: + - mutation: | + root = { + "error": "Operation failed", + "details": error() + } +---- + +.Incorrect (do not include the input wrapper) +[source,yaml] +---- +label: incorrect-example +input: + redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "events" ] +---- + +.Incorrect (multiple component types in one file) +[source,yaml] +---- +label: incorrect-example +input: + redpanda: { ... } +processors: + - mutation: { ... } +output: + redpanda: { ... } +---- + +[[lint]] +== Lint and deploy your MCP server + +=== Lint your configuration + +Before deploying, validate your YAML configuration to catch syntax errors and schema violations: + +. In the Redpanda Cloud Console, after entering your YAML configuration, click *Lint*. +. The linter checks for: ++ +* Valid YAML syntax +* Correct Redpanda Connect component schemas +* Required MCP metadata fields +* Secret reference formatting +* Component configuration completeness + +. Fix any errors shown in the linting output before proceeding to deployment. +. A successful lint shows no errors and confirms your configuration is ready to deploy. + +TIP: Always lint your configuration after making changes. This catches issues early and prevents deployment failures. + +=== Deploy your MCP server + +. Click *Create MCP Server* to deploy the server. +. Monitor the *Status* column. It will show one of: ++ +* *Starting*: Server is being deployed. +* *Running*: Server is active and ready to receive requests. +* *Error*: Check logs for deployment issues. + +=== Test with MCP Inspector + +. When your server status shows *Running*, click on the server name. +. Navigate to the *MCP Inspector* tab. +. This built-in tool lets you: ++ +* View all available tools your server exposes. +* Test tool calls with sample parameters. +* See request/response data. +* Debug issues without setting up external clients. + +=== Manage your MCP server + +From the MCP Servers list, you can: + +* *View logs*: Click the server name, then go to the *Logs* tab to see execution logs and errors. +* *Update configuration*: Edit the YAML and redeploy. +* *Start/Stop*: Control server lifecycle. +* *Delete*: Remove the server and clean up resources. + +See xref:ai-agents:mcp/remote/admin-guide.adoc[]. + +[[test]] +== Authenticate and connect your MCP client + +To connect your local MCP client to your Remote MCP server: + +. First, authenticate to Redpanda Cloud: ++ +[source,bash] +---- +rpk cloud login +---- ++ +This opens a browser window for sign-in and stores your authentication token locally. + +. Install the MCP proxy for your client (Claude/Claude Code). ++ +For BYOC and Dedicated clusters, use: ++ +[,bash] +---- +rpk cloud mcp proxy \ +--cluster-id \ <1> +--mcp-server-id \ <2> +--install --client claude-code +---- ++ +For Serverless clusters, use: ++ +[,bash] +---- +rpk cloud mcp proxy \ +--serverless-cluster-id \ <1> +--mcp-server-id \ <2> +--install --client claude-code +---- ++ +-- +<1> The target Redpanda Cloud cluster ID where your Remote MCP server is hosted. +<2> The unique ID of your deployed Remote MCP server +-- ++ +TIP: You can find this command and the IDs in the *Connection* tab of your MCP server in Redpanda Cloud. + +The proxy acts as a bridge between your local client and the Remote MCP server running in your cluster. It: + +* Connects to your Remote MCP server using your authentication token +* Discovers and registers all tools from the Remote server locally +* Proxies MCP requests from your client to the Remote server +* Handles authentication by injecting your token into each request + +. Restart your client and invoke your tool. + +:note-caption: Building your own agent? + +[NOTE] +==== +You can implement the auth workflow directly against Redpanda Cloud APIs and skip the use of `rpk`. The proxy is a convenience, not a requirement of Remote MCP. For code examples, see the *Connection* tab in your MCP server in Redpanda Cloud. +==== + +:note-caption: Note + +[[observe]] +== Observe and debug your MCP tools + +You can view execution logs in the Redpanda Cloud Console under your MCP server's *Logs* tab. + +== Suggested reading + +* xref:develop:connect/components/about.adoc[Redpanda Connect components reference] +* xref:develop:connect/guides/bloblang/about.adoc[Bloblang language guide] +* xref:develop:connect/configuration/secret-management.adoc[Secret management in Redpanda Connect] +* xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[`rpk cloud login` command reference] +* xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-proxy.adoc[`rpk cloud mcp proxy` command reference] diff --git a/modules/ROOT/pages/mcp/remote/index.adoc b/modules/ROOT/pages/mcp/remote/index.adoc new file mode 100644 index 0000000..43fa14d --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/index.adoc @@ -0,0 +1,4 @@ += Remote MCP Servers for Redpanda Cloud +:page-beta: true +:description: Enable AI assistants to directly interact with your Redpanda Cloud clusters and streaming data. +:page-layout: index diff --git a/modules/ROOT/pages/mcp/remote/overview.adoc b/modules/ROOT/pages/mcp/remote/overview.adoc new file mode 100644 index 0000000..ee5fc6d --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/overview.adoc @@ -0,0 +1,116 @@ += About Remote MCP Servers for Redpanda Cloud +:page-beta: true +:description: Discover how AI assistants can interact with your streaming data and how to connect them to Redpanda Cloud. + + +Remote MCP (Model Context Protocol) servers are managed, hosted MCP servers that you can write and run inside your Redpanda Cloud cluster. They let you expose your data, analytics, and automation pipelines as AI-consumable tools with no custom API code. MCP servers bridge your business logic to AI agents using the open MCP standard, so you can: + +* Make your data and workflows accessible to AI assistants and LLMs, safely and on your terms. +* Accelerate automation and insight by letting AI trigger real business actions. +* Control exposure so that only the tools you tag are visible to AI. + +== Why use a Remote MCP server? + +* *Always-on and centrally managed*: No need to run a local process. Your tools live with your data, managed by Redpanda. +* *Proximity to data*: Execute tools next to your cluster for lower latency and simpler networking. +* *Secure by design*: Use the xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. Never hardcode secrets in your YAML configuration. +* *Fast iteration*: Define tools as YAML configuration, deploy your MCP server, and your AI agents can use the new logic instantly. + +== Use cases + +[cols="1s,3a"] +|=== +|Category |Example prompts + +|Operational monitoring +|* Check partition lag for customer-events topic +* Show me the top 10 producers by message volume today +* Get schema registry health status + +|Data enrichment and analysis +|* Fetch user profile data and recent orders for customer ID 12345 +* Get real-time stock prices for symbols in my portfolio topic +* Analyze sentiment of latest product reviews + +|Team productivity +|* Deploy my microservice to the staging environment +* Generate load test data for the payments service +* Create a summary dashboard of this week's incident reports + +|Business intelligence +|* What are the trending products in the last 24 hours? +* Show revenue impact of the latest feature deployment +* Get customer satisfaction scores from support tickets +|=== + +== How it works + +. Build your tools as Redpanda Connect configurations with `meta.mcp` metadata (description, properties, and logic). +. Deploy to your cluster. Redpanda Cloud hosts your MCP server with secure access. +. Connect your AI client. AI assistants authenticate, discover available tools, and invoke them using natural language prompts. + +== Example: Customer analytics tool + +Here's how you might expose a customer analytics pipeline as an MCP tool: + +[source,yaml] +---- +label: analyze_customer_orders +processors: + - label: fetch_customer_data + sql_select: + driver: "postgres" + dsn: "${secrets.POSTGRES_DSN}" + table: "orders" + where: "customer_id = ? AND created_at >= NOW() - INTERVAL '30 days'" + args_mapping: 'root = [this.customer_id]' + + - label: calculate_metrics + mutation: | + root = { + "customer_id": this.customer_id, + "total_orders": this.length(), + "total_spent": this.map_each(o -> o.total).sum(), + "avg_order_value": this.map_each(o -> o.total).mean(), + "last_order_date": this.map_each(o -> o.created_at).max() + } + +meta: + mcp: + enabled: true + description: "Analyze a customer's order history and spending patterns over the last 30 days" + properties: + - name: customer_id + type: string + description: "Customer ID to analyze" + required: true +---- + +This tool can be invoked by an AI assistant with prompts like "analyze the order history for customer ID 12345" without needing to know the underlying SQL or processing logic. + +== Authentication options + +- **MCP proxy (recommended):** For tools with built-in MCP clients like Claude Code: ++ +[,bash] +---- +rpk cloud login +rpk cloud mcp proxy --install --client claude-code --cluster-id --mcp-server-id +---- + +- **Direct connection:** If building your own AI agent, implement the MCP client flow yourself and connect directly to the Remote MCP server. + +== MCP specification support + +Remote MCP server implements the open MCP protocol for tool exposure. Only the tool concept from the MCP server specification is supported. Features such as MCP resources and prompts are not yet available. + +For full details, see the official MCP server specification: link:https://modelcontextprotocol.io/specification/2025-06-18/server[modelcontextprotocol.io/specification/2025-06-18/server^]. + +== Get started + +* xref:ai-agents:mcp/remote/quickstart.adoc[] + +== Suggested reading + +* xref:ai-agents:mcp/remote/developer-guide.adoc[] +* Learn more about MCP in the link:https://docs.anthropic.com/en/docs/mcp[official documentation^]. diff --git a/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc b/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc new file mode 100644 index 0000000..70d589e --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc @@ -0,0 +1,306 @@ += Patterns for Remote MCP Servers +:description: Catalog of patterns for Remote MCP server tools in Redpanda Cloud. +:page-beta: true + +This page provides a reference catalog of patterns designed for use with Remote MCP servers in Redpanda Cloud. Use these patterns as building blocks for your own MCP tools. For step-by-step instructions on building, deploying, and testing MCP servers, see xref:ai-agents:mcp/remote/developer-guide.adoc[]. + +Each pattern is a reusable example for a common MCP tool scenario. Patterns are grouped by use case. All YAML is ready to use in your MCP server project. + +For a high-level overview of MCP servers, see xref:ai-agents:mcp/overview.adoc[]. + +== Data generators + +Use xref:develop:connect/components/inputs/about.adoc[`inputs`] to create tools that read data from internal or external systems or generate sample data for testing and development. + +This example generates a realistic user event message: + +[source,yaml] +---- +include::ai-agents:example$generate_input.yaml[] +---- + +See also: xref:develop:connect/components/inputs/generate.adoc[`generate` input component] + +== External API calls + +Use xref:develop:connect/components/processors/about.adoc[`processors`] to fetch data from external APIs, databases, or services and return formatted results. This is one of the most common patterns for MCP tools. + +[source,yaml] +---- +include::ai-agents:example$http_processor.yaml[] +---- + +See also: xref:develop:connect/components/processors/http.adoc[`http` processor], xref:develop:connect/components/processors/mutation.adoc[`mutation` processor] + +== Database queries + +Query external databases and return structured results. This pattern is essential for tools that need to access business data. + +[source,yaml] +---- +include::ai-agents:example$gcp_bigquery_select_processor.yaml[] +---- + +See also: xref:develop:connect/components/processors/gcp_bigquery_select.adoc[`gcp_bigquery_select` processor], xref:develop:connect/components/processors/sql_select.adoc[`sql_select` processor] (for other databases) + +=== Redpanda integration and data publishing + +Use these patterns when you need to integrate with Redpanda infrastructure, publish data to topics, or implement caching systems. + +=== Data publishers (output patterns) + +Use xref:develop:connect/components/outputs/about.adoc[`outputs`] to send data to external systems or build caching systems. + +This example publishes a message to a Redpanda topic: + +[source,yaml] +---- +include::ai-agents:example$redpanda_output.yaml[] +---- + +See also: xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] + +=== Caching systems + +Use caching to store frequently accessed data, reduce latency, and minimize external API calls. You can implement caching using either Redpanda topics or in-memory stores. + +[source,yaml] +---- +include::ai-agents:example$redpanda_cache.yaml[] +---- + +This example implements an in-memory cache for low-latency access to small datasets: + +[source,yaml] +---- +include::ai-agents:example$memory_cache.yaml[] +---- + +See also: xref:develop:connect/components/caches/memory.adoc[`memory` cache], Redpanda-backed cache using xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] + +== Production workflows and observability + +Build enterprise-grade tools with error handling, validation, multi-step workflows, and monitoring. + +=== Parameter validation and type coercion + +Always validate and coerce input parameters to ensure your tools are robust: + +[source,yaml] +---- +processors: + - label: validate_params + mutation: | + # Validate required parameters + root = if !this.exists("user_id") { + throw("user_id parameter is required") + } else { this } + + # Type coercion with validation + meta user_id = this.user_id.string() + meta limit = this.limit.number().catch(10) + meta start_date = this.start_date.parse_timestamp("2006-01-02").catch(now() - duration("24h")) +---- + +=== Dynamic configuration + +Build tools that adapt their behavior based on input parameters: + +[source,yaml] +---- +processors: + - label: dynamic_config + mutation: | + # Choose data source based on environment + meta env = this.environment | "production" + meta table_name = match @env { + "dev" => "dev_orders", + "staging" => "staging_orders", + "production" => "prod_orders", + _ => "dev_orders" + } + + # Adjust query complexity based on urgency + meta columns = if this.detailed.bool().catch(false) { + ["order_id", "customer_id", "total", "items", "shipping_address"] + } else { + ["order_id", "customer_id", "total"] + } +---- + +=== Error handling and fallbacks + +Implement error handling to make your tools reliable: + +[source,yaml] +---- +processors: + - label: primary_fetch + try: + - http: + url: "https://api.primary.com/data" + timeout: "10s" + catch: + - log: + message: "Primary API failed, trying fallback" + - label: fallback_fetch + http: + url: "https://api.fallback.com/data" + timeout: "15s" + - mutation: | + root.metadata.source = "fallback" + root.metadata.warning = "Primary source unavailable" +---- + +=== Conditional processing + +Build tools that branch based on input or data characteristics: + +[source,yaml] +---- +processors: + - label: conditional_processing + switch: + - check: this.data_type == "json" + processors: + - json: + operator: "parse" + - mutation: 'root.parsed_data = this' + - check: this.data_type == "csv" + processors: + - csv: + parse: true + - mutation: 'root.parsed_data = this' + - processors: + - mutation: 'root.error = "Unsupported data type"' +---- + +[[secrets]] +=== Secrets and credentials + +Securely handle multiple credentials and API keys. + +Here is an example of using an API key secret. + +. Create a secret in the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] with name `EXTERNAL_API_KEY` and your API key as the value. + +. Reference the secret in your YAML configuration: ++ +[source,yaml] +---- +processors: + - label: call_external_api + http: + url: "https://api.example.com/data" + verb: GET + headers: + Authorization: "Bearer ${secrets.EXTERNAL_API_KEY}" # <1> + Accept: "application/json" +---- ++ +<1> The secret is injected at runtime. Never store the actual API key in your YAML configuration. The actual secret value never appears in your configuration files or logs. + +=== Monitoring, debugging, and observability + +Use structured logging, request tracing, and performance metrics to gain insights into tool execution. + +[source,yaml] +---- +include::ai-agents:example$observable_tool.yaml[] +---- + +Observability features: + +* *Correlation IDs*: Use `uuid_v7()` to generate unique request identifiers for tracing +* *Execution timing*: Track how long your tools take to execute using nanosecond precision +* *Structured logging*: Include consistent fields like `request_id`, `duration_ms`, `tool_name` +* *Request/response metadata*: Log input parameters and response characteristics +* *Success tracking*: Monitor whether operations complete successfully + +You can test this pattern by invoking the tool with valid and invalid parameters, and observe the structured logs for tracing execution flow. For example, with a user ID of 1, you might see logs like: + +[source,json] +---- +{ + "metadata": { + "execution_time_ms": 0.158977, + "request_id": "019951ab-d07d-703f-aaae-7e1c9a5afa95", + "success": true, + "timestamp": "2025-09-16T08:37:18.589Z", + "tool": "observable_tool" + }, + "trace": { + "request_id": "019951ab-d07d-703f-aaae-7e1c9a5afa95", + "timestamp": "2025-09-16T08:37:18.589Z", + "tool": "observable_tool", + "version": "1.0.0" + }, + "user_id": "1" +} +---- + +=== Multi-step data enrichment + +Build tools that combine data from multiple sources. + +This workflow fetches customer data from a SQL database, enriches it with recent order history, and computes summary metrics. + +[source,yaml] +---- +include::ai-agents:example$customer_enrichment.yaml[] +---- + +See also: xref:develop:connect/components/processors/sql_select.adoc[`sql_select` processor], xref:develop:connect/guides/bloblang/about.adoc[Bloblang functions] (for data manipulation and aggregations) + +=== Workflow orchestration + +Coordinate complex workflows with multiple steps and conditional logic. + +This workflow simulates a complete order processing pipeline with mock data for inventory and processing tiers. This allows you to test the full logic without needing real external systems. + +[source,yaml] +---- +include::ai-agents:example$order_workflow.yaml[] +---- + +For the input `{"order_id": "ORD001", "product_id": "widget-001", "quantity": 5, "total": 250, "customer_tier": "vip"}`, the workflow produces: + +[source,json] +---- +{ + "assigned_rep": "vip-team@company.com", + "available_quantity": 100, + "customer_tier": "vip", + "estimated_fulfillment": "TBD - calculated based on processing tier", + "inventory_check": "passed", + "order_id": "ORD001", + "order_status": "processed", + "perks": [ + "expedited_shipping", + "white_glove_service" + ], + "priority_score": 90, + "processed_at": "2025-09-16T09:05:29.138Z", + "processing_tier": "vip", + "processing_time_estimate": "1-2 hours", + "processing_time_hours": 2, + "product_id": "widget-001", + "product_name": "Standard Widget", + "quantity": 5, + "total": 250 +} +---- + +Notice how the workflow: + +. Preserves original input: `order_id`, `product_id`, `quantity`, `total`, and `customer_tier` pass through unchanged. +. Adds inventory data: `available_quantity`, `product_name`, and `inventory_check` status from the mock lookup. +. Routes by customer tier: Since `customer_tier` is "vip", it gets VIP processing with special `perks` and priority. +. Enriches with processing metadata: `assigned_rep`, `priority_score`, `processing_tier`, and time estimates. +. Finalizes with timestamps: `order_status`, `processed_at`, and calculated `processing_time_hours`. + +== Suggested reading + +* xref:develop:connect/components/about.adoc[Components overview] +* xref:develop:connect/guides/bloblang/about.adoc[Bloblang guide] +* xref:develop:connect/configuration/secret-management.adoc[Secret management] \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/remote/quickstart.adoc b/modules/ROOT/pages/mcp/remote/quickstart.adoc new file mode 100644 index 0000000..dd21317 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/quickstart.adoc @@ -0,0 +1,194 @@ += Remote MCP Server Quickstart +:page-beta: true +:description: Create and host a managed MCP server inside your Redpanda Cloud cluster with tools for generating and publishing user event data. + + +This quickstart guide shows you how to create and host a managed MCP server inside your Redpanda Cloud cluster. The server includes two tools: one for generating user event data and another for publishing that data to a Redpanda topic. + +== Prerequisites + +* A Redpanda Cloud cluster with *Remote MCP* enabled +* Access to the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] for storing credentials. +* At least version 25.2.5 of the xref:manage:rpk/rpk-install.adoc[Redpanda CLI (`rpk`)] installed on your computer +* link:https://docs.anthropic.com/en/docs/claude-code/setup[Claude Code] installed + +TIP: For a complete developer guide, see xref:ai-agents:mcp/remote/developer-guide.adoc[]. + +== Prepare your cluster + +Before creating the MCP server, you need to set up a topic and user for event publishing. Use the Redpanda CLI to perform these steps. + +. Log in to your Redpanda Cloud account: ++ +[,bash] +---- +rpk cloud login +---- ++ +This opens a browser window to authenticate. The token is saved locally inside your `rpk` configuration file. It is valid for 4 hours. You can refresh it by running `rpk cloud login` again. + +. Create a topic called `events` for storing user event data: ++ +[,bash] +---- +rpk topic create events --partitions 3 --replicas 3 +---- + +. Create a user called `mcp` with a strong password: ++ +[,bash] +---- +rpk acl user create mcp --password +---- ++ +Save the password securely. You need it later when configuring the MCP server. + +. Grant the `mcp` user permissions to produce and consume from the `events` topic: ++ +[,bash] +---- +rpk acl create --allow-principal User:mcp --operation all --topic events +---- + +== Create a Remote MCP Server in Redpanda Cloud + +. Log in to the link:https://cloud.redpanda.com/[Redpanda Cloud Console^]. + +. Navigate to *Remote MCP*. ++ +This page shows a list of existing servers. + +. Click *Create new MCP Server*. In *Metadata* add: ++ +* *Display Name*: A human-friendly name such as `event-data-generator`. This name is shown in the Redpanda Cloud Console. It is not the name of the MCP server itself. +* *Description*: Explain what the server does. For example, `Generates fake user event data and publishes it to Redpanda topics`. +* *Tags*: Add key/value tags such as `owner=platform` or `env=demo`. +* *Resources*: Choose a size (XSmall / Small / Medium / Large / XLarge). Larger sizes allow more concurrent requests and faster processing, but cost more. You can change this later. + +. Click *Next* to define tools. + +=== Add tools + +Tools define the actions your MCP server can perform. In this example, you create two tools: one for generating user event data and another for publishing that data to Redpanda. + +. From the *Template* dropdown, select *Generate Input*. ++ +The template populates the configuration with YAML for the tool definition. + +. Click *Add Tool* to create a second tool. + +. From the *Template* dropdown, select *Redpanda Output*. ++ +The template populates the configuration for publishing to Redpanda and a section for adding the required secrets is displayed. + +. Enter the values for the `mcp` user's credentials in the *Add Required Secrets* section. + +. Click *Lint* to check the configuration. You should see no errors. + +. Click *Create MCP Server* to deploy the server. ++ +It may take a few seconds to start. The status changes from *Starting* to *Running* when it's ready. + +. Open the *MCP Inspector* tab to test the tools: ++ +* For the `generate_input` tool, click *Run Tool* to generate sample event data. +* For the `redpanda_output` tool, enter some sample event data such as `user_id=user123`, `event_type=login`, and `timestamp=2025-10-21T10:30:00Z` then click *Run Tool* to publish it to the `events` topic. + +== Connect a client + +You can connect any MCP-compatible client to your Remote MCP server. This example uses Claude Code. + +The Redpanda CLI acts as a local proxy, forwarding requests from your AI client to your own Remote MCP server running in the Redpanda Cloud cluster. + +. Log in to your Redpanda Cloud account: ++ +[,bash] +---- +rpk cloud login +---- ++ +This opens a browser window to authenticate. The token is saved locally inside your `rpk` configuration file. It is valid for 4 hours. You can refresh it by running `rpk cloud login` again. + +. Open the *Connection* tab in Redpanda Cloud to get connection details and run the `rpk` command for Claude Code. ++ +For BYOC and Dedicated clusters, use: ++ +[,bash] +---- +rpk cloud mcp proxy \ +--cluster-id \ +--mcp-server-id \ +--install --client claude-code +---- ++ +For Serverless clusters, use: ++ +[,bash] +---- +rpk cloud mcp proxy \ +--serverless-cluster-id \ +--mcp-server-id \ +--install --client claude-code +---- + +. Restart Claude Code and invoke your tool. ++ +[,bash] +---- +claude +---- + +. Ask Claude Code to use your tools. For example: ++ +* "Generate 10 user events and then publish them to the events topic." +* "Create sample login events for users user001, user002, and user003, then publish them to Redpanda." +* "Generate purchase events with metadata and publish them to the events topic." + +You should see Claude Code calling your MCP server tools to generate and publish event data. You may need to respond to prompts for permissions to call the tools. + +When complete, you can verify the events were published by consuming from the `events` topic: + +[,bash] +---- +rpk topic consume events --num 10 +---- + +== Troubleshoot + +=== MCP server not starting + +If your server is not starting or shows an error state: + +- Check the *Logs* tab for specific error messages. +- Verify your YAML syntax by clicking *Lint*. +- Verify that the `mcp` user exists and has the correct permissions. + +=== Connection issues + +If Claude Code can't connect to your server: + +- Verify you're logged in with `rpk cloud login`. +- Check that your rpk version is 25.2.5 or later: `rpk version`. +- Ensure your server status shows *Running* in Redpanda Cloud. +- Try restarting Claude Code after running the proxy command. + +=== Publishing failures + +If the publish tool returns errors: + +- Verify the `events` topic exists: ++ +```bash +rpk topic list +``` +- Check that the `mcp` user has the correct ACLs: ++ +```bash +rpk acl list +``` +- Use the MCP Inspector in Redpanda Cloud to test with different event data. +- Check the MCP server logs for authentication or authorization errors. + +== Next steps + +Write your own tools to extend the MCP server functionality. For more information, see: xref:ai-agents:mcp/remote/developer-guide.adoc[] From 9ce9c2bff8da12b731ed86c55f4640409e67fc1d Mon Sep 17 00:00:00 2001 From: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Date: Tue, 2 Dec 2025 08:39:38 +0000 Subject: [PATCH 03/20] Add spaces before line continuation characters (#466) --- modules/ROOT/pages/mcp/remote/quickstart.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/mcp/remote/quickstart.adoc b/modules/ROOT/pages/mcp/remote/quickstart.adoc index dd21317..6fe1de7 100644 --- a/modules/ROOT/pages/mcp/remote/quickstart.adoc +++ b/modules/ROOT/pages/mcp/remote/quickstart.adoc @@ -116,7 +116,7 @@ For BYOC and Dedicated clusters, use: [,bash] ---- rpk cloud mcp proxy \ ---cluster-id \ +--cluster-id \ --mcp-server-id \ --install --client claude-code ---- @@ -126,7 +126,7 @@ For Serverless clusters, use: [,bash] ---- rpk cloud mcp proxy \ ---serverless-cluster-id \ +--serverless-cluster-id \ --mcp-server-id \ --install --client claude-code ---- From abe910c60845f4f34bfdc0b15f7a975ac6550894 Mon Sep 17 00:00:00 2001 From: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:15:57 +0000 Subject: [PATCH 04/20] Doc 1846: Remote MCP GA (#472) * Remove beta labels, single-source duplicated content, and add testing * Document automatic service account creation * Add billing info for MCP * Correct MCP and serverless cluster API paths - Change MCP API paths from /v1/mcp_servers to /v1/redpanda-connect/mcp-servers - Fix serverless cluster path from /v1/serverless-clusters to /v1/serverless/clusters - Add note about Data Plane API URL availability timing (5-10 minute delay) - Add required service_account field to MCP server creation example * Split admin guide into task-based pages - Restructure admin-guide.adoc as navigation hub - Create manage-servers.adoc for lifecycle management (edit, stop, start, delete) - Create scale-resources.adoc for resource allocation and cost optimization - Create monitor-activity.adoc for OpenTelemetry traces and observability - Add Grafana Cloud integration example to monitoring documentation - Update navigation to show hierarchical structure with three child pages This improves information architecture and user experience by organizing content by specific tasks rather than mixing multiple topics in one page. * Enhance MCP server pipeline patterns documentation - Add pattern selection guide at top for quick navigation - Add 'When to use' and 'Example use cases' to all patterns - Add new pattern sections: * Data generators (generate input for testing) * Data consumers (reading from Redpanda topics) * Data transformation (Bloblang mapping examples) * AI/LLM integration (OpenAI chat completion and embeddings) - Fix deprecated kafka_franz component, use redpanda input instead - Remove unnecessary manual anchor IDs (Antora generates them automatically) - Restructure Redpanda integration section with proper hierarchy These improvements make the patterns catalog more discoverable and provide clearer guidance on when to use each pattern. * Add .env to gitignore Prevent environment files from being committed to repository. * Escape curly braces in API path parameters AsciiDoc formatting: escape curly braces in inline code blocks to prevent them from being interpreted as attribute references. * Fix anchor * Document tags and reserved tag names for Remote MCP servers * Update MCP server creation flow to match UI terminology * Convert tagging strategies to table format * Update workflow and document inline secret creation in Cloud Console * Add cross-reference to tool contract design section * Simplify heading to 'Build your MCP tool' * Add real trace examples showing tool execution and error events * Use uppercase snakecase for Grafana Cloud secret names * Simplify monitoring docs and remove unnecessary sections * Update monitoring docs with realistic trace examples and schema details - Change heading to 'OpenTelemetry traces topic' for clarity - Document auto-created Protobuf schema 'redpanda.otel_traces-value' - Update trace data structure example with realistic values (hex IDs, numeric enums) - Refine field descriptions and reference schema for details - Remove Custom dashboards and Best practices sections (too implementation-specific) * Update branch * Fix doc-tools not found error in test-mcp-examples workflow - Add npm install step to install @redpanda-data/docs-extensions-and-macros - Use --no-install flag with npx to prevent trying to download from npm - The doc-tools binary is provided by @redpanda-data/docs-extensions-and-macros * Make MCP validation failures fail the test suite - Add MCP_FAILS counter to track validation failures - Remove '|| true' that was suppressing validation failures - Increment MCP_FAILS when validate_mcp_metadata returns non-zero - Display MCP validation failures in test summary - Exit with non-zero code when MCP validations fail This ensures missing descriptions or other MCP metadata issues cause the GitHub Actions workflow to fail. * fix: Resolve ShellCheck warnings in test script Separate variable declaration from assignment in validate_mcp_metadata to avoid masking return values and resolve ShellCheck warnings. * Fix schema syntax * Remove beta * Add badge macro * Add badge macro * fix: Correct MCP API examples and secret naming - Fix update_mask to be query parameter in scale-resources.adoc - Fix SASL configuration to use array format in pipeline-patterns.adoc - Update secret references to use uppercase snakecase (OPENAI_API_KEY) - All changes follow OpenAPI spec and documented conventions * Add warning about redpanda.otel_traces topic management - Document automatic recreation of topic and schema if deleted - Warn that deleting topic permanently deletes all trace data - Clarify that users should not produce to this system-managed topic * Document redpanda.otel_traces topic billing - Clarify that Serverless clusters are not billed for traces topic usage - Note that Dedicated/BYOC clusters follow standard billing for traces * Add 'Outputs with processors' pattern for Remote MCP - Create reusable example showing output with LLM processor - Address customer confusion about combining processors with outputs - Clarify that outputs CAN have processors, but processor tools CANNOT have outputs * Clarify how to identify MCP tools in shared traces topic - Explain that all MCP servers write to the same redpanda.otel_traces topic - Document how to identify which tool by instrumentationScope and name fields - Clarify rpcn-mcp vs benthos naming for parent and child spans - Help customers filter traces in multi-server environments * Add trace topic configuration and lifecycle details * Minor fixes * Use 'MCP server' terminology consistently across MCP remote docs * Fix remaining 'Remote MCP server' instances to use 'MCP server' * Remove 'Remote MCP' from xref link text and section headings * Clarify terms * Apply suggestions from code review Co-authored-by: Michele Cyran * Formatting * Fix tests to use mcp-server lint * Cleanup * Use verbose linting and check for output since Connect does not exit with error code 1 * Fix linter * Fix MCP trace docs: clarify 100% sampling, remove unsupported exports Remove Grafana and Datadog export instructions since one-span-per-topic format is incompatible with batch-based platform requirements. * Update monitor-activity.adoc * Update modules/ai-agents/pages/mcp/remote/monitor-activity.adoc * Update developer-guide.adoc * apply suggestions * apply suggestions --------- Co-authored-by: Michele Cyran --- .../redpanda_output_with_processors.yaml | 19 ++ modules/ROOT/examples/test-mcp-examples.sh | 157 +++++++++ modules/ROOT/examples/testing.adoc | 294 +++++++++++++++++ modules/ROOT/pages/index.adoc | 3 +- .../ROOT/pages/mcp/local/configuration.adoc | 6 +- modules/ROOT/pages/mcp/local/quickstart.adoc | 6 +- modules/ROOT/pages/mcp/overview.adoc | 5 +- .../ROOT/pages/mcp/remote/admin-guide.adoc | 72 ++-- .../pages/mcp/remote/developer-guide.adoc | 106 ++++-- modules/ROOT/pages/mcp/remote/index.adoc | 1 - .../ROOT/pages/mcp/remote/manage-servers.adoc | 154 +++++++++ .../pages/mcp/remote/monitor-activity.adoc | 296 +++++++++++++++++ modules/ROOT/pages/mcp/remote/overview.adoc | 83 +---- .../pages/mcp/remote/pipeline-patterns.adoc | 307 +++++++----------- modules/ROOT/pages/mcp/remote/quickstart.adoc | 256 ++++++++++++--- .../pages/mcp/remote/scale-resources.adoc | 62 ++++ 16 files changed, 1453 insertions(+), 374 deletions(-) create mode 100644 modules/ROOT/examples/redpanda_output_with_processors.yaml create mode 100755 modules/ROOT/examples/test-mcp-examples.sh create mode 100644 modules/ROOT/examples/testing.adoc create mode 100644 modules/ROOT/pages/mcp/remote/manage-servers.adoc create mode 100644 modules/ROOT/pages/mcp/remote/monitor-activity.adoc create mode 100644 modules/ROOT/pages/mcp/remote/scale-resources.adoc diff --git a/modules/ROOT/examples/redpanda_output_with_processors.yaml b/modules/ROOT/examples/redpanda_output_with_processors.yaml new file mode 100644 index 0000000..d58997a --- /dev/null +++ b/modules/ROOT/examples/redpanda_output_with_processors.yaml @@ -0,0 +1,19 @@ +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topic: "llm-responses" + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" + +processors: + - openai_chat_completion: + api_key: "${secrets.OPENAI_API_KEY}" + model: "gpt-4" + prompt: ${! json("question") } + - mapping: | + root.question = this.question + root.answer = this.content + root.timestamp = now().ts_format("2006-01-02T15:04:05Z07:00") diff --git a/modules/ROOT/examples/test-mcp-examples.sh b/modules/ROOT/examples/test-mcp-examples.sh new file mode 100755 index 0000000..595fceb --- /dev/null +++ b/modules/ROOT/examples/test-mcp-examples.sh @@ -0,0 +1,157 @@ +#!/usr/bin/env bash +# +# Automated testing script for Redpanda Connect MCP examples +# +# Usage: +# ./test-mcp-examples.sh + +set -euo pipefail + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' + +# Counters +TOTAL=0 +SKIPPED=0 +MCP_FAILS=0 + +echo "🧪 Redpanda Connect MCP Examples Test Suite" +echo "============================================" +echo "" + +# Run MCP server lint on the directory +echo "Running rpk connect mcp-server lint..." +LINT_OUTPUT=$(rpk connect mcp-server lint --skip-env-var-check --verbose 2>&1) || { + echo -e "${RED}❌ Linting failed${NC}" + echo "" + echo "$LINT_OUTPUT" + exit 1 +} +echo -e "${GREEN}✅ Linting passed${NC}" +echo "" + +# Function to validate MCP metadata +validate_mcp_metadata() { + local file=$1 + + echo -n " Validating MCP metadata... " + + # Determine which YAML parser to use + local use_yq=true + if ! command -v yq &> /dev/null; then + use_yq=false + if ! command -v python3 &> /dev/null; then + echo -e "${RED}FAILED${NC} (neither yq nor python3 available)" + MCP_FAILS=$((MCP_FAILS + 1)) + return 1 + fi + fi + + # Check if .meta.mcp exists + local mcp_exists + if $use_yq; then + mcp_exists=$(yq eval '.meta.mcp' "$file" 2>/dev/null) + else + mcp_exists=$(python3 -c " +import yaml +try: + with open('$file') as f: + doc = yaml.safe_load(f) + meta = doc.get('meta', {}) if doc else {} + mcp = meta.get('mcp') + print('null' if mcp is None else 'exists') +except: + print('null') +" 2>/dev/null) + fi + + if [[ "$mcp_exists" == "null" || -z "$mcp_exists" ]]; then + echo -e "${YELLOW}SKIPPED${NC} (no MCP metadata)" + SKIPPED=$((SKIPPED + 1)) + return 0 + fi + + # Read .meta.mcp.enabled + local enabled + if $use_yq; then + enabled=$(yq eval '.meta.mcp.enabled' "$file" 2>/dev/null) + else + enabled=$(python3 -c " +import yaml +try: + with open('$file') as f: + doc = yaml.safe_load(f) + enabled = doc.get('meta', {}).get('mcp', {}).get('enabled') + print('null' if enabled is None else str(enabled).lower()) +except: + print('null') +" 2>/dev/null) + fi + + if [[ "$enabled" != "true" ]]; then + echo -e "${YELLOW}WARNING${NC} (mcp.enabled not set to true)" + return 0 + fi + + # Read .meta.mcp.description + local description + if $use_yq; then + description=$(yq eval '.meta.mcp.description' "$file" 2>/dev/null) + else + description=$(python3 -c " +import yaml +try: + with open('$file') as f: + doc = yaml.safe_load(f) + desc = doc.get('meta', {}).get('mcp', {}).get('description') + print('null' if desc is None or desc == '' else str(desc)) +except: + print('null') +" 2>/dev/null) + fi + + if [[ "$description" == "null" || -z "$description" ]]; then + echo -e "${RED}FAILED${NC} (missing description)" + MCP_FAILS=$((MCP_FAILS + 1)) + return 1 + fi + + echo -e "${GREEN}PASSED${NC}" + return 0 +} + +# Validate MCP metadata for each file +for file in *.yaml; do + if [[ -f "$file" ]]; then + TOTAL=$((TOTAL + 1)) + echo "" + echo -e "${BLUE}📄 Validating: $file${NC}" + validate_mcp_metadata "$file" + fi +done + +# Summary +echo "" +echo "============================================" +echo "📊 Test Summary" +echo "============================================" +echo "Total configs tested: $TOTAL" +if [[ $MCP_FAILS -gt 0 ]]; then + echo -e "MCP validation failures: ${RED}$MCP_FAILS${NC}" +fi +if [[ $SKIPPED -gt 0 ]]; then + echo -e "Skipped: ${YELLOW}$SKIPPED${NC}" +fi +echo "" + +if [[ $MCP_FAILS -gt 0 ]]; then + echo -e "${RED}❌ Some tests failed${NC}" + exit 1 +else + echo -e "${GREEN}✅ All tests passed!${NC}" + exit 0 +fi diff --git a/modules/ROOT/examples/testing.adoc b/modules/ROOT/examples/testing.adoc new file mode 100644 index 0000000..812400b --- /dev/null +++ b/modules/ROOT/examples/testing.adoc @@ -0,0 +1,294 @@ += Test MCP Examples +:description: Automated testing strategies for Redpanda Cloud MCP server examples. + +This document describes the automated testing strategies for Redpanda Cloud MCP server examples. + +All MCP examples are automatically tested to ensure: + +. YAML syntax and structure are correct +. MCP metadata is complete and valid +. Component schemas match Redpanda Connect specifications +. Secrets syntax uses Cloud Secrets Store format (`${secrets.X}`) + +== Testing approaches + +=== Configuration linting + +Validate MCP tool configurations using `rpk connect lint`: + +[,bash] +---- +# Lint a single MCP tool +rpk connect lint weather_service.yaml + +# Lint all examples +rpk connect lint *.yaml + +# Lint with environment variable checking skipped (recommended for MCP) +rpk connect lint --skip-env-var-check *.yaml +---- + +This checks for common issues such as: + +* YAML syntax errors +* Unknown component types +* Invalid field names +* Type mismatches +* Missing required fields + +=== MCP metadata validation + +The test script validates MCP-specific metadata for all tool examples: + +[,bash] +---- +# Run all tests (includes linting + MCP validation) +./test-mcp-examples.sh + +# Test specific files +./test-mcp-examples.sh weather_*.yaml +---- + +MCP metadata validation checks: + +* Presence of `meta.mcp` section +* `enabled: true` is set +* `description` field exists and is non-empty +* `properties` are properly structured (if present) + +=== Unit testing limitations + +[IMPORTANT] +==== +MCP tool examples are standalone component definitions (e.g., `label:`, `processors:`, `meta:`), not full pipelines with `input:`, `pipeline:`, `output:` sections. This means they cannot use inline `tests:` sections like cookbook examples do. + +The `rpk connect test` command requires full pipeline structure with paths like `/pipeline/processors/0`, which don't exist in MCP tool definitions. +==== + +For testing MCP tools: + +* **Linting is the primary validation** - ensures syntax and schema correctness +* **MCP metadata validation** - verifies tool has proper description and properties +* **Manual testing** - uses the Cloud Console MCP Server interface to test tools end-to-end + +== MCP tool structure + +MCP tools are structured as standalone components: + +[,yaml] +---- +label: weather-service +processors: + - label: fetch_weather_data + http: + url: 'https://wttr.in/${! @city }?format=j1' + verb: GET + + - label: format_response + mutation: | + root = { + "city": @city, + "temperature": this.current_condition.0.temp_C.number() + } + +meta: + mcp: + enabled: true + description: "Get current weather conditions for any city worldwide" + properties: + - name: city + type: string + description: "Name of the city" + required: true +---- + +== Test script usage + +The `test-mcp-examples.sh` script provides automated validation: + +[,bash] +---- +# Test all examples +./test-mcp-examples.sh + +# Test specific files +./test-mcp-examples.sh weather_*.yaml +./test-mcp-examples.sh customer_*.yaml +---- + +The script provides color-coded output: + +[,console] +---- +🧪 Redpanda Connect MCP Examples Test Suite (Cloud) +==================================================== + +📄 Testing: weather_service.yaml + Linting weather_service.yaml... PASSED + Validating MCP metadata... PASSED + +==================================================== +📊 Test Summary +==================================================== +Total configs tested: 10 +Passed: 10 +Failed: 0 + +✅ All tests passed! +---- + +== Manual end-to-end testing + +For comprehensive validation, test MCP tools using the Cloud Console: + +. Navigate to your Cloud cluster's MCP Server configuration +. Add or update your MCP tool configuration +. Use the Cloud Console's AI chat interface to invoke the tool +. Verify the tool executes correctly and returns expected results + +This validates: + +* Tool loads correctly in the MCP server +* MCP metadata is properly exposed to AI clients +* Tool executes with provided parameters +* Responses are formatted correctly +* Secrets are properly resolved from Cloud Secrets Store + +== GitHub Actions CI/CD + +Automated tests run on every push and pull request using GitHub Actions. + +The workflow tests all examples whenever: + +* Any `.yaml` file in `modules/ai-agents/examples/` changes +* The test script itself is modified + +See `.github/workflows/test-mcp-examples.yaml` for the complete workflow. + +== Best practices + +=== Use descriptive tool names + +[,yaml] +---- +# Good +label: fetch-customer-orders + +# Bad +label: tool1 +---- + +=== Write clear MCP descriptions + +[,yaml] +---- +# Good +meta: + mcp: + description: "Fetch a customer's order history and calculate spending metrics over the last 30 days" + +# Bad +meta: + mcp: + description: "Get orders" +---- + +=== Document all properties + +[,yaml] +---- +# Good +properties: + - name: customer_id + type: string + description: "Unique identifier for the customer" + required: true + - name: days + type: number + description: "Number of days to look back (default: 30)" + required: false + +# Bad +properties: + - name: id + type: string + required: true +---- + +=== Use Cloud Secrets Store for sensitive data + +[,yaml] +---- +# Cloud format - uses Secrets Store +sql_select: + driver: "postgres" + dsn: "${secrets.POSTGRES_DSN}" + table: "customers" +---- + +=== Tag your examples + +[,yaml] +---- +meta: + tags: [ example, weather, api ] # Helps organize and filter + mcp: + enabled: true +---- + +== Adding new examples + +When adding new MCP tool examples: + +. **Create your YAML file** in `modules/ai-agents/examples/`: ++ +[,bash] +---- +cd modules/ai-agents/examples +touch my-new-tool.yaml +---- + +. **Include complete MCP metadata:** ++ +[,yaml] +---- +label: my-new-tool +processors: + # Your processor configuration + +meta: + mcp: + enabled: true + description: "Clear, task-oriented description" + properties: + - name: param_name + type: string + description: "Parameter purpose and constraints" + required: true +---- + +. **Lint your example:** ++ +[,bash] +---- +rpk connect lint --skip-env-var-check my-new-tool.yaml +---- + +. **Run automated tests:** ++ +[,bash] +---- +./test-mcp-examples.sh my-new-tool.yaml +---- + +. **Test in Cloud Console (recommended):** ++ +Deploy your MCP server configuration and test the tool through the Cloud Console AI interface. + +. **Commit your example:** ++ +[,bash] +---- +git add modules/ai-agents/examples/my-new-tool.yaml +git commit -m "Add my-new-tool MCP example" +---- diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 5c32a43..7311292 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -1,5 +1,4 @@ = AI Agents in Redpanda Cloud -:page-beta: true :description: Learn about AI agents and the tools Redpanda Cloud provides for building them. :page-layout: index :page-aliases: develop:agents/about.adoc, develop:ai-agents/about.adoc @@ -8,6 +7,6 @@ AI agents are configurable assistants that autonomously perform specialist tasks Redpanda Cloud provides two complementary Model Context Protocol (MCP) options to help you build AI agents: -**Local MCP server for Redpanda Cloud**: A built-in server that gives your AI assistant direct access to your Redpanda Cloud account and clusters. This runs locally on your computer and lets you quickly perform operations like creating clusters, listing topics, and reading messages. +**Local MCP server for Redpanda Cloud** badge::[label=beta, tooltip={page-beta-text}]: A built-in server that gives your AI assistant direct access to your Redpanda Cloud account and clusters. This runs locally on your computer and lets you quickly perform operations like creating clusters, listing topics, and reading messages. **Remote MCP (managed)**: Your own custom MCP servers built with Redpanda Connect pipelines and hosted inside your Redpanda Cloud cluster. These let you create reusable tools for your team that integrate with knowledge bases, APIs, and web content while running close to your data. \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/local/configuration.adoc b/modules/ROOT/pages/mcp/local/configuration.adoc index 7b4453f..4b3c4ce 100644 --- a/modules/ROOT/pages/mcp/local/configuration.adoc +++ b/modules/ROOT/pages/mcp/local/configuration.adoc @@ -6,9 +6,9 @@ This page explains how to configure the local MCP server for Redpanda Cloud, inc == Prerequisites -* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer] -* Access to a Redpanda Cloud account -* Supported AI client (Claude, Claude Code, or other MCP-compatible client) +* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer]. +* Access to a Redpanda Cloud account. +* Supported AI client (Claude, Claude Code, or other MCP-compatible client). == Endpoint availability diff --git a/modules/ROOT/pages/mcp/local/quickstart.adoc b/modules/ROOT/pages/mcp/local/quickstart.adoc index 6cf7ee1..cf5f7be 100644 --- a/modules/ROOT/pages/mcp/local/quickstart.adoc +++ b/modules/ROOT/pages/mcp/local/quickstart.adoc @@ -8,9 +8,9 @@ If you're trying to deploy your own MCP server as a managed service inside your == Prerequisites -* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer] -* Access to a Redpanda Cloud account -* link:https://support.anthropic.com/en/articles/10065433-installing-claude-desktop[Claude] or link:https://docs.anthropic.com/en/docs/claude-code/setup[Claude Code] installed +* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer]. +* Access to a Redpanda Cloud account. +* link:https://support.anthropic.com/en/articles/10065433-installing-claude-desktop[Claude] or link:https://docs.anthropic.com/en/docs/claude-code/setup[Claude Code] installed. + TIP: For other clients, see xref:ai-agents:mcp/local/configuration.adoc[]. diff --git a/modules/ROOT/pages/mcp/overview.adoc b/modules/ROOT/pages/mcp/overview.adoc index 6024bfe..05bcd3f 100644 --- a/modules/ROOT/pages/mcp/overview.adoc +++ b/modules/ROOT/pages/mcp/overview.adoc @@ -1,9 +1,8 @@ = MCP in Redpanda Cloud -:page-beta: true :description: Learn about Model Context Protocol (MCP) in Redpanda Cloud, including the two complementary options: Redpanda Cloud MCP Server and Remote MCP (managed). -**Model Context Protocol (MCP)** is a way to give AI assistants like Claude access to tools and data they wouldn't normally have. Instead of just chatting with your AI assistant, you can ask it to perform real tasks on your behalf. +Model Context Protocol (MCP) is a way to give AI assistants like Claude access to tools and data they wouldn't normally have. Instead of just chatting with your AI assistant, you can ask it to perform real tasks on your behalf. == Why use MCP with Redpanda Cloud? @@ -15,7 +14,7 @@ In Redpanda Cloud, there are two complementary options to use MCP: [cols="1s,2a,2a"] |=== -| | Redpanda Cloud MCP Server | Remote MCP +| |Redpanda Cloud MCP Server badge::[label=beta, tooltip={page-beta-text}] | Remote MCP | Description | A server that gives your AI assistant access to your Redpanda Cloud account and clusters. diff --git a/modules/ROOT/pages/mcp/remote/admin-guide.adoc b/modules/ROOT/pages/mcp/remote/admin-guide.adoc index ec09bc7..8df0ea4 100644 --- a/modules/ROOT/pages/mcp/remote/admin-guide.adoc +++ b/modules/ROOT/pages/mcp/remote/admin-guide.adoc @@ -1,56 +1,56 @@ -= Manage Remote MCP Servers -:page-beta: true -:description: Learn how to manage, edit, stop, resume, and delete Remote MCP servers in Redpanda Cloud. += Remote MCP Server Administration Guide +:description: Overview of administrative tasks for managing MCP servers in Redpanda Cloud. - -This guide is for Redpanda Cloud administrators who need to manage the lifecycle of Remote MCP servers. +This guide provides an overview of administrative tasks for MCP servers. Use these resources to manage your MCP servers throughout their lifecycle, from creation to deletion. == Prerequisites You must have an existing MCP server. If you do not have one, see xref:ai-agents:mcp/remote/quickstart.adoc[]. -== Edit an existing MCP server +== Server lifecycle management -You can update the configuration, resources, or metadata of a Remote MCP server at any time. +Manage the basic lifecycle of your MCP servers, including editing configurations, pausing to save costs, and deleting. -. In the Redpanda Cloud Console, navigate to *Remote MCP*. -. Find the MCP server you want to edit and click its name. -. Click *Edit configuration*. -. Make your changes. -. Click *Save* to apply changes. +See xref:ai-agents:mcp/remote/manage-servers.adoc[]. -[NOTE] -==== -Editing a running MCP server may cause a brief interruption. Review changes before deploying to production. -==== +== Resource scaling -== Stop (pause) an MCP server +Adjust your MCP server's compute resources to match workload demands and optimize costs. Resource allocation directly affects your billing charges. -Pausing a server stops all tool execution and releases compute resources, but preserves configuration and state. +See xref:ai-agents:mcp/remote/scale-resources.adoc[]. -. In the *Remote MCP* list, find the server you want to stop. -. Click the three dots and select *Stop*. -. Confirm the action. +== Monitoring and observability -[NOTE] -==== -While stopped, the server does not respond to MCP requests. Start it again to restore service. -==== +Monitor your MCP server's activity using OpenTelemetry traces. Track tool invocations, measure performance, debug failures, and integrate with observability platforms. + +See xref:ai-agents:mcp/remote/monitor-activity.adoc[]. + +== Data Plane API -== Resume a stopped MCP server +All administrative tasks can be performed through both the Redpanda Cloud Console UI and the Data Plane API. The Data Plane API is useful for: -. In the *Remote MCP* list, find the stopped server. -. Click the three dots and select *Start*. -. Wait for the status to show *Running* before reconnecting clients. +* Automation and Infrastructure as Code (IaC) +* CI/CD pipeline integration +* Custom tooling and scripts +* Programmatic management at scale -== Delete an MCP server +To use the Data Plane API: -Deleting a server is permanent and cannot be undone. +. link:/api/doc/cloud-dataplane/topic/topic-quickstart[Authenticate and get the base URL] for the Data Plane API. +. Use the appropriate endpoint for your task: ++ +* link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_updatemcpserver[`PATCH /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`]: Update configuration +* link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_stopmcpserver[`POST /v1/redpanda-connect/mcp-servers/\{mcp_server_id}:stop`]: Stop server +* link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_startmcpserver[`POST /v1/redpanda-connect/mcp-servers/\{mcp_server_id}:start`]: Start server +* link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_deletemcpserver[`DELETE /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`]: Delete server -. In the *Remote MCP* list, find the server to delete. -. Click the three dots and select *Delete*. -. Confirm the deletion when prompted. +[NOTE] +==== +Access tokens expire after 1 hour. To refresh, make the authentication request again with your service account credentials. The same token works for both Control Plane and Data Plane API requests. +==== -== API and automation +== Next steps -All of these actions can also be performed using the Redpanda Cloud API version v1alpha3. See the link:https://github.com/redpanda-data/console/blob/master/proto/gen/openapi/openapi.v1alpha3.yaml[OpenAPI specification file] for endpoints to manage MCP servers. \ No newline at end of file +* xref:ai-agents:mcp/remote/developer-guide.adoc[Build custom tools] for your specific use cases. +* xref:develop:connect/configuration/secret-management.adoc[Manage secrets] used by MCP server tools. +* xref:billing:billing.adoc#remote-mcp-billing-metrics[Understand MCP billing] to optimize costs. diff --git a/modules/ROOT/pages/mcp/remote/developer-guide.adoc b/modules/ROOT/pages/mcp/remote/developer-guide.adoc index 5fc7aff..0db1514 100644 --- a/modules/ROOT/pages/mcp/remote/developer-guide.adoc +++ b/modules/ROOT/pages/mcp/remote/developer-guide.adoc @@ -1,16 +1,15 @@ = Build Remote MCP Servers in Redpanda Cloud -:page-beta: true -:description: Learn how to write and deploy Remote MCP servers in Redpanda Cloud. This guide covers concepts, patterns, and best practices. +:description: Learn how to write and deploy MCP servers in Redpanda Cloud. This guide covers concepts, patterns, and best practices. -This guide teaches you how to build xref:ai-agents:mcp/remote/overview.adoc[Remote MCP servers] that are managed in Redpanda Cloud. Remote MCP servers run inside your Redpanda Cloud cluster and expose tools that AI clients can call using MCP. +This guide teaches you how to build xref:ai-agents:mcp/remote/overview.adoc[MCP servers] that are managed in Redpanda Cloud. MCP servers run inside your Redpanda Cloud cluster and expose tools that AI clients can call using MCP. == Prerequisites -* Access to a Redpanda Cloud cluster -* Ability to manage the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] entries -* At least version 25.2.5 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer] -* (Optional) An AI assistant like Claude or Claude Code for testing +* Access to a Redpanda Cloud cluster. +* Ability to manage the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] entries. +* At least version 25.2.5 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer]. +* (Optional) An AI assistant like Claude or Claude Code for testing. TIP: For a quickstart, see xref:ai-agents:mcp/remote/quickstart.adoc[]. @@ -20,7 +19,7 @@ You should also be familiar with YAML, HTTP APIs, and basic event-stream process Remote MCP server:: A managed, hosted MCP service deployed to your cluster. You write each tool's logic using Redpanda Connect configuration and annotate them with MCP metadata so clients can discover and invoke them. -Redpanda Connect:: A framework for building event-driven data pipelines. Tools inside your Remote MCP servers are implemented as Redpanda Connect configurations that run inside your Redpanda Cloud cluster. +Redpanda Connect:: A framework for building event-driven data pipelines. Tools inside your MCP servers are implemented as Redpanda Connect configurations that run inside your Redpanda Cloud cluster. Tool:: A single request/response operation exposed to MCP. @@ -28,26 +27,72 @@ Secrets:: Credentials and tokens that you want to use in your tools. These value == Development workflow -. <>: Select a Redpanda Cloud cluster to host your MCP server. +. <>: Navigate to Remote MCP in Redpanda Cloud Console, create a new server, and configure server metadata (display name, description, tags, resources, service account). . <>: Annotate MCP metadata with `meta.mcp.enabled: true`, provide a concise description, and declare parameters. . <>: Create secrets in the Secrets Store for any credentials. Never inline secrets in YAML. -. <>: Build the logic for your MCP tool using Redpanda Connect configurations. +. <>: Build your MCP tool using Redpanda Connect components. . <>: Validate your configuration, catch schema errors, then deploy and test with the MCP Inspector. . <>: Install a proxy entry with `rpk cloud mcp proxy` in your AI assistant MCP configuration, or connect with your own MCP client. . <>: Add temporary `log` processors, adjust timeouts/retries, and right-size resources. [[access]] -== Access MCP Servers in Redpanda Cloud +== Create MCP server and configure metadata . Log into your link:https://cloud.redpanda.com[Redpanda Cloud Console^]. . Select your cluster from the cluster list. . In the left sidebar, navigate to *Remote MCP*. . If this is your first MCP server, you'll see an empty list with a *Create MCP Server* button. -. Fill in the required fields: +. Click *Create MCP Server* and configure the *Server Metadata*: + -* *Name*: A unique identifier for your server (for example `weather-tool`, `customer-lookup`). +* *Display Name*: A human-friendly name for your server (for example `weather-tool`, `customer-lookup`). * *Description*: Brief description of what your server does. -* *Configuration*: This is where to put your YAML configuration to define an MCP tool. +* *Tags*: Key-value pairs for organizing and categorizing your MCP servers. See <> for details. +* *Resources*: Choose the compute resources (XSmall through XLarge) based on your expected workload. +* *Service Account*: A service account name is pre-filled and will be created automatically. ++ +. Click *Next* to define your tools using YAML configuration. See <> to design your tool contract. + +[[tags]] +== Organize servers with tags + +Tags are key-value metadata that help you organize, categorize, and filter your MCP servers. Use tags to track ownership, environment, cost allocation, or any other organizational dimension relevant to your team. + +=== Common tagging strategies + +[cols="1,2,2"] +|=== +| Strategy | Description | Examples + +| Ownership +| Track which team or individual owns the MCP server. +| `owner=platform-team`, `team=data-engineering` + +| Environment +| Identify the deployment environment. +| `env=production`, `env=staging`, `env=development` + +| Cost allocation +| Allocate costs to specific departments or projects. +| `cost-center=marketing`, `project=analytics` + +| Purpose +| Describe the use case or data domain. +| `purpose=customer-data`, `use-case=real-time-alerts` +|=== + +=== Reserved tag names + +The following tag names are reserved and cannot be used. These tags are system-managed: + +* `service_account_id`: Automatically assigned to track the service account associated with the MCP server. +* `secret_id`: Automatically assigned to track the service account secret used by the MCP server. + +=== Best practices + +* Use consistent naming conventions across your organization (for example, always lowercase with hyphens or underscores). +* Document your tagging strategy so all team members use tags consistently. +* Use tags for filtering and searching MCP servers in the Cloud Console and API. +* Review and update tags periodically to keep them accurate as servers evolve. [[contract]] == Design the tool contract and MCP metadata @@ -97,7 +142,20 @@ After defining your tool contract, implement the logic to handle input validatio [[provision-secrets]] == Provision secrets -All credentials and sensitive values must be stored in the Redpanda Cloud xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. Follow these best practices: +All credentials and sensitive values must be stored in the Redpanda Cloud xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. + +=== Creating secrets in the Cloud Console + +When you reference secrets in your tool's YAML configuration using `${secrets.SECRET_NAME}`, the Cloud Console automatically detects these references and provides an interface next to the configuration editor where you can: + +. Enter the secret values directly +. Create the secrets in the Secrets Store with a single click + +This inline secret creation workflow simplifies the development process by letting you configure secrets as you build your tools, without navigating away to the Secrets Store. + +Alternatively, you can manually create and manage secrets directly in the xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. + +=== Best practices - Reference secrets as `${secrets.NAME}` in your YAML configuration. - Never commit secrets to Git or reference them directly inline in configuration files. @@ -108,7 +166,7 @@ All credentials and sensitive values must be stored in the Redpanda Cloud xref:d See an example of using secrets in xref:ai-agents:mcp/remote/pipeline-patterns.adoc#secrets[MCP patterns]. [[pipeline-patterns]] -== Implement the logic of your MCP tool +== Build your MCP tool Use Redpanda Connect components to implement the logic of your MCP tool. Here are some best practices: @@ -277,7 +335,7 @@ See xref:ai-agents:mcp/remote/admin-guide.adoc[]. [[test]] == Authenticate and connect your MCP client -To connect your local MCP client to your Remote MCP server: +To connect your local MCP client to your MCP server: . First, authenticate to Redpanda Cloud: + @@ -311,15 +369,15 @@ rpk cloud mcp proxy \ ---- + -- -<1> The target Redpanda Cloud cluster ID where your Remote MCP server is hosted. -<2> The unique ID of your deployed Remote MCP server +<1> The target Redpanda Cloud cluster ID where your MCP server is hosted. +<2> The unique ID of your deployed MCP server -- + TIP: You can find this command and the IDs in the *Connection* tab of your MCP server in Redpanda Cloud. - -The proxy acts as a bridge between your local client and the Remote MCP server running in your cluster. It: - -* Connects to your Remote MCP server using your authentication token ++ +The proxy acts as a bridge between your local client and the MCP server running in your cluster. It: ++ +* Connects to your MCP server using your authentication token * Discovers and registers all tools from the Remote server locally * Proxies MCP requests from your client to the Remote server * Handles authentication by injecting your token into each request @@ -330,7 +388,7 @@ The proxy acts as a bridge between your local client and the Remote MCP server r [NOTE] ==== -You can implement the auth workflow directly against Redpanda Cloud APIs and skip the use of `rpk`. The proxy is a convenience, not a requirement of Remote MCP. For code examples, see the *Connection* tab in your MCP server in Redpanda Cloud. +You can implement the auth workflow directly against Redpanda Cloud APIs and skip the use of `rpk`. The proxy is a convenience, not a requirement for MCP servers. For code examples, see the *Connection* tab in your MCP server in Redpanda Cloud. ==== :note-caption: Note diff --git a/modules/ROOT/pages/mcp/remote/index.adoc b/modules/ROOT/pages/mcp/remote/index.adoc index 43fa14d..39771ad 100644 --- a/modules/ROOT/pages/mcp/remote/index.adoc +++ b/modules/ROOT/pages/mcp/remote/index.adoc @@ -1,4 +1,3 @@ = Remote MCP Servers for Redpanda Cloud -:page-beta: true :description: Enable AI assistants to directly interact with your Redpanda Cloud clusters and streaming data. :page-layout: index diff --git a/modules/ROOT/pages/mcp/remote/manage-servers.adoc b/modules/ROOT/pages/mcp/remote/manage-servers.adoc new file mode 100644 index 0000000..e0aeb6a --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/manage-servers.adoc @@ -0,0 +1,154 @@ += Manage Remote MCP Servers +:description: Learn how to edit, stop, start, and delete MCP servers in Redpanda Cloud. + +This guide shows you how to manage the lifecycle of MCP servers, including editing configurations, pausing servers to save costs, and permanent deletion. + +== Prerequisites + +You must have an existing MCP server. If you do not have one, see xref:ai-agents:mcp/remote/quickstart.adoc[]. + +== Edit an MCP server + +You can update the configuration, resources, or metadata of an MCP server at any time. + +[tabs] +===== +Cloud UI:: ++ +-- +. In the Redpanda Cloud Console, navigate to *Remote MCP*. +. Find the MCP server you want to edit and click its name. +. Click *Edit configuration*. +. Make your changes. +. Click *Save* to apply changes. + +[NOTE] +==== +Editing a running MCP server may cause a brief interruption. Review changes before deploying to production. +==== +-- + +Data Plane API:: ++ +-- +. link:/api/doc/cloud-dataplane/topic/topic-quickstart[Authenticate and get the base URL] for the Data Plane API. +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_getmcpserver[`GET /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`] to retrieve the current configuration. +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_updatemcpserver[`PATCH /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`] to update the configuration: ++ +[,bash] +---- +curl -X PATCH "https:///v1/redpanda-connect/mcp-servers/?update_mask=display_name,description" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "mcp_server": { + "display_name": "updated-name", + "description": "Updated description" + } + }' +---- +-- +===== + +== Stop an MCP server + +Stopping a server pauses all tool execution and releases compute resources, but preserves configuration and state. This is useful for temporarily disabling a server to save costs while retaining the ability to restart it later. + +[tabs] +===== +Cloud UI:: ++ +-- +. In the Redpanda Cloud Console, navigate to *Remote MCP*. +. Find the server you want to stop. +. Click the three dots and select *Stop*. +. Confirm the action. +-- + +Data Plane API:: ++ +-- +. link:/api/doc/cloud-dataplane/topic/topic-quickstart[Authenticate and get the base URL] for the Data Plane API. +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_stopmcpserver[`POST /v1/redpanda-connect/mcp-servers/\{mcp_server_id}:stop`]: ++ +[,bash] +---- +curl -X POST "https:///v1/redpanda-connect/mcp-servers/:stop" \ + -H "Authorization: Bearer " +---- +-- +===== + + +While stopped, the server does not respond to MCP requests. Start it again to restore service. + +== Start a stopped MCP server + +Resume a stopped server to restore its functionality. + +[tabs] +===== +Cloud UI:: ++ +-- +. In the Redpanda Cloud Console, navigate to *Remote MCP*. +. Find the stopped server. +. Click the three dots and select *Start*. +. Wait for the status to show *Running* before reconnecting clients. +-- + +Data Plane API:: ++ +-- +. link:/api/doc/cloud-dataplane/topic/topic-quickstart[Authenticate and get the base URL] for the Data Plane API. +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_startmcpserver[`POST /v1/redpanda-connect/mcp-servers/\{mcp_server_id}:start`]: ++ +[,bash] +---- +curl -X POST "https:///v1/redpanda-connect/mcp-servers/:start" \ + -H "Authorization: Bearer " +---- ++ +. Wait for the status to show *Running* before reconnecting clients. +-- +===== + +== Delete an MCP server + +Deleting a server is permanent and cannot be undone. All configuration, tools, and associated resources are removed. + +[tabs] +===== +Cloud UI:: ++ +-- +. In the Redpanda Cloud Console, navigate to *Remote MCP*. +. Find the server you want to delete. +. Click the three dots and select *Delete*. +. Confirm the deletion when prompted. +-- + +Data Plane API:: ++ +-- +. link:/api/doc/cloud-dataplane/topic/topic-quickstart[Authenticate and get the base URL] for the Data Plane API. +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_deletemcpserver[`DELETE /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`]: ++ +[,bash] +---- +curl -X DELETE "https:///v1/redpanda-connect/mcp-servers/" \ + -H "Authorization: Bearer " +---- +-- +===== + +[WARNING] +==== +Deletion is immediate and permanent. Make sure you have backed up any important configuration before deleting an MCP server. +==== + +== Next steps + +* xref:ai-agents:mcp/remote/scale-resources.adoc[Scale MCP server resources] to optimize performance and costs. +* xref:ai-agents:mcp/remote/monitor-activity.adoc[Monitor MCP server activity] using OpenTelemetry traces. +* xref:ai-agents:mcp/remote/developer-guide.adoc[Build custom tools] for your specific use cases. diff --git a/modules/ROOT/pages/mcp/remote/monitor-activity.adoc b/modules/ROOT/pages/mcp/remote/monitor-activity.adoc new file mode 100644 index 0000000..fca49c3 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/monitor-activity.adoc @@ -0,0 +1,296 @@ += Monitor Remote MCP Server Activity +:description: Learn how to monitor MCP servers using OpenTelemetry traces, track tool invocations, debug failures, and integrate with observability platforms. + +Every MCP server automatically emits OpenTelemetry traces to a topic called `redpanda.otel_traces`. These traces provide detailed observability into your MCP server's operations, including tool invocations, processing times, errors, and resource usage. + +== Prerequisites + +You must have an existing MCP server. If you do not have one, see xref:ai-agents:mcp/remote/quickstart.adoc[]. + +== Execution log + +When you create an MCP server, Redpanda captures a complete execution log by recording all operations as OpenTelemetry traces with 100% sampling. This execution log is stored in the `redpanda.otel_traces` topic. + +=== Traces and spans + +OpenTelemetry traces provide a complete picture of how a request flows through your system: + +* A *trace* represents the entire lifecycle of a request (for example, a tool invocation from start to finish). +* A *span* represents a single unit of work within that trace (such as a data processing operation or an external API call). +* A trace contains one or more spans organized hierarchically, showing how operations relate to each other. + +With 100% sampling, every operation is captured, creating a complete execution log that you can use for debugging, monitoring, and performance analysis. + +=== How Redpanda stores traces + +The `redpanda.otel_traces` topic stores OpenTelemetry spans in JSON format, following the https://opentelemetry.io/docs/specs/otel/protocol/[OpenTelemetry Protocol (OTLP)^] specification. A Protobuf schema named `redpanda.otel_traces-value` is also automatically registered with the topic, enabling clients to deserialize trace data correctly. + +The `redpanda.otel_traces` topic and its schema are managed automatically by Redpanda. If you delete either the topic or the schema, they are recreated automatically. However, deleting the topic permanently deletes all trace data, and the topic comes back empty. Do not produce your own data to this topic. It is reserved for OpenTelemetry traces. + +Each span in the execution log represents a specific operation performed by your MCP server, such as: + +* Tool invocation requests +* Data processing operations +* External API calls +* Error conditions +* Performance metrics + +=== Topic configuration and lifecycle + +The `redpanda.otel_traces` topic has a predefined retention policy. Configuration changes to this topic are not supported. If you modify settings, Redpanda reverts them to the default values. + +The topic persists in your cluster even after all MCP servers are deleted, allowing you to retain historical trace data for analysis. + +You can create glossterm:ACL[,access control lists (ACLs)] to control access to the `redpanda.otel_traces` topic using standard Redpanda ACL operations. + +Trace data may contain sensitive information from your tool inputs and outputs. Consider implementing appropriate access controls and review the data in traces before sharing or exporting to external systems. + +=== Traces compared to audit logs + +OpenTelemetry traces are designed for observability and debugging, not audit logging or compliance: + +Traces provide: + +* Hierarchical view of request flow through your system (parent-child span relationships) +* Detailed timing information for performance analysis +* Ability to reconstruct execution paths and identify bottlenecks +* Insights into how operations flow through distributed systems + +Traces are not: + +* Immutable audit records for compliance purposes +* Designed for "who did what" accountability tracking + +== Consume traces from the execution log + +You can consume traces from the `redpanda.otel_traces` topic using any Kafka-compatible client or the Redpanda Console. + +[tabs] +===== +Cloud UI:: ++ +-- +. In the Redpanda Cloud Console, navigate to *Topics*. +. Select `redpanda.otel_traces`. +. Click *Messages* to view recent traces. +. Use filters to search for specific trace IDs, span names, or time ranges. +-- + +rpk:: ++ +-- +Consume the most recent traces: + +[,bash] +---- +rpk topic consume redpanda.otel_traces --offset end -n 10 +---- + +Filter for specific MCP server activity by examining the span attributes. +-- + +Data Plane API:: ++ +-- +Use the link:/api/doc/cloud-dataplane/topic/topic-quickstart[Data Plane API] to programmatically consume traces and integrate with your monitoring pipeline. +-- +===== + +== Trace data structure + +Each trace message contains an OpenTelemetry span with the following structure: + +[,json] +---- +{ + "traceId": "71cad555b35602fbb35f035d6114db54", + "spanId": "43ad6bc31a826afd", + "parentSpanId": "", + "name": "http_processor", + "kind": 1, + "startTimeUnixNano": "1765198415253280028", + "endTimeUnixNano": "1765198424660663434", + "attributes": [ + { + "key": "city_name", + "value": {"stringValue": "london"} + }, + { + "key": "result_length", + "value": {"intValue": "198"} + } + ], + "status": { + "code": 0, + "message": "" + }, + "instrumentationScope": { + "name": "rpcn-mcp" + }, + "flags": 1 +} +---- + +* `traceId`: Unique identifier for the entire trace (hex-encoded string). +* `spanId`: Unique identifier for this specific span (hex-encoded string). +* `parentSpanId`: Links child spans to parent operations (empty string if root span). +* `name`: Descriptive name of the operation (typically the tool name in the case of MCP servers). +* `kind`: Span kind as integer (see the `redpanda.otel_traces-value` schema for details). +* `startTimeUnixNano` / `endTimeUnixNano`: Timing information in nanoseconds since Unix epoch. +* `attributes`: Array of key-value pairs with contextual information about the operation. +* `status`: Operation status with `code` (0 = OK, 2 = ERROR) and optional `message`. +* `instrumentationScope`: Identifies the library or component that created the span. + +=== Identifying MCP servers and tools + +All MCP servers in a cluster write traces to the same `redpanda.otel_traces` topic. Each trace has a unique `traceId`, and you can identify which tool created the trace by examining the span fields: + +* When `instrumentationScope.name` is `rpcn-mcp`, the span represents an MCP tool invocation. +* The `name` field contains the MCP tool name (for example, `weather`, `http_processor`, `generate_input`). +* Child spans reference their parent using `parentSpanId` and share the same `traceId` + +For example, a span with `instrumentationScope.name: "rpcn-mcp"` and `name: "weather"` indicates the `weather` tool was invoked. Child spans created by Redpanda Connect components show `instrumentationScope.name: "redpanda-connect"` and represent internal processing steps. + +=== Real trace examples + +Here are actual traces from MCP tool executions showing the parent-child span relationships and detailed attributes. + +**Successful tool execution:** + +This trace shows an `http_processor` tool that fetched weather data for London. The parent span includes child spans for mutations, HTTP requests, and processing: + +[source,json] +---- +{ + "attributes": [ + { + "key": "city_name", + "value": {"stringValue": "london"} + }, + { + "key": "result_prefix", + "value": {"stringValue": "{\"city\":\"london\",\"description\":\"Partly cloudy\",\"feels_like\":12,\"humidity\":88,\"metadata\":{\"fetched_at\":\"2025-12-08T12:53:44.660Z\""} + }, + { + "key": "result_length", + "value": {"intValue": "198"} + } + ], + "endTimeUnixNano": "1765198424660663434", + "flags": 1, + "instrumentationScope": {"name": "rpcn-mcp"}, + "kind": 1, + "name": "http_processor", + "spanId": "43ad6bc31a826afd", + "startTimeUnixNano": "1765198415253280028", + "status": {"code": 0, "message": ""}, + "traceId": "71cad555b35602fbb35f035d6114db54" +} +---- + +The parent span (`http_processor`) has child spans showing the processing pipeline: + +[,json] +---- +{ + "attributes": [], + "endTimeUnixNano": "1765198424659619511", + "flags": 1, + "instrumentationScope": {"name": "redpanda-connect"}, + "kind": 1, + "name": "http", + "parentSpanId": "43ad6bc31a826afd", + "spanId": "ed45544a7d7b08d4", + "startTimeUnixNano": "1765198415253319496", + "status": {"code": 0, "message": ""}, + "traceId": "71cad555b35602fbb35f035d6114db54" +} +---- + +* The parent span (`http_processor`) includes custom attributes like `city_name` and `result_length` that help debug and monitor tool behavior. +* Child spans use the same `traceId` but different `spanId` values. +* The `parentSpanId` in child spans matches the parent's `spanId`, creating the hierarchy. +* Duration can be calculated: `(1765198424660663434 - 1765198415253280028) / 1000000 = 9407ms`. + +**Trace with error event:** + +This trace shows an HTTP request that encountered an error during execution: + +[,json] +---- +{ + "attributes": [], + "endTimeUnixNano": "1765198423080903265", + "events": [ + { + "attributes": [ + { + "key": "error", + "value": {"stringValue": "type"} + } + ], + "name": "event", + "timeUnixNano": "1765198420254169629" + } + ], + "flags": 1, + "instrumentationScope": {"name": "redpanda-connect"}, + "kind": 1, + "name": "http_request", + "parentSpanId": "43ad6bc31a826afd", + "spanId": "ba332199f3af6d7f", + "startTimeUnixNano": "1765198415253325782", + "status": {"code": 0, "message": ""}, + "traceId": "71cad555b35602fbb35f035d6114db54" +} +---- + +* The span still shows `status.code: 0` (success) overall. +* However, the `events` array contains error information with `error: type`. +* This indicates a recoverable error or warning during execution. +* The event's `timeUnixNano` shows exactly when the error occurred. + +== Common monitoring scenarios + +=== Track tool invocations + +Monitor which tools are being called and how often: + +. Consume traces from `redpanda.otel_traces`. +. Filter spans where `name` contains `tool_invocation`. +. Examine the `mcp.tool.name` attribute to see which tools are being used. +. Calculate frequency by counting spans per tool name over time windows. + +=== Measure performance + +Analyze tool execution times: + +. Find spans with `mcp.tool.name` attributes. +. Calculate duration: `(endTimeUnixNano - startTimeUnixNano) / 1000000` (milliseconds). +. Track percentiles (p50, p95, p99) to identify performance issues. +. Set alerts for durations exceeding acceptable thresholds. + +=== Debug failures + +Investigate errors and failures: + +. Filter spans where `status.code` is not `STATUS_CODE_OK`. +. Look for `STATUS_CODE_ERROR` in the status field. +. Examine `status.message` for error details. +. Use `traceId` to correlate related spans and understand the full error context. + +=== Correlate distributed operations + +Link MCP server activity to downstream effects: + +. Extract `traceId` from tool invocation spans. +. Search for the same `traceId` in other application logs or traces. +. Follow `parentSpanId` relationships to build complete operation timelines. +. Identify bottlenecks across your entire system. + +== Integration with observability platforms + +The `redpanda.otel_traces` topic stores trace data in OpenTelemetry format. Direct export to platforms like Grafana Cloud and Datadog is not supported due to format compatibility limitations. Redpanda produces one span per topic message, whereas these platforms expect traces in batch format. + +You can consume traces directly from the `redpanda.otel_traces` topic using any Kafka-compatible consumer for custom analysis and processing. + diff --git a/modules/ROOT/pages/mcp/remote/overview.adoc b/modules/ROOT/pages/mcp/remote/overview.adoc index ee5fc6d..2b66d61 100644 --- a/modules/ROOT/pages/mcp/remote/overview.adoc +++ b/modules/ROOT/pages/mcp/remote/overview.adoc @@ -1,47 +1,21 @@ = About Remote MCP Servers for Redpanda Cloud -:page-beta: true :description: Discover how AI assistants can interact with your streaming data and how to connect them to Redpanda Cloud. - -Remote MCP (Model Context Protocol) servers are managed, hosted MCP servers that you can write and run inside your Redpanda Cloud cluster. They let you expose your data, analytics, and automation pipelines as AI-consumable tools with no custom API code. MCP servers bridge your business logic to AI agents using the open MCP standard, so you can: +Remote MCP (Model Context Protocol) allows you to build and host MCP servers in your Redpanda Cloud clusters. They can expose your data, analytics, and automation pipelines as AI-consumable tools with no custom API code. MCP servers bridge your business logic to AI agents using the open MCP standard, so you can: * Make your data and workflows accessible to AI assistants and LLMs, safely and on your terms. * Accelerate automation and insight by letting AI trigger real business actions. * Control exposure so that only the tools you tag are visible to AI. -== Why use a Remote MCP server? +== Why use Remote MCP? * *Always-on and centrally managed*: No need to run a local process. Your tools live with your data, managed by Redpanda. * *Proximity to data*: Execute tools next to your cluster for lower latency and simpler networking. * *Secure by design*: Use the xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. Never hardcode secrets in your YAML configuration. * *Fast iteration*: Define tools as YAML configuration, deploy your MCP server, and your AI agents can use the new logic instantly. -== Use cases - -[cols="1s,3a"] -|=== -|Category |Example prompts - -|Operational monitoring -|* Check partition lag for customer-events topic -* Show me the top 10 producers by message volume today -* Get schema registry health status - -|Data enrichment and analysis -|* Fetch user profile data and recent orders for customer ID 12345 -* Get real-time stock prices for symbols in my portfolio topic -* Analyze sentiment of latest product reviews - -|Team productivity -|* Deploy my microservice to the staging environment -* Generate load test data for the payments service -* Create a summary dashboard of this week's incident reports - -|Business intelligence -|* What are the trending products in the last 24 hours? -* Show revenue impact of the latest feature deployment -* Get customer satisfaction scores from support tickets -|=== +// Use cases table - single-sourced from rp-connect-docs partial +include::redpanda-connect:ai-agents:partial$mcp/use-cases-table.adoc[] == How it works @@ -49,44 +23,8 @@ Remote MCP (Model Context Protocol) servers are managed, hosted MCP servers that . Deploy to your cluster. Redpanda Cloud hosts your MCP server with secure access. . Connect your AI client. AI assistants authenticate, discover available tools, and invoke them using natural language prompts. -== Example: Customer analytics tool - -Here's how you might expose a customer analytics pipeline as an MCP tool: - -[source,yaml] ----- -label: analyze_customer_orders -processors: - - label: fetch_customer_data - sql_select: - driver: "postgres" - dsn: "${secrets.POSTGRES_DSN}" - table: "orders" - where: "customer_id = ? AND created_at >= NOW() - INTERVAL '30 days'" - args_mapping: 'root = [this.customer_id]' - - - label: calculate_metrics - mutation: | - root = { - "customer_id": this.customer_id, - "total_orders": this.length(), - "total_spent": this.map_each(o -> o.total).sum(), - "avg_order_value": this.map_each(o -> o.total).mean(), - "last_order_date": this.map_each(o -> o.created_at).max() - } - -meta: - mcp: - enabled: true - description: "Analyze a customer's order history and spending patterns over the last 30 days" - properties: - - name: customer_id - type: string - description: "Customer ID to analyze" - required: true ----- - -This tool can be invoked by an AI assistant with prompts like "analyze the order history for customer ID 12345" without needing to know the underlying SQL or processing logic. +// Customer analytics example - single-sourced from rp-connect-docs partial +include::redpanda-connect:ai-agents:partial$mcp/customer-analytics-example.adoc[] == Authentication options @@ -98,13 +36,10 @@ rpk cloud login rpk cloud mcp proxy --install --client claude-code --cluster-id --mcp-server-id ---- -- **Direct connection:** If building your own AI agent, implement the MCP client flow yourself and connect directly to the Remote MCP server. - -== MCP specification support - -Remote MCP server implements the open MCP protocol for tool exposure. Only the tool concept from the MCP server specification is supported. Features such as MCP resources and prompts are not yet available. +- **Direct connection:** If building your own AI agent, implement the MCP client flow yourself and connect directly to the MCP server. -For full details, see the official MCP server specification: link:https://modelcontextprotocol.io/specification/2025-06-18/server[modelcontextprotocol.io/specification/2025-06-18/server^]. +// MCP specification support - single-sourced from rp-connect-docs partial +include::redpanda-connect:ai-agents:partial$mcp/specification-support.adoc[] == Get started diff --git a/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc b/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc index 70d589e..72b7a9d 100644 --- a/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc +++ b/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc @@ -1,17 +1,33 @@ = Patterns for Remote MCP Servers -:description: Catalog of patterns for Remote MCP server tools in Redpanda Cloud. -:page-beta: true +:description: Catalog of patterns for MCP server tools in Redpanda Cloud. -This page provides a reference catalog of patterns designed for use with Remote MCP servers in Redpanda Cloud. Use these patterns as building blocks for your own MCP tools. For step-by-step instructions on building, deploying, and testing MCP servers, see xref:ai-agents:mcp/remote/developer-guide.adoc[]. +This page provides a reference catalog of patterns designed for use with MCP servers in Redpanda Cloud. Use these patterns as building blocks for your own MCP tools. For step-by-step instructions on building, deploying, and testing MCP servers, see xref:ai-agents:mcp/remote/developer-guide.adoc[]. Each pattern is a reusable example for a common MCP tool scenario. Patterns are grouped by use case. All YAML is ready to use in your MCP server project. For a high-level overview of MCP servers, see xref:ai-agents:mcp/overview.adoc[]. +== Pattern selection guide + +Choose the right pattern for your use case: + +* **Generate test data or synthetic events**: <> +* **Call external REST APIs**: <> +* **Query databases**: <> +* **Read from Redpanda topics**: <> +* **Transform or validate data**: <> +* **Publish to Redpanda topics**: <> +* **Integrate with AI/LLM services**: <> +* **Cache frequently accessed data**: <> + == Data generators Use xref:develop:connect/components/inputs/about.adoc[`inputs`] to create tools that read data from internal or external systems or generate sample data for testing and development. +**When to use:** Development and testing environments where you need synthetic data, load testing scenarios, or demonstrating data flows without real data sources. + +**Example use cases:** Mock user events, test order data, synthetic sensor readings, demo data for presentations. + This example generates a realistic user event message: [source,yaml] @@ -25,6 +41,10 @@ See also: xref:develop:connect/components/inputs/generate.adoc[`generate` input Use xref:develop:connect/components/processors/about.adoc[`processors`] to fetch data from external APIs, databases, or services and return formatted results. This is one of the most common patterns for MCP tools. +**When to use:** Integrating with third-party services, fetching real-time data, calling internal microservices, or enriching event data with external information. + +**Example use cases:** Fetch user profile from CRM, get product pricing from inventory API, validate addresses with geocoding service, retrieve weather data. + [source,yaml] ---- include::ai-agents:example$http_processor.yaml[] @@ -36,6 +56,10 @@ See also: xref:develop:connect/components/processors/http.adoc[`http` processor] Query external databases and return structured results. This pattern is essential for tools that need to access business data. +**When to use:** Retrieving customer records, querying analytics data, looking up configuration values, or joining streaming data with dimensional data from data warehouses. + +**Example use cases:** Fetch customer details from PostgreSQL, query sales data from BigQuery, retrieve product catalog from MongoDB, look up reference data. + [source,yaml] ---- include::ai-agents:example$gcp_bigquery_select_processor.yaml[] @@ -43,261 +67,164 @@ include::ai-agents:example$gcp_bigquery_select_processor.yaml[] See also: xref:develop:connect/components/processors/gcp_bigquery_select.adoc[`gcp_bigquery_select` processor], xref:develop:connect/components/processors/sql_select.adoc[`sql_select` processor] (for other databases) -=== Redpanda integration and data publishing +== Data consumers -Use these patterns when you need to integrate with Redpanda infrastructure, publish data to topics, or implement caching systems. +Read messages from Redpanda topics to process streaming data in your MCP tools. This pattern enables event-driven workflows and real-time data processing. -=== Data publishers (output patterns) +**When to use:** Processing events from Redpanda topics, building event-driven AI agents, consuming audit logs, or subscribing to data change streams. -Use xref:develop:connect/components/outputs/about.adoc[`outputs`] to send data to external systems or build caching systems. - -This example publishes a message to a Redpanda topic: +**Example use cases:** Monitor order events, process user activity streams, consume IoT sensor data, react to system notifications. [source,yaml] ---- -include::ai-agents:example$redpanda_output.yaml[] +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "user-events" ] + consumer_group: "mcp-event-processor" + start_from_oldest: true + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" ---- -See also: xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] +See also: xref:develop:connect/components/inputs/redpanda.adoc[`redpanda` input] -=== Caching systems +== Data transformation -Use caching to store frequently accessed data, reduce latency, and minimize external API calls. You can implement caching using either Redpanda topics or in-memory stores. +Transform, validate, and enrich data as it flows through your MCP tools. Use Bloblang mapping language for powerful data manipulation. -[source,yaml] ----- -include::ai-agents:example$redpanda_cache.yaml[] ----- +**When to use:** Converting data formats, validating schemas, filtering events, enriching messages with computed fields, or normalizing data structures. -This example implements an in-memory cache for low-latency access to small datasets: +**Example use cases:** Parse JSON payloads, validate required fields, add timestamps, convert units, mask sensitive data, aggregate nested objects. [source,yaml] ---- -include::ai-agents:example$memory_cache.yaml[] ----- +mapping: | + # Parse and validate incoming data + root.user_id = this.user_id.or(throw("user_id is required")) + root.timestamp = now().ts_format("2006-01-02T15:04:05Z07:00") -See also: xref:develop:connect/components/caches/memory.adoc[`memory` cache], Redpanda-backed cache using xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] + # Transform and enrich + root.email_domain = this.email.split("@").index(1) + root.is_premium = this.subscription_tier == "premium" -== Production workflows and observability + # Filter sensitive data + root.profile = this.profile.without("ssn", "credit_card") +---- -Build enterprise-grade tools with error handling, validation, multi-step workflows, and monitoring. +See also: xref:develop:connect/components/processors/mapping.adoc[`mapping` processor], xref:develop:connect/guides/bloblang/about.adoc[Bloblang guide] -=== Parameter validation and type coercion +== AI/LLM integration -Always validate and coerce input parameters to ensure your tools are robust: +Integrate AI and LLM services into your MCP tools for intelligent data processing, embeddings generation, and natural language understanding. -[source,yaml] ----- -processors: - - label: validate_params - mutation: | - # Validate required parameters - root = if !this.exists("user_id") { - throw("user_id parameter is required") - } else { this } - - # Type coercion with validation - meta user_id = this.user_id.string() - meta limit = this.limit.number().catch(10) - meta start_date = this.start_date.parse_timestamp("2006-01-02").catch(now() - duration("24h")) ----- +**When to use:** Generating embeddings for semantic search, calling LLM APIs for text generation, building RAG (Retrieval Augmented Generation) pipelines, or analyzing sentiment. -=== Dynamic configuration +**Example use cases:** Generate embeddings for documents, classify customer feedback, summarize long text, extract entities, answer questions with context. -Build tools that adapt their behavior based on input parameters: +=== OpenAI integration [source,yaml] ---- -processors: - - label: dynamic_config - mutation: | - # Choose data source based on environment - meta env = this.environment | "production" - meta table_name = match @env { - "dev" => "dev_orders", - "staging" => "staging_orders", - "production" => "prod_orders", - _ => "dev_orders" - } - - # Adjust query complexity based on urgency - meta columns = if this.detailed.bool().catch(false) { - ["order_id", "customer_id", "total", "items", "shipping_address"] - } else { - ["order_id", "customer_id", "total"] - } +openai_chat_completion: + api_key: "${secrets.OPENAI_API_KEY}" + model: "gpt-4" + prompt: | + Analyze this customer feedback and provide: + 1. Sentiment (positive/negative/neutral) + 2. Key themes + 3. Actionable insights + + Feedback: ${! json("feedback_text") } + max_tokens: 500 ---- -=== Error handling and fallbacks +See also: xref:develop:connect/components/processors/openai_chat_completion.adoc[`openai_chat_completion`], xref:develop:connect/components/processors/openai_embeddings.adoc[`openai_embeddings`] -Implement error handling to make your tools reliable: +=== Embeddings generation [source,yaml] ---- -processors: - - label: primary_fetch - try: - - http: - url: "https://api.primary.com/data" - timeout: "10s" - catch: - - log: - message: "Primary API failed, trying fallback" - - label: fallback_fetch - http: - url: "https://api.fallback.com/data" - timeout: "15s" - - mutation: | - root.metadata.source = "fallback" - root.metadata.warning = "Primary source unavailable" +openai_embeddings: + api_key: "${secrets.OPENAI_API_KEY}" + model: "text-embedding-3-small" + text: ${! json("content") } ---- -=== Conditional processing +See also: xref:develop:connect/components/processors/cohere_embeddings.adoc[`cohere_embeddings`], xref:develop:connect/components/processors/gcp_vertex_ai_embeddings.adoc[`gcp_vertex_ai_embeddings`] -Build tools that branch based on input or data characteristics: +== Redpanda integration -[source,yaml] ----- -processors: - - label: conditional_processing - switch: - - check: this.data_type == "json" - processors: - - json: - operator: "parse" - - mutation: 'root.parsed_data = this' - - check: this.data_type == "csv" - processors: - - csv: - parse: true - - mutation: 'root.parsed_data = this' - - processors: - - mutation: 'root.error = "Unsupported data type"' ----- +Publish data to Redpanda topics and implement caching systems backed by Redpanda. -[[secrets]] -=== Secrets and credentials +Use these patterns when you need to integrate with Redpanda infrastructure, publish data to topics, or implement caching systems. -Securely handle multiple credentials and API keys. +=== Data publishers -Here is an example of using an API key secret. +Use xref:develop:connect/components/outputs/about.adoc[`outputs`] to send data to external systems, publish events to Redpanda topics, or integrate with downstream services. -. Create a secret in the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] with name `EXTERNAL_API_KEY` and your API key as the value. +**When to use:** Publishing events to Redpanda for consumption by other services, creating event sourcing patterns, building audit trails, or triggering downstream workflows. -. Reference the secret in your YAML configuration: -+ -[source,yaml] ----- -processors: - - label: call_external_api - http: - url: "https://api.example.com/data" - verb: GET - headers: - Authorization: "Bearer ${secrets.EXTERNAL_API_KEY}" # <1> - Accept: "application/json" ----- -+ -<1> The secret is injected at runtime. Never store the actual API key in your YAML configuration. The actual secret value never appears in your configuration files or logs. - -=== Monitoring, debugging, and observability +**Example use cases:** Publish order confirmations, emit audit events, trigger notifications, create event-driven workflows. -Use structured logging, request tracing, and performance metrics to gain insights into tool execution. +This example publishes a message to a Redpanda topic: [source,yaml] ---- -include::ai-agents:example$observable_tool.yaml[] +include::ai-agents:example$redpanda_output.yaml[] ---- -Observability features: - -* *Correlation IDs*: Use `uuid_v7()` to generate unique request identifiers for tracing -* *Execution timing*: Track how long your tools take to execute using nanosecond precision -* *Structured logging*: Include consistent fields like `request_id`, `duration_ms`, `tool_name` -* *Request/response metadata*: Log input parameters and response characteristics -* *Success tracking*: Monitor whether operations complete successfully - -You can test this pattern by invoking the tool with valid and invalid parameters, and observe the structured logs for tracing execution flow. For example, with a user ID of 1, you might see logs like: +See also: xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] -[source,json] ----- -{ - "metadata": { - "execution_time_ms": 0.158977, - "request_id": "019951ab-d07d-703f-aaae-7e1c9a5afa95", - "success": true, - "timestamp": "2025-09-16T08:37:18.589Z", - "tool": "observable_tool" - }, - "trace": { - "request_id": "019951ab-d07d-703f-aaae-7e1c9a5afa95", - "timestamp": "2025-09-16T08:37:18.589Z", - "tool": "observable_tool", - "version": "1.0.0" - }, - "user_id": "1" -} ----- +==== Outputs with processors -=== Multi-step data enrichment +Output tools can include processors to transform data before publishing. This pattern is useful when you need to process data and save the result to a destination in a single tool. -Build tools that combine data from multiple sources. +**When to use:** Processing user input with an LLM and saving the response, transforming data before publishing to a topic, enriching events before writing to external systems. -This workflow fetches customer data from a SQL database, enriches it with recent order history, and computes summary metrics. +**Example use cases:** Send a prompt to an LLM, then save the answer to a topic in Redpanda. [source,yaml] ---- -include::ai-agents:example$customer_enrichment.yaml[] +include::ai-agents:example$redpanda_output_with_processors.yaml[] ---- -See also: xref:develop:connect/components/processors/sql_select.adoc[`sql_select` processor], xref:develop:connect/guides/bloblang/about.adoc[Bloblang functions] (for data manipulation and aggregations) +You can use an output component type with processors, but you cannot use a processor component type with outputs. The `processors` field is available in all output components. -=== Workflow orchestration +=== Caching systems -Coordinate complex workflows with multiple steps and conditional logic. +Use caching to store frequently accessed data, reduce latency, and minimize external API calls. You can implement caching using either Redpanda topics or in-memory stores. + +**When to use:** Reducing repeated API calls, storing lookup tables, caching database query results, or maintaining session state across tool invocations. -This workflow simulates a complete order processing pipeline with mock data for inventory and processing tiers. This allows you to test the full logic without needing real external systems. +**Example use cases:** Cache user profiles, store API rate limit counters, maintain configuration values, cache product catalogs. +.Redpanda-backed cache [source,yaml] ---- -include::ai-agents:example$order_workflow.yaml[] +include::ai-agents:example$redpanda_cache.yaml[] ---- -For the input `{"order_id": "ORD001", "product_id": "widget-001", "quantity": 5, "total": 250, "customer_tier": "vip"}`, the workflow produces: - -[source,json] +.In-memory cache for low-latency access to small datasets +[source,yaml] ---- -{ - "assigned_rep": "vip-team@company.com", - "available_quantity": 100, - "customer_tier": "vip", - "estimated_fulfillment": "TBD - calculated based on processing tier", - "inventory_check": "passed", - "order_id": "ORD001", - "order_status": "processed", - "perks": [ - "expedited_shipping", - "white_glove_service" - ], - "priority_score": 90, - "processed_at": "2025-09-16T09:05:29.138Z", - "processing_tier": "vip", - "processing_time_estimate": "1-2 hours", - "processing_time_hours": 2, - "product_id": "widget-001", - "product_name": "Standard Widget", - "quantity": 5, - "total": 250 -} +include::ai-agents:example$memory_cache.yaml[] ---- -Notice how the workflow: +See also: xref:develop:connect/components/caches/memory.adoc[`memory` cache], Redpanda-backed cache using xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] + +// Production workflows section - single-sourced from rp-connect-docs partials +// Part 1: Parameter validation, dynamic config, error handling, conditional processing +include::redpanda-connect:ai-agents:partial$mcp/production-workflows-before-secrets.adoc[] + +// Secrets section - deployment-specific for Cloud (uses Secrets Store) +include::redpanda-connect:ai-agents:partial$mcp/secrets-cloud.adoc[] -. Preserves original input: `order_id`, `product_id`, `quantity`, `total`, and `customer_tier` pass through unchanged. -. Adds inventory data: `available_quantity`, `product_name`, and `inventory_check` status from the mock lookup. -. Routes by customer tier: Since `customer_tier` is "vip", it gets VIP processing with special `perks` and priority. -. Enriches with processing metadata: `assigned_rep`, `priority_score`, `processing_tier`, and time estimates. -. Finalizes with timestamps: `order_status`, `processed_at`, and calculated `processing_time_hours`. +// Part 2: Monitoring, multi-step enrichment, workflow orchestration +include::redpanda-connect:ai-agents:partial$mcp/production-workflows-after-secrets.adoc[] == Suggested reading diff --git a/modules/ROOT/pages/mcp/remote/quickstart.adoc b/modules/ROOT/pages/mcp/remote/quickstart.adoc index 6fe1de7..a43e10e 100644 --- a/modules/ROOT/pages/mcp/remote/quickstart.adoc +++ b/modules/ROOT/pages/mcp/remote/quickstart.adoc @@ -1,23 +1,48 @@ = Remote MCP Server Quickstart -:page-beta: true -:description: Create and host a managed MCP server inside your Redpanda Cloud cluster with tools for generating and publishing user event data. +:description: Learn how to extend AI agents with custom tools that interact with your Redpanda data using the Model Context Protocol (MCP). +Model Context Protocol (MCP) enables AI assistants like Claude to interact with external systems through custom tools. This quickstart teaches you how to create an MCP server in Redpanda Cloud with tools that generate and publish event data, then connect Claude Code to use those tools through natural language commands. -This quickstart guide shows you how to create and host a managed MCP server inside your Redpanda Cloud cluster. The server includes two tools: one for generating user event data and another for publishing that data to a Redpanda topic. +== What you'll learn + +By completing this quickstart, you'll understand: + +* What MCP is and how it extends AI capabilities +* How MCP servers, tools, and clients work together +* How to create and deploy custom tools in Redpanda Cloud +* How to connect AI assistants to your Redpanda data infrastructure + +== How MCP works + +The Model Context Protocol defines a standard way for AI assistants to interact with external tools and data sources: + +MCP Server:: Hosts a collection of tools that perform specific actions. MCP servers run as managed services in your Redpanda Cloud cluster. +Tools:: Individual capabilities your AI can use, built with Redpanda Connect components. Tools can read from sources (inputs), transform data (processors), write to destinations (outputs), or cache results. +Client:: An AI assistant (like Claude Code) that discovers available tools and calls them based on user requests. + +In this quickstart, you'll create a server with two tools: + +. `generate_input`: Creates fake user event data with randomized fields +. `redpanda_output`: Publishes generated events to a Redpanda topic + +Once connected, you can ask Claude in natural language to "generate 10 events and publish them to Redpanda," and Claude will automatically call your tools to complete the task. == Prerequisites -* A Redpanda Cloud cluster with *Remote MCP* enabled +* A Redpanda Cloud cluster with *Remote MCP* enabled. * Access to the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] for storing credentials. -* At least version 25.2.5 of the xref:manage:rpk/rpk-install.adoc[Redpanda CLI (`rpk`)] installed on your computer -* link:https://docs.anthropic.com/en/docs/claude-code/setup[Claude Code] installed - -TIP: For a complete developer guide, see xref:ai-agents:mcp/remote/developer-guide.adoc[]. +* At least version 25.2.5 of the xref:manage:rpk/rpk-install.adoc[Redpanda CLI (`rpk`)] installed on your computer. +* link:https://docs.anthropic.com/en/docs/claude-code/setup[Claude Code] installed. == Prepare your cluster -Before creating the MCP server, you need to set up a topic and user for event publishing. Use the Redpanda CLI to perform these steps. +Before creating the MCP server, you need to set up a topic for event publishing. +[tabs] +====== +rpk:: ++ +-- . Log in to your Redpanda Cloud account: + [,bash] @@ -33,42 +58,107 @@ This opens a browser window to authenticate. The token is saved locally inside y ---- rpk topic create events --partitions 3 --replicas 3 ---- +-- + +Data Plane API:: ++ +-- +. link:/api/doc/cloud-controlplane/authentication#topic-request-an-access-token[Authenticate to the Control Plane API] to get an access token. ++ +[NOTE] +==== +Access tokens expire after 1 hour. To refresh, make the same authentication request again with your service account credentials. The same token works for both Control Plane and Data Plane API requests. +==== -. Create a user called `mcp` with a strong password: +. Get the Data Plane API URL for your cluster: ++ +[tabs] +==== +BYOC or Dedicated:: ++ +Make a request to the link:/api/doc/cloud-controlplane/operation/operation-clusterservice_getcluster[`GET /v1/clusters/\{id}`] endpoint: ++ +[,bash,role="no-placeholders"] +---- +curl "https://api.redpanda.com/v1/clusters/" \ + -H "Authorization: Bearer " +---- + +Serverless:: ++ +Make a request to the link:/api/doc/cloud-controlplane/operation/operation-serverlessclusterservice_getserverlesscluster[`GET /v1/serverless/clusters/\{id}`] endpoint: + [,bash] ---- -rpk acl user create mcp --password +curl "https://api.redpanda.com/v1/serverless/clusters/" \ + -H "Authorization: Bearer " +---- +==== ++ +The response includes a `dataplane_api.url` value: ++ +[.no-copy] +---- + "id": "....", + "name": "my-cluster", +.... + "dataplane_api": { + "url": "https://api-xyz.abc.fmc.ppd.cloud.redpanda.com" + }, +... ---- + -Save the password securely. You need it later when configuring the MCP server. +[NOTE] +==== +The `dataplane_api.url` field might not be immediately available when a cluster reaches STATE_READY. If the field is missing or null, wait a few minutes and make the request again. The Data Plane API URL is typically available within 5-10 minutes after cluster creation completes. +==== -. Grant the `mcp` user permissions to produce and consume from the `events` topic: +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-topicservice_createtopic[`POST /v1/topics`] to create the topic: + [,bash] ---- -rpk acl create --allow-principal User:mcp --operation all --topic events +curl -X POST "https:///v1/topics" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "topic": { + "name": "events", + "partition_count": 3, + "replication_factor": 3 + } + }' ---- +-- +====== -== Create a Remote MCP Server in Redpanda Cloud +== Create an MCP Server in Redpanda Cloud +[tabs] +===== +Cloud UI:: ++ +-- . Log in to the link:https://cloud.redpanda.com/[Redpanda Cloud Console^]. . Navigate to *Remote MCP*. + This page shows a list of existing servers. -. Click *Create new MCP Server*. In *Metadata* add: +. Click *Create new MCP Server*. In *Server Metadata*, configure the basic information and resources: + * *Display Name*: A human-friendly name such as `event-data-generator`. This name is shown in the Redpanda Cloud Console. It is not the name of the MCP server itself. * *Description*: Explain what the server does. For example, `Generates fake user event data and publishes it to Redpanda topics`. -* *Tags*: Add key/value tags such as `owner=platform` or `env=demo`. +* *Tags*: Add key/value tags such as `owner=platform` or `env=demo`. The tag names `service_account_id` and `secret_id` are reserved and cannot be used. * *Resources*: Choose a size (XSmall / Small / Medium / Large / XLarge). Larger sizes allow more concurrent requests and faster processing, but cost more. You can change this later. +* *Service Account*: A service account is automatically created for authenticating the MCP server to your cluster. The name is pre-filled. You can customize this name or keep the default. ++ +[NOTE] +==== +Service accounts authenticate MCP server requests to your Redpanda cluster. The service account has editor permissions to the cluster, allowing it to perform operations like reading and writing data, managing topics, and accessing cluster resources. Service account credentials are stored in the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] with the ID `SERVICE_ACCOUNT_` and scope set to *MCP server*. +==== . Click *Next* to define tools. - -=== Add tools - ++ Tools define the actions your MCP server can perform. In this example, you create two tools: one for generating user event data and another for publishing that data to Redpanda. . From the *Template* dropdown, select *Generate Input*. @@ -79,9 +169,7 @@ The template populates the configuration with YAML for the tool definition. . From the *Template* dropdown, select *Redpanda Output*. + -The template populates the configuration for publishing to Redpanda and a section for adding the required secrets is displayed. - -. Enter the values for the `mcp` user's credentials in the *Add Required Secrets* section. +The template populates the configuration for publishing to Redpanda. Authentication is handled automatically by the MCP server's service account. . Click *Lint* to check the configuration. You should see no errors. @@ -93,12 +181,88 @@ It may take a few seconds to start. The status changes from *Starting* to *Runni + * For the `generate_input` tool, click *Run Tool* to generate sample event data. * For the `redpanda_output` tool, enter some sample event data such as `user_id=user123`, `event_type=login`, and `timestamp=2025-10-21T10:30:00Z` then click *Run Tool* to publish it to the `events` topic. +-- + +Data Plane API:: ++ +-- +. Create a service account using the link:/api/doc/cloud-controlplane/operation/operation-serviceaccountservice_createserviceaccount[Control Plane API]: ++ +[,bash] +---- +curl -X POST "https://api.redpanda.com/v1/service-accounts" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "service_account": { + "name": "mcp-server-demo", + "description": "Service account for MCP server demo" + } + }' +---- ++ +The response includes `client_id` and `client_secret`. Save these values. + +. Store the service account credentials in the xref:develop:connect/configuration/secret-management.adoc[Secrets Store]: ++ +* Create secret `REDPANDA_SA_CLIENT_ID` with the service account `client_id`. +* Create secret `REDPANDA_SA_CLIENT_SECRET` with the service account `client_secret`. + +. Using the Data Plane API URL from the previous section, make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_createmcpserver[`POST /v1/redpanda-connect/mcp-servers`] to create the MCP server: ++ +[,bash] +---- +curl -X POST "https:///v1/redpanda-connect/mcp-servers" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "mcp_server": { + "display_name": "event-data-generator", + "description": "Generates fake user event data and publishes it to Redpanda topics", + "tags": { + "owner": "platform", + "env": "demo" + }, + "resources": { + "memory_shares": "400M", + "cpu_shares": "100m" + }, + "service_account": { + "client_id": "${secrets.REDPANDA_SA_CLIENT_ID}", + "client_secret": "${secrets.REDPANDA_SA_CLIENT_SECRET}" + }, + "tools": { + "generate_input": { + "component_type": "COMPONENT_TYPE_INPUT", + "config_yaml": "generate:\n interval: 1s\n mapping: |\n root.user_id = \"user\" + random_int(min: 1, max: 1000).string()\n root.event_type = [\"login\", \"logout\", \"purchase\", \"view\"].index(random_int(max: 3))\n root.timestamp = now().ts_format(\"2006-01-02T15:04:05Z07:00\")" + }, + "redpanda_output": { + "component_type": "COMPONENT_TYPE_OUTPUT", + "config_yaml": "redpanda:\n seed_brokers: [ \"${REDPANDA_BROKERS}\" ]\n topic: events\n tls:\n enabled: true\n" + } + } + } + }' +---- ++ +The response includes the MCP server ID. Wait for the status to show *Running* before testing the tools. + +. To test the tools, use the link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_getmcpserver[`GET /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`] endpoint to verify the server is running. +-- +===== + +== Connect an AI client -== Connect a client +Now that your MCP server is running with two tools available, you'll connect Claude Code so it can discover and use them. You can connect any MCP-compatible AI client to your MCP server. -You can connect any MCP-compatible client to your Remote MCP server. This example uses Claude Code. +When you connect Claude Code: -The Redpanda CLI acts as a local proxy, forwarding requests from your AI client to your own Remote MCP server running in the Redpanda Cloud cluster. +. Claude automatically discovers your `generate_input` and `redpanda_output` tools +. You can ask Claude in natural language to perform tasks using these tools +. Claude decides which tools to call and in what order based on your request +. The Redpanda CLI acts as a secure proxy, forwarding Claude's tool requests to your MCP server in the cloud + +This example uses Claude Code, but the same pattern works with any MCP-compatible client. . Log in to your Redpanda Cloud account: + @@ -138,20 +302,35 @@ rpk cloud mcp proxy \ claude ---- -. Ask Claude Code to use your tools. For example: +. Ask Claude Code to use your tools. Try these example requests: + * "Generate 10 user events and then publish them to the events topic." * "Create sample login events for users user001, user002, and user003, then publish them to Redpanda." * "Generate purchase events with metadata and publish them to the events topic." ++ +Watch what happens: ++ +-- +* Claude analyzes your natural language request +* Claude identifies which tools to use (`generate_input` to create data, `redpanda_output` to publish) +* Claude calls your tools via the MCP server running in Redpanda Cloud +* You see the tool execution results in your Claude Code session +-- ++ +You may need to respond to prompts to grant Claude permission to call the tools. -You should see Claude Code calling your MCP server tools to generate and publish event data. You may need to respond to prompts for permissions to call the tools. - -When complete, you can verify the events were published by consuming from the `events` topic: - +. Verify the events were published by consuming from the `events` topic: ++ [,bash] ---- rpk topic consume events --num 10 ---- ++ +You should see the generated event data in JSON format, confirming that Claude successfully used your custom tools to generate data and publish it to Redpanda. + +== Summary + +You extended Claude's capabilities with custom tools that interact with your Redpanda cluster. Claude can now generate and publish event data through natural language commands without manual scripting. This same pattern works for any workflow: reading from topics, transforming data, querying databases, or calling external APIs. == Troubleshoot @@ -161,7 +340,6 @@ If your server is not starting or shows an error state: - Check the *Logs* tab for specific error messages. - Verify your YAML syntax by clicking *Lint*. -- Verify that the `mcp` user exists and has the correct permissions. === Connection issues @@ -181,14 +359,16 @@ If the publish tool returns errors: ```bash rpk topic list ``` -- Check that the `mcp` user has the correct ACLs: -+ -```bash -rpk acl list -``` - Use the MCP Inspector in Redpanda Cloud to test with different event data. - Check the MCP server logs for authentication or authorization errors. == Next steps -Write your own tools to extend the MCP server functionality. For more information, see: xref:ai-agents:mcp/remote/developer-guide.adoc[] +Now that you understand how MCP works, you can create custom tools for your specific use cases: + +* **Data ingestion**: Build tools that read from external APIs, databases, or file systems and publish to Redpanda topics. +* **Data processing**: Create tools that consume from topics, transform data, and write results back to Redpanda. +* **Monitoring and observability**: Add tools that query metrics, check system health, or analyze streaming data. +* **Integration workflows**: Connect Redpanda to other systems through custom tools that Claude can orchestrate. + +See xref:ai-agents:mcp/remote/developer-guide.adoc[] to learn how to build custom tools using Redpanda Connect components. diff --git a/modules/ROOT/pages/mcp/remote/scale-resources.adoc b/modules/ROOT/pages/mcp/remote/scale-resources.adoc new file mode 100644 index 0000000..bb63ee8 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/scale-resources.adoc @@ -0,0 +1,62 @@ += Scale Remote MCP Server Resources +:description: Learn how to scale MCP server resources up or down to match workload demands and optimize costs. + +You can scale your MCP server's resources up or down to match your workload needs. Resource allocation affects your xref:billing:billing.adoc#remote-mcp-billing-metrics[billing costs], which are charged per compute unit hour. + +== Prerequisites + +You must have an existing MCP server. If you do not have one, see xref:ai-agents:mcp/remote/quickstart.adoc[]. + +== Scale resources + +[tabs] +===== +Cloud UI:: ++ +-- +. In the Redpanda Cloud Console, navigate to *Remote MCP*. +. Find the MCP server you want to scale and click its name. +. Click *Edit configuration*. +. Under *Resources*, select a new size: ++ +* *XSmall*: Lowest cost, suitable for development or light workloads +* *Small*: Light production workloads +* *Medium*: Standard production workloads +* *Large*: High-throughput workloads +* *XLarge*: Highest performance for demanding workloads + +. Click *Save* to apply the new resource allocation. ++ +The specified resources are available immediately. +-- + +Data Plane API:: ++ +-- +. link:/api/doc/cloud-dataplane/topic/topic-quickstart[Authenticate and get the base URL] for the Data Plane API. +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_getmcpserver[`GET /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`] to retrieve the current configuration. +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_updatemcpserver[`PATCH /v1/redpanda-connect/mcp-servers/\{mcp_server_id}`] to update the resources: ++ +[,bash] +---- +curl -X PATCH "https:///v1/redpanda-connect/mcp-servers/?update_mask=resources" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "mcp_server": { + "resources": { + "memory_shares": "2Gi", + "cpu_shares": "1000m" + } + } + }' +---- ++ +The updated resources are available immediately. +-- +===== + +[TIP] +==== +Monitor your MCP server's performance and adjust resources as needed. You can scale up during peak usage periods and scale down during quieter times to optimize costs. For compute unit definitions and pricing, see xref:billing:billing.adoc#remote-mcp-billing-metrics[MCP billing metrics]. +==== From 9d75607730802c661e50852abcdbe359f43c6937 Mon Sep 17 00:00:00 2001 From: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Date: Thu, 18 Dec 2025 19:47:14 +0000 Subject: [PATCH 05/20] Update quickstart to create the SASL user (#476) --- modules/ROOT/pages/mcp/remote/quickstart.adoc | 134 ++++++++++++------ 1 file changed, 94 insertions(+), 40 deletions(-) diff --git a/modules/ROOT/pages/mcp/remote/quickstart.adoc b/modules/ROOT/pages/mcp/remote/quickstart.adoc index a43e10e..734f8e8 100644 --- a/modules/ROOT/pages/mcp/remote/quickstart.adoc +++ b/modules/ROOT/pages/mcp/remote/quickstart.adoc @@ -58,6 +58,22 @@ This opens a browser window to authenticate. The token is saved locally inside y ---- rpk topic create events --partitions 3 --replicas 3 ---- + +. Create a user called `mcp` with a strong password: ++ +[,bash] +---- +rpk acl user create mcp --password +---- ++ +Save the password securely. You need it later when configuring the MCP server. + +. Grant the `mcp` user permissions to produce and consume from the `events` topic: ++ +[,bash] +---- +rpk acl create --allow-principal User:mcp --operation all --topic events +---- -- Data Plane API:: @@ -121,11 +137,43 @@ curl -X POST "https:///v1/topics" \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ - "topic": { - "name": "events", - "partition_count": 3, - "replication_factor": 3 - } + "name": "events", + "partition_count": 3, + "replication_factor": 3 + }' +---- + +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-userservice_createuser[`POST /v1/users`] to create a user called `mcp`: ++ +[,bash] +---- +curl -X POST "https:///v1/users" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "name": "mcp", + "password": "", + "mechanism": "SASL_MECHANISM_SCRAM_SHA_256" + }' +---- ++ +Save the password securely. You need it later when configuring the MCP server. + +. Make a request to link:/api/doc/cloud-dataplane/operation/operation-aclservice_createacl[`POST /v1/acls`] to grant the `mcp` user permissions to produce and consume from the `events` topic: ++ +[,bash] +---- +curl -X POST "https:///v1/acls" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "resource_type": "RESOURCE_TYPE_TOPIC", + "resource_name": "events", + "resource_pattern_type": "RESOURCE_PATTERN_TYPE_LITERAL", + "principal": "User:mcp", + "host": "*", + "operation": "OPERATION_ALL", + "permission_type": "PERMISSION_TYPE_ALLOW" }' ---- -- @@ -169,7 +217,9 @@ The template populates the configuration with YAML for the tool definition. . From the *Template* dropdown, select *Redpanda Output*. + -The template populates the configuration for publishing to Redpanda. Authentication is handled automatically by the MCP server's service account. +The template populates the configuration for publishing to Redpanda and a section for adding the required secrets is displayed. + +. Enter the values for the `mcp` user's credentials in the *Add Required Secrets* section. . Click *Lint* to check the configuration. You should see no errors. @@ -186,27 +236,37 @@ It may take a few seconds to start. The status changes from *Starting* to *Runni Data Plane API:: + -- -. Create a service account using the link:/api/doc/cloud-controlplane/operation/operation-serviceaccountservice_createserviceaccount[Control Plane API]: +. Create a secret for the username: + [,bash] ---- -curl -X POST "https://api.redpanda.com/v1/service-accounts" \ +curl -X POST "https:///v1/secrets" \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ - "service_account": { - "name": "mcp-server-demo", - "description": "Service account for MCP server demo" - } + "id": "MCP_USERNAME", + "scopes": ["SCOPE_MCP_SERVER"], + "secret_data": "bWNw" }' ---- + -The response includes `client_id` and `client_secret`. Save these values. - -. Store the service account credentials in the xref:develop:connect/configuration/secret-management.adoc[Secrets Store]: +The `secret_data` value `bWNw` is the base64-encoded string `mcp`. + -* Create secret `REDPANDA_SA_CLIENT_ID` with the service account `client_id`. -* Create secret `REDPANDA_SA_CLIENT_SECRET` with the service account `client_secret`. +Create a secret for the password: ++ +[,bash] +---- +curl -X POST "https:///v1/secrets" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "id": "MCP_PASSWORD", + "scopes": ["SCOPE_MCP_SERVER"], + "secret_data": "" + }' +---- ++ +Replace `` with your password encoded in base64. You can encode it with: `echo -n '' | base64`. . Using the Data Plane API URL from the previous section, make a request to link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_createmcpserver[`POST /v1/redpanda-connect/mcp-servers`] to create the MCP server: + @@ -216,30 +276,24 @@ curl -X POST "https:///v1/redpanda-connect/mcp-servers" \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ - "mcp_server": { - "display_name": "event-data-generator", - "description": "Generates fake user event data and publishes it to Redpanda topics", - "tags": { - "owner": "platform", - "env": "demo" - }, - "resources": { - "memory_shares": "400M", - "cpu_shares": "100m" - }, - "service_account": { - "client_id": "${secrets.REDPANDA_SA_CLIENT_ID}", - "client_secret": "${secrets.REDPANDA_SA_CLIENT_SECRET}" + "display_name": "event-data-generator", + "description": "Generates fake user event data and publishes it to Redpanda topics", + "tags": { + "owner": "platform", + "env": "demo" + }, + "resources": { + "memory_shares": "400M", + "cpu_shares": "100m" + }, + "tools": { + "generate_input": { + "component_type": "COMPONENT_TYPE_INPUT", + "config_yaml": "generate:\n interval: 1s\n mapping: |\n root.user_id = \"user\" + random_int(min: 1, max: 1000).string()\n root.event_type = [\"login\", \"logout\", \"purchase\", \"view\"].index(random_int(max: 3))\n root.timestamp = now().ts_format(\"2006-01-02T15:04:05Z07:00\")" }, - "tools": { - "generate_input": { - "component_type": "COMPONENT_TYPE_INPUT", - "config_yaml": "generate:\n interval: 1s\n mapping: |\n root.user_id = \"user\" + random_int(min: 1, max: 1000).string()\n root.event_type = [\"login\", \"logout\", \"purchase\", \"view\"].index(random_int(max: 3))\n root.timestamp = now().ts_format(\"2006-01-02T15:04:05Z07:00\")" - }, - "redpanda_output": { - "component_type": "COMPONENT_TYPE_OUTPUT", - "config_yaml": "redpanda:\n seed_brokers: [ \"${REDPANDA_BROKERS}\" ]\n topic: events\n tls:\n enabled: true\n" - } + "redpanda_output": { + "component_type": "COMPONENT_TYPE_OUTPUT", + "config_yaml": "redpanda:\n seed_brokers: [ \"${REDPANDA_BROKERS}\" ]\n topic: events\n tls:\n enabled: true\n sasl:\n - mechanism: SCRAM-SHA-256\n username: \"${secrets.MCP_USERNAME}\"\n password: \"${secrets.MCP_PASSWORD}\"\n" } } }' From 6d432b418eee4ff5cdc158f0c8d900ef723ea0eb Mon Sep 17 00:00:00 2001 From: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Date: Tue, 13 Jan 2026 19:27:45 +0000 Subject: [PATCH 06/20] Improve MCP devex (#478) * Restructure MCP server documentation for better navigation - Add new pages: best-practices, concepts, reference, tool-patterns, troubleshooting - Remove deprecated pages: developer-guide, pipeline-patterns - Improve MCP overview with deployment comparison table - Update quickstart and admin-guide for clarity - Align structure with rp-connect-docs for single-sourcing * Use single-sourced key-terms partial in concepts page * Temporary playbook update to build from pending branch * Update personas * Lowercase * Align cloud-docs MCP testing and structure with rp-connect-docs - Restructure test-mcp-examples.sh to match rp-connect-docs test-all.sh style with sections, color output, and summary table - Add Cloud secrets format validation (Section 3) - Fix redpanda_output_with_processors.yaml: add label, MCP metadata, use secrets format for credentials - Fix best-practices.adoc: reorder sections to match rp-connect-docs, remove debugging section (moved to troubleshooting) - Fix monitor-activity.adoc: update broken xrefs to deleted reference.adoc - Fix troubleshooting.adoc: add debugging techniques section * Reorganize cloud-docs MCP pages to match rp-connect-docs structure - Add create-tool.adoc for step-by-step tool creation guide - Delete reference.adoc (content moved to create-tool.adoc and concepts.adoc) - Update nav.adoc to reflect new page structure - Update concepts.adoc, overview.adoc, quickstart.adoc with consistent cross-references and learning objectives - Update tool-patterns.adoc topic type to cookbook * Add personas and update includes * Restructure * Add anchors * three learning objectives max * Restructure * Update overview.adoc * Make title action-based * Remove toc * Apply suggestions * Remove Jira section (not available in Cloud) * Update modules/ai-agents/pages/mcp/remote/best-practices.adoc Co-authored-by: Michele Cyran * Update modules/ai-agents/pages/mcp/overview.adoc Co-authored-by: Michele Cyran * Rename the local MCP server * Fix links --------- Co-authored-by: Michele Cyran --- .../redpanda_output_with_processors.yaml | 30 +- modules/ROOT/examples/test-mcp-examples.sh | 217 +++++---- modules/ROOT/examples/testing.adoc | 14 +- modules/ROOT/examples/weather_service.yaml | 12 +- modules/ROOT/pages/index.adoc | 6 +- .../ROOT/pages/mcp/local/configuration.adoc | 15 +- modules/ROOT/pages/mcp/local/index.adoc | 4 +- modules/ROOT/pages/mcp/local/overview.adoc | 36 +- modules/ROOT/pages/mcp/local/quickstart.adoc | 19 +- modules/ROOT/pages/mcp/overview.adoc | 92 +++- .../ROOT/pages/mcp/remote/admin-guide.adoc | 11 +- .../ROOT/pages/mcp/remote/best-practices.adoc | 42 ++ modules/ROOT/pages/mcp/remote/concepts.adoc | 165 +++++++ .../ROOT/pages/mcp/remote/create-tool.adoc | 423 ++++++++++++++++++ .../pages/mcp/remote/developer-guide.adoc | 407 ----------------- modules/ROOT/pages/mcp/remote/index.adoc | 2 +- .../ROOT/pages/mcp/remote/manage-servers.adoc | 17 +- .../pages/mcp/remote/monitor-activity.adoc | 265 ++--------- modules/ROOT/pages/mcp/remote/overview.adoc | 95 ++-- .../pages/mcp/remote/pipeline-patterns.adoc | 233 ---------- modules/ROOT/pages/mcp/remote/quickstart.adoc | 85 ++-- .../pages/mcp/remote/scale-resources.adoc | 9 +- .../ROOT/pages/mcp/remote/tool-patterns.adoc | 315 +++++++++++++ .../pages/mcp/remote/troubleshooting.adoc | 46 ++ 24 files changed, 1448 insertions(+), 1112 deletions(-) create mode 100644 modules/ROOT/pages/mcp/remote/best-practices.adoc create mode 100644 modules/ROOT/pages/mcp/remote/concepts.adoc create mode 100644 modules/ROOT/pages/mcp/remote/create-tool.adoc delete mode 100644 modules/ROOT/pages/mcp/remote/developer-guide.adoc delete mode 100644 modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc create mode 100644 modules/ROOT/pages/mcp/remote/tool-patterns.adoc create mode 100644 modules/ROOT/pages/mcp/remote/troubleshooting.adoc diff --git a/modules/ROOT/examples/redpanda_output_with_processors.yaml b/modules/ROOT/examples/redpanda_output_with_processors.yaml index d58997a..eea4b32 100644 --- a/modules/ROOT/examples/redpanda_output_with_processors.yaml +++ b/modules/ROOT/examples/redpanda_output_with_processors.yaml @@ -1,12 +1,4 @@ -redpanda: - seed_brokers: [ "${REDPANDA_BROKERS}" ] - topic: "llm-responses" - tls: - enabled: true - sasl: - - mechanism: "${REDPANDA_SASL_MECHANISM}" - username: "${REDPANDA_SASL_USERNAME}" - password: "${REDPANDA_SASL_PASSWORD}" +label: summarize_and_publish processors: - openai_chat_completion: @@ -17,3 +9,23 @@ processors: root.question = this.question root.answer = this.content root.timestamp = now().ts_format("2006-01-02T15:04:05Z07:00") + +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topic: "llm-responses" + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${secrets.MCP_USERNAME}" + password: "${secrets.MCP_PASSWORD}" + +meta: + mcp: + enabled: true + description: "Process a question through an LLM and publish the response to Redpanda" + properties: + - name: question + type: string + description: "The question to send to the LLM" + required: true diff --git a/modules/ROOT/examples/test-mcp-examples.sh b/modules/ROOT/examples/test-mcp-examples.sh index 595fceb..068f730 100755 --- a/modules/ROOT/examples/test-mcp-examples.sh +++ b/modules/ROOT/examples/test-mcp-examples.sh @@ -1,9 +1,18 @@ #!/usr/bin/env bash # -# Automated testing script for Redpanda Connect MCP examples +# Test script for Redpanda Cloud MCP examples +# +# This script tests: +# 1. MCP tool definitions using `rpk connect mcp-server lint` +# 2. MCP metadata validation (enabled, description, properties) # # Usage: -# ./test-mcp-examples.sh +# ./test-mcp-examples.sh # Run all tests +# ./test-mcp-examples.sh --lint-only # Only lint, skip metadata validation +# +# Unlike rp-connect-docs, Cloud MCP tools cannot be tested with +# `rpk connect run` because they are standalone tool definitions, not +# full pipelines. End-to-end testing requires the Cloud Console. set -euo pipefail @@ -12,51 +21,95 @@ RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' +CYAN='\033[0;36m' NC='\033[0m' +# Get script directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$SCRIPT_DIR" + # Counters -TOTAL=0 +TOTAL_TOOLS=0 +PASSED_LINT=0 +PASSED_METADATA=0 +FAILED_LINT=0 +FAILED_METADATA=0 SKIPPED=0 -MCP_FAILS=0 -echo "🧪 Redpanda Connect MCP Examples Test Suite" +echo "🧪 Redpanda Cloud MCP Examples - Test Suite" echo "============================================" echo "" -# Run MCP server lint on the directory -echo "Running rpk connect mcp-server lint..." -LINT_OUTPUT=$(rpk connect mcp-server lint --skip-env-var-check --verbose 2>&1) || { - echo -e "${RED}❌ Linting failed${NC}" - echo "" - echo "$LINT_OUTPUT" - exit 1 -} -echo -e "${GREEN}✅ Linting passed${NC}" +# Parse arguments +RUN_METADATA=true + +if [[ $# -gt 0 ]]; then + case "$1" in + --lint-only) + RUN_METADATA=false + ;; + esac +fi + +# ============================================================================ +# SECTION 1: MCP Tool Linting +# Validates YAML syntax and component schemas +# ============================================================================ + +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo -e "📦 ${CYAN}SECTION 1: MCP Tool Linting${NC}" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" -# Function to validate MCP metadata -validate_mcp_metadata() { - local file=$1 +# Count YAML files +file_count=$(find . -maxdepth 1 -name "*.yaml" | wc -l | tr -d ' ') +TOTAL_TOOLS=$file_count - echo -n " Validating MCP metadata... " +echo -n -e "${BLUE}📁 examples/${NC} ($file_count files)... " + +if output=$(rpk connect mcp-server lint --skip-env-var-check . 2>&1); then + echo -e "${GREEN}✓ PASSED${NC}" + PASSED_LINT=$file_count +else + echo -e "${RED}✗ FAILED${NC}" + echo "$output" | sed 's/^/ /' | head -20 + FAILED_LINT=$file_count +fi + +# ============================================================================ +# SECTION 2: MCP Metadata Validation +# Validates tool metadata (enabled, description, properties) +# ============================================================================ + +if $RUN_METADATA; then + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo -e "📝 ${CYAN}SECTION 2: MCP Metadata Validation${NC}" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" # Determine which YAML parser to use - local use_yq=true + use_yq=true if ! command -v yq &> /dev/null; then use_yq=false if ! command -v python3 &> /dev/null; then - echo -e "${RED}FAILED${NC} (neither yq nor python3 available)" - MCP_FAILS=$((MCP_FAILS + 1)) - return 1 + echo -e "${YELLOW}⚠ Neither yq nor python3 available - skipping metadata validation${NC}" + RUN_METADATA=false fi fi - # Check if .meta.mcp exists - local mcp_exists - if $use_yq; then - mcp_exists=$(yq eval '.meta.mcp' "$file" 2>/dev/null) - else - mcp_exists=$(python3 -c " + if $RUN_METADATA; then + for file in *.yaml; do + if [[ -f "$file" ]]; then + echo -n -e " ${BLUE}$file${NC}... " + + # Check if .meta.mcp exists + if $use_yq; then + mcp_exists=$(yq eval '.meta.mcp' "$file" 2>/dev/null) + enabled=$(yq eval '.meta.mcp.enabled' "$file" 2>/dev/null) + description=$(yq eval '.meta.mcp.description' "$file" 2>/dev/null) + else + mcp_exists=$(python3 -c " import yaml try: with open('$file') as f: @@ -67,20 +120,7 @@ try: except: print('null') " 2>/dev/null) - fi - - if [[ "$mcp_exists" == "null" || -z "$mcp_exists" ]]; then - echo -e "${YELLOW}SKIPPED${NC} (no MCP metadata)" - SKIPPED=$((SKIPPED + 1)) - return 0 - fi - - # Read .meta.mcp.enabled - local enabled - if $use_yq; then - enabled=$(yq eval '.meta.mcp.enabled' "$file" 2>/dev/null) - else - enabled=$(python3 -c " + enabled=$(python3 -c " import yaml try: with open('$file') as f: @@ -90,19 +130,7 @@ try: except: print('null') " 2>/dev/null) - fi - - if [[ "$enabled" != "true" ]]; then - echo -e "${YELLOW}WARNING${NC} (mcp.enabled not set to true)" - return 0 - fi - - # Read .meta.mcp.description - local description - if $use_yq; then - description=$(yq eval '.meta.mcp.description' "$file" 2>/dev/null) - else - description=$(python3 -c " + description=$(python3 -c " import yaml try: with open('$file') as f: @@ -112,44 +140,79 @@ try: except: print('null') " 2>/dev/null) + fi + + # Validate + if [[ "$mcp_exists" == "null" || -z "$mcp_exists" ]]; then + echo -e "${YELLOW}SKIPPED${NC} (no MCP metadata)" + SKIPPED=$((SKIPPED + 1)) + elif [[ "$enabled" != "true" ]]; then + echo -e "${YELLOW}WARNING${NC} (mcp.enabled not true)" + SKIPPED=$((SKIPPED + 1)) + elif [[ "$description" == "null" || -z "$description" ]]; then + echo -e "${RED}FAILED${NC} (missing description)" + FAILED_METADATA=$((FAILED_METADATA + 1)) + else + echo -e "${GREEN}PASSED${NC}" + PASSED_METADATA=$((PASSED_METADATA + 1)) + fi + fi + done fi +fi - if [[ "$description" == "null" || -z "$description" ]]; then - echo -e "${RED}FAILED${NC} (missing description)" - MCP_FAILS=$((MCP_FAILS + 1)) - return 1 - fi +# ============================================================================ +# SECTION 3: Cloud-Specific Validation +# Validates secrets use Cloud format (${secrets.X}) +# ============================================================================ - echo -e "${GREEN}PASSED${NC}" - return 0 -} +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo -e "☁️ ${CYAN}SECTION 3: Cloud Secrets Format${NC}" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" -# Validate MCP metadata for each file +secrets_issues=0 for file in *.yaml; do if [[ -f "$file" ]]; then - TOTAL=$((TOTAL + 1)) - echo "" - echo -e "${BLUE}📄 Validating: $file${NC}" - validate_mcp_metadata "$file" + # Check for non-Cloud secrets patterns (${VAR} without secrets. prefix) + # Exclude: + # - ${! ... } which is Bloblang interpolation + # - ${REDPANDA_BROKERS} which is platform-injected + if grep -E '\$\{[A-Z_]+\}' "$file" | grep -v '\${secrets\.' | grep -v '\${!' | grep -v '\${REDPANDA_BROKERS}' > /dev/null 2>&1; then + echo -e " ${BLUE}$file${NC}... ${YELLOW}WARNING${NC} (uses env vars instead of \${secrets.X})" + secrets_issues=$((secrets_issues + 1)) + fi fi done -# Summary +if [[ $secrets_issues -eq 0 ]]; then + echo -e " ${GREEN}✓ All files use Cloud secrets format${NC}" +fi + +# ============================================================================ +# SUMMARY +# ============================================================================ + echo "" echo "============================================" echo "📊 Test Summary" echo "============================================" -echo "Total configs tested: $TOTAL" -if [[ $MCP_FAILS -gt 0 ]]; then - echo -e "MCP validation failures: ${RED}$MCP_FAILS${NC}" + +echo -e "Lint: ${PASSED_LINT}/${TOTAL_TOOLS} passed" +if $RUN_METADATA; then + METADATA_TOTAL=$((PASSED_METADATA + FAILED_METADATA + SKIPPED)) + echo -e "Metadata: ${PASSED_METADATA}/${METADATA_TOTAL} passed (${SKIPPED} skipped)" fi -if [[ $SKIPPED -gt 0 ]]; then - echo -e "Skipped: ${YELLOW}$SKIPPED${NC}" +if [[ $secrets_issues -gt 0 ]]; then + echo -e "Secrets: ${YELLOW}${secrets_issues} warnings${NC}" fi -echo "" +echo "──────────────────────────────────────────────────" + +TOTAL_FAILED=$((FAILED_LINT + FAILED_METADATA)) -if [[ $MCP_FAILS -gt 0 ]]; then - echo -e "${RED}❌ Some tests failed${NC}" +if [[ $TOTAL_FAILED -gt 0 ]]; then + echo -e "${RED}❌ Some tests failed ($TOTAL_FAILED failures)${NC}" exit 1 else echo -e "${GREEN}✅ All tests passed!${NC}" diff --git a/modules/ROOT/examples/testing.adoc b/modules/ROOT/examples/testing.adoc index 812400b..96d8525 100644 --- a/modules/ROOT/examples/testing.adoc +++ b/modules/ROOT/examples/testing.adoc @@ -58,18 +58,15 @@ MCP metadata validation checks: === Unit testing limitations -[IMPORTANT] -==== -MCP tool examples are standalone component definitions (e.g., `label:`, `processors:`, `meta:`), not full pipelines with `input:`, `pipeline:`, `output:` sections. This means they cannot use inline `tests:` sections like cookbook examples do. +MCP tool examples are standalone component definitions (`label:`, `processors:`, `meta:`), not full pipelines with `input:`, `pipeline:`, `output:` sections. This means they cannot use inline `tests:` sections like cookbook examples do. The `rpk connect test` command requires full pipeline structure with paths like `/pipeline/processors/0`, which don't exist in MCP tool definitions. -==== For testing MCP tools: -* **Linting is the primary validation** - ensures syntax and schema correctness -* **MCP metadata validation** - verifies tool has proper description and properties -* **Manual testing** - uses the Cloud Console MCP Server interface to test tools end-to-end +- Ensure syntax and schema correctness. +- Verify MCP metadata has proper description and properties. +- Perform manual testing using the Cloud Console MCP Server interface to test tools end-to-end. == MCP tool structure @@ -143,13 +140,12 @@ For comprehensive validation, test MCP tools using the Cloud Console: . Navigate to your Cloud cluster's MCP Server configuration . Add or update your MCP tool configuration -. Use the Cloud Console's AI chat interface to invoke the tool +. Use the Cloud Console's MCP Inspector to locate your tool . Verify the tool executes correctly and returns expected results This validates: * Tool loads correctly in the MCP server -* MCP metadata is properly exposed to AI clients * Tool executes with provided parameters * Responses are formatted correctly * Secrets are properly resolved from Cloud Secrets Store diff --git a/modules/ROOT/examples/weather_service.yaml b/modules/ROOT/examples/weather_service.yaml index 1a6c56f..3ebe920 100644 --- a/modules/ROOT/examples/weather_service.yaml +++ b/modules/ROOT/examples/weather_service.yaml @@ -1,6 +1,6 @@ label: weather-service processors: - - label: validate_inputs + - label: validate_inputs # <1> mutation: | # Validate and sanitize city input meta city = this.city.string(). @@ -12,15 +12,15 @@ processors: throw("City name cannot be empty") } else { "" } - - label: fetch_weather_data + - label: fetch_weather_data # <2> try: - - http: + - http: # <3> url: "https://wttr.in/${! @city }?format=j1" verb: GET headers: User-Agent: "redpanda-connect-mcp/1.0" timeout: "10s" - - mutation: | + - mutation: | # <4> root = { "city": @city, "temperature_c": this.current_condition.0.temp_C.number(), @@ -35,7 +35,7 @@ processors: message: "Weather data fetched for city: ${! @city }" level: "INFO" - - label: handle_weather_errors + - label: handle_weather_errors # <5> catch: - mutation: | root = { @@ -48,7 +48,7 @@ processors: message: "Weather API error for city ${! @city }: ${! error() }" level: "ERROR" -meta: +meta: # <6> tags: [ weather, example ] mcp: enabled: true diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 7311292..c5dd8a0 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -7,6 +7,8 @@ AI agents are configurable assistants that autonomously perform specialist tasks Redpanda Cloud provides two complementary Model Context Protocol (MCP) options to help you build AI agents: -**Local MCP server for Redpanda Cloud** badge::[label=beta, tooltip={page-beta-text}]: A built-in server that gives your AI assistant direct access to your Redpanda Cloud account and clusters. This runs locally on your computer and lets you quickly perform operations like creating clusters, listing topics, and reading messages. +MCP server for the Redpanda Cloud API badge::[label=beta, tooltip={page-beta-text}]:: +A built-in server that gives your AI agent direct access to your Redpanda Cloud account and clusters. This runs locally on your computer and lets you quickly perform operations like creating clusters, listing topics, and reading messages. -**Remote MCP (managed)**: Your own custom MCP servers built with Redpanda Connect pipelines and hosted inside your Redpanda Cloud cluster. These let you create reusable tools for your team that integrate with knowledge bases, APIs, and web content while running close to your data. \ No newline at end of file +Remote MCP:: +Your own custom MCP servers built with Redpanda Connect pipelines and hosted inside your Redpanda Cloud cluster. These let you create reusable tools for your team that integrate with knowledge bases, APIs, and web content while running close to your data. \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/local/configuration.adoc b/modules/ROOT/pages/mcp/local/configuration.adoc index 4b3c4ce..9bcaf55 100644 --- a/modules/ROOT/pages/mcp/local/configuration.adoc +++ b/modules/ROOT/pages/mcp/local/configuration.adoc @@ -1,8 +1,15 @@ -= Configure the Local MCP server for Redpanda Cloud += Configure the MCP Server for the Redpanda Cloud API :page-beta: true -:description: Learn how to configure the local MCP server for Redpanda Cloud, including auto and manual client setup, enabling deletes, and security considerations. +:description: Learn how to configure the MCP server for the Redpanda Cloud API, including auto and manual client setup, enabling deletes, and security considerations. +:page-topic-type: how-to +:personas: ai_agent_developer, platform_admin +// Reader journey: "I customize and configure" +// Learning objectives - what readers can learn from this page: +:learning-objective-1: Configure MCP clients manually +:learning-objective-2: Enable delete operations safely +:learning-objective-3: Troubleshoot common configuration issues -This page explains how to configure the local MCP server for Redpanda Cloud, including auto and manual client setup, enabling deletes, and security considerations. +This page explains how to configure the MCP server for the Redpanda Cloud API, including auto and manual client setup, enabling deletes, and security considerations. == Prerequisites @@ -31,7 +38,7 @@ If you need to update the integration, re-run the install command for your clien == Manual configuration for other MCP clients -If you're using another MCP-compatible client, you can manually configure it to use the local MCP server for Redpanda Cloud. Follow these steps: +If you're using another MCP-compatible client, you can manually configure it to use the MCP server for the Redpanda Cloud API. Follow these steps: Add an MCP server entry to your client's configuration (example shown in JSON). Adjust paths for your system. diff --git a/modules/ROOT/pages/mcp/local/index.adoc b/modules/ROOT/pages/mcp/local/index.adoc index 1642959..d656760 100644 --- a/modules/ROOT/pages/mcp/local/index.adoc +++ b/modules/ROOT/pages/mcp/local/index.adoc @@ -1,4 +1,4 @@ -= Local MCP server for Redpanda Cloud += MCP Server for the Redpanda Cloud API :page-beta: true -:description: Find links to information about the Local MCP server for Redpanda Cloud and its features for building and managing AI agents that can interact with your Redpanda Cloud account and clusters. +:description: Find links to information about the MCP server for the Redpanda Cloud API and its features for building and managing AI agents that can interact with your Redpanda Cloud account and clusters. :page-layout: index diff --git a/modules/ROOT/pages/mcp/local/overview.adoc b/modules/ROOT/pages/mcp/local/overview.adoc index cc624f4..6b799b2 100644 --- a/modules/ROOT/pages/mcp/local/overview.adoc +++ b/modules/ROOT/pages/mcp/local/overview.adoc @@ -1,16 +1,22 @@ - -= About the Local MCP server for Redpanda Cloud += MCP Server for the Redpanda Cloud API :page-beta: true -:description: Learn about the local MCP server for Redpanda Cloud, which lets AI assistants securely access and operate your Redpanda Cloud account and clusters. +:description: Learn about the MCP server for the Redpanda Cloud API, which lets AI agents securely access and operate your Redpanda Cloud account and clusters. +:page-topic-type: overview +:personas: evaluator, ai_agent_developer, platform_admin +// Reader journey: "I'm new" +// Learning objectives - what readers should understand after reading this page: +:learning-objective-1: Explain what the MCP server for the Redpanda Cloud API does +:learning-objective-2: Identify what operations are available through MCP +:learning-objective-3: Identify security considerations for MCP authentication -The local MCP server for Redpanda Cloud lets AI assistants securely access and operate your Redpanda Cloud account and clusters. MCP provides controlled access to: +The MCP server for the Redpanda Cloud API lets AI agents securely access and operate your Redpanda Cloud account and clusters. MCP provides controlled access to: -* link:https://docs.redpanda.com/api/doc/cloud-controlplane/[Control Plane] actions, such as creating a Redpanda Cloud cluster or listing clusters. -* link:https://docs.redpanda.com/api/doc/cloud-dataplane/[Data Plane] actions, such as creating topics or listing topics. +* link:https://docs.redpanda.com/api/doc/cloud-controlplane/[Control Plane] APIs, such as creating a Redpanda Cloud cluster or listing clusters. +* link:https://docs.redpanda.com/api/doc/cloud-dataplane/[Data Plane] APIs, such as creating topics or listing topics. By speaking natural language to your assistant, you can ask it to perform Redpanda operations on your behalf. The MCP server runs locally on your machine and authenticates to Redpanda Cloud using a Redpanda Cloud token. -image::shared:cloud-mcp.gif[A terminal window showing Claude Code invoking the local MCP server for Redpanda Cloud to list topics in a cluster.] +image::shared:cloud-mcp.gif[A terminal window showing Claude Code invoking the MCP server for the Redpanda Cloud API to list topics in a cluster.] == What you can do @@ -32,13 +38,13 @@ NOTE: The MCP server does **not** expose delete endpoints by default. You can en . Authenticate to Redpanda Cloud and receive a token using the xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[`rpk cloud login` command]. . Configure your MCP client using the xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-install.adoc[`rpk cloud mcp install`] command. Your client then starts the server on-demand using xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-stdio.adoc[`rpk cloud mcp stdio`], authenticating with the Redpanda Cloud token from `rpk cloud login`. -. Prompt your assistant to perform Redpanda operations. The local MCP server for Redpanda Cloud executes them in your Redpanda Cloud account using your Redpanda Cloud token. +. Prompt your assistant to perform Redpanda operations. The MCP server executes them in your Redpanda Cloud account using your Redpanda Cloud token. === Components * AI client (Claude, Claude Code, or any other MCP client) that connects to the MCP server. -* Redpanda CLI (`rpk`) for obtaining a token and starting the local MCP server. -* Redpanda Cloud account that the local MCP server can connect to and issue API requests. +* Redpanda CLI (`rpk`) for obtaining a token and starting the MCP server. +* Redpanda Cloud account that the MCP server can connect to and issue API requests. == Security considerations @@ -50,9 +56,13 @@ MCP servers authenticate to Redpanda Cloud using your personal or service accoun == Next steps -* xref:ai-agents:mcp/local/quickstart.adoc[] -* xref:ai-agents:mcp/local/configuration.adoc[] +Continue your learning journey with these resources: + +* xref:ai-agents:mcp/local/quickstart.adoc[MCP server for the Redpanda Cloud API quickstart] +* xref:ai-agents:mcp/local/configuration.adoc[Configure the MCP server for the Redpanda Cloud API] == Suggested reading -The Redpanda documentation site has a read-only MCP server that provides access to Redpanda docs and examples. This server has no access to your Redpanda Cloud account or clusters. See xref:home:ROOT:mcp-setup.adoc[]. +For more information, see these resources: + +* xref:home:ROOT:mcp-setup.adoc[Read-only MCP server for Redpanda docs]: Access Redpanda documentation and examples through AI agents diff --git a/modules/ROOT/pages/mcp/local/quickstart.adoc b/modules/ROOT/pages/mcp/local/quickstart.adoc index cf5f7be..6a67db1 100644 --- a/modules/ROOT/pages/mcp/local/quickstart.adoc +++ b/modules/ROOT/pages/mcp/local/quickstart.adoc @@ -1,8 +1,15 @@ -= Local MCP server for Redpanda Cloud Quickstart += MCP Server for the Redpanda Cloud API Quickstart :page-beta: true -:description: Connect your Claude AI assistant to your Redpanda Cloud account and clusters using the local MCP server for Redpanda Cloud. +:description: Connect your Claude AI agent to your Redpanda Cloud account and clusters using the MCP server for the Redpanda Cloud API. +:page-topic-type: tutorial +:personas: ai_agent_developer, platform_admin +// Reader journey: "I'm new" → first hands-on experience +// Learning objectives - what readers will achieve by completing this quickstart: +:learning-objective-1: Authenticate to Redpanda Cloud with rpk +:learning-objective-2: Install the MCP integration for Claude +:learning-objective-3: Issue natural language commands to manage clusters -In this quickstart, you'll get your Claude AI assistant talking to Redpanda Cloud using the xref:ai-agents:mcp/local/overview.adoc[local MCP server for Redpanda Cloud]. +In this quickstart, you'll get your Claude AI agent talking to Redpanda Cloud using the xref:ai-agents:mcp/local/overview.adoc[MCP server for the Redpanda Cloud API]. If you're trying to deploy your own MCP server as a managed service inside your cluster, see xref:ai-agents:mcp/remote/quickstart.adoc[]. @@ -30,7 +37,7 @@ Ensure the version is at least 25.2.3. rpk cloud login ``` + -A browser window opens. Sign in to grant access. After you sign in, `rpk` stores a token locally. This token is not shared with your AI assistant. It is used by the MCP server to authenticate requests to your Redpanda Cloud account. +A browser window opens. Sign in to grant access. After you sign in, `rpk` stores a token locally. This token is not shared with your AI agent. It is used by the MCP server to authenticate requests to your Redpanda Cloud account. . Install the MCP integration. Choose one client: + @@ -60,4 +67,6 @@ NOTE: The MCP server does *not* expose API endpoints that result in delete opera == Next steps -* xref:ai-agents:mcp/local/configuration.adoc[] +Continue your learning journey with this resource: + +* xref:ai-agents:mcp/local/configuration.adoc[]: Configure the MCP server for advanced use cases diff --git a/modules/ROOT/pages/mcp/overview.adoc b/modules/ROOT/pages/mcp/overview.adoc index 05bcd3f..2574356 100644 --- a/modules/ROOT/pages/mcp/overview.adoc +++ b/modules/ROOT/pages/mcp/overview.adoc @@ -1,49 +1,93 @@ -= MCP in Redpanda Cloud -:description: Learn about Model Context Protocol (MCP) in Redpanda Cloud, including the two complementary options: Redpanda Cloud MCP Server and Remote MCP (managed). += MCP Overview +:description: Learn about Model Context Protocol (MCP) in Redpanda Cloud, including the two complementary options: the MCP server for the Redpanda Cloud API and Remote MCP. +:page-topic-type: overview +:personas: evaluator, ai_agent_developer +// Reader journey: "I'm new" - understanding the landscape +// Learning objectives - what readers should understand after reading this page: +:learning-objective-1: Describe what MCP enables for AI agents +:learning-objective-2: Distinguish between local and remote MCP options +:learning-objective-3: Choose the right MCP option for your use case +This page introduces MCP in Redpanda Cloud and helps you choose the right option for your use case. -Model Context Protocol (MCP) is a way to give AI assistants like Claude access to tools and data they wouldn't normally have. Instead of just chatting with your AI assistant, you can ask it to perform real tasks on your behalf. +After reading this page, you will be able to: -== Why use MCP with Redpanda Cloud? +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} -With MCP, you can have natural conversations with your AI assistant about your streaming data infrastructure. Rather than remembering command-line syntax or navigating through web interfaces, you describe what you want in plain language and your AI assistant handles the technical details. +== What is MCP? + +MCP (Model Context Protocol) is an open standard that lets AI agents use tools. Think of it like a universal adapter: instead of building custom integrations for every AI system, you define your tools once using MCP, and any MCP-compatible AI client can discover and use them. + +Without MCP, connecting AI to your business systems requires custom API code, authentication handling, and response formatting for each AI platform. With MCP, you describe what a tool does and what inputs it needs, and the protocol handles the rest. == MCP options in Redpanda Cloud -In Redpanda Cloud, there are two complementary options to use MCP: +Redpanda Cloud offers two complementary MCP options: + +MCP server for the Redpanda Cloud API badge::[label=beta, tooltip={page-beta-text}]:: +A pre-built server that gives AI agents access to Redpanda Cloud APIs. It runs on your computer and lets you manage clusters, topics, and other resources through natural language. ++ +Example: "Create a cluster called `dev-analytics` with 3 brokers." + +Remote MCP:: +Your own MCP server built with Redpanda Connect and hosted inside your Redpanda Cloud cluster. You define custom tools that access your data, call external APIs, or trigger workflows. ++ +Example: "Analyze the last 100 orders and show me the top product categories." -[cols="1s,2a,2a"] +=== Comparison + +[cols="1h,2,2"] |=== -| |Redpanda Cloud MCP Server badge::[label=beta, tooltip={page-beta-text}] | Remote MCP +| | MCP server for the Redpanda Cloud API | Remote MCP -| Description -| A server that gives your AI assistant access to your Redpanda Cloud account and clusters. -| Your own MCP server built with Redpanda Connect and hosted inside your Redpanda Cloud cluster. +| Purpose +| Operate your Redpanda Cloud account +| Build custom tools for your data and workflows | Where it runs | Your computer -| In your Redpanda Cloud cluster (managed by Redpanda) +| Redpanda Cloud (managed) | Who builds it | Redpanda -| You, with Redpanda Connect +| You, using Redpanda Connect -| Example use cases (prompts you might ask) -| - Create a new cluster called `dev-analytics` for testing. -- List all topics in my production cluster. -| - Analyze the last 100 orders and show me the top product categories. -- Generate a summary of user activity from the events stream. -|=== +| Access to +| Redpanda Cloud APIs (clusters, topics, users, ACLs) +| Anything you configure (databases, APIs, Redpanda topics, LLMs) -TIP: The Redpanda documentation site includes a read-only MCP server that gives you access to Redpanda documentation and code examples through AI assistants like Claude Desktop. This server only provides access to public documentation content. It cannot access your Redpanda Cloud account, clusters, or any private data. This is useful for getting help with Redpanda concepts and examples without connecting your actual Redpanda environment. For setup instructions, see xref:home:ROOT:mcp-setup.adoc[]. +| Best for +| Platform operations, quick admin tasks, incident response +| Data analysis, workflow automation, team-shared tools +|=== == Which should I use? -Use the **Redpanda Cloud MCP Server** to operate your Redpanda Cloud account quickly from your laptop. +Choose based on what you want to accomplish: -Use the **Remote MCP** to provide reusable tools for your team, running inside the cluster, authored with Redpanda Connect. +**Use the MCP server for the Redpanda Cloud API** when you want to: + +* Manage Redpanda Cloud resources without memorizing CLI commands +* Quickly create test clusters, topics, or users +* Inspect cluster health during incidents +* Onboard team members who prefer natural language over APIs + +**Use Remote MCP** when you want to: + +* Build tools that access your business data in Redpanda topics +* Create reusable tools shared across your team +* Connect AI agents to external systems (databases, APIs, LLMs) +* Run tools close to your data with managed infrastructure + +You can use both options together. For example, use the MCP server for the Redpanda Cloud API to create a cluster, then deploy Remote MCP tools to analyze data in that cluster. == Get started -* xref:ai-agents:mcp/local/quickstart.adoc[] -* xref:ai-agents:mcp/remote/quickstart.adoc[] +* xref:ai-agents:mcp/local/quickstart.adoc[]: Connect Claude to your Redpanda Cloud account +* xref:ai-agents:mcp/remote/quickstart.adoc[]: Build and deploy custom MCP tools + +== Suggested reading + +* xref:home:ROOT:mcp-setup.adoc[]: Access Redpanda documentation through AI agents (read-only, no Cloud access required) diff --git a/modules/ROOT/pages/mcp/remote/admin-guide.adoc b/modules/ROOT/pages/mcp/remote/admin-guide.adoc index 8df0ea4..d4e47e3 100644 --- a/modules/ROOT/pages/mcp/remote/admin-guide.adoc +++ b/modules/ROOT/pages/mcp/remote/admin-guide.adoc @@ -1,5 +1,12 @@ = Remote MCP Server Administration Guide :description: Overview of administrative tasks for managing MCP servers in Redpanda Cloud. +:page-topic-type: overview +:personas: platform_admin, ai_agent_developer +// Reader journey: "I operate and maintain" +// Learning objectives - what readers can learn from this page: +:learning-objective-1: Identify available MCP server administrative tasks +:learning-objective-2: Describe how to use the Data Plane API for programmatic management +:learning-objective-3: Describe the server lifecycle stages This guide provides an overview of administrative tasks for MCP servers. Use these resources to manage your MCP servers throughout their lifecycle, from creation to deletion. @@ -51,6 +58,6 @@ Access tokens expire after 1 hour. To refresh, make the authentication request a == Next steps -* xref:ai-agents:mcp/remote/developer-guide.adoc[Build custom tools] for your specific use cases. +* xref:ai-agents:mcp/remote/best-practices.adoc[Learn best practices] for building robust tools. * xref:develop:connect/configuration/secret-management.adoc[Manage secrets] used by MCP server tools. -* xref:billing:billing.adoc#remote-mcp-billing-metrics[Understand MCP billing] to optimize costs. +* xref:billing:billing.adoc#remote-mcp-billing-metrics[Review MCP billing] to optimize costs. diff --git a/modules/ROOT/pages/mcp/remote/best-practices.adoc b/modules/ROOT/pages/mcp/remote/best-practices.adoc new file mode 100644 index 0000000..28df408 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/best-practices.adoc @@ -0,0 +1,42 @@ += MCP Tool Design +:description: Design effective MCP tool interfaces with clear names, descriptions, and input properties. +:page-topic-type: best-practices +:personas: ai_agent_developer +// Reader journey: "I want AI clients to discover and use my tools effectively" +// Learning objectives - what readers should be able to do after reading this page: +:learning-objective-1: Write tool names and descriptions that help AI clients select the right tool +:learning-objective-2: Define input properties with appropriate types and constraints +:learning-objective-3: Design focused tools that complete quickly + +After xref:ai-agents:mcp/remote/create-tool.adoc[creating your first tool], apply these design guidelines so AI clients can discover, understand, and invoke your tools correctly. + +After reading this page, you will be able to: + +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} + +[[tool-discovery]] +== Tool discovery + +include::redpanda-connect:ai-agents:partial$mcp/best-practices/mcp-metadata-design.adoc[] + +[[tool-execution]] +== Tool execution + +include::redpanda-connect:ai-agents:partial$mcp/best-practices/tool-implementation-practices.adoc[] + +== Complete example + +This example combines all the best practices: + +[source,yaml] +---- +include::redpanda-connect:ai-agents:example$best-practices/mcp-metadata/search-customer-orders.yaml[tags=complete-example] +---- + +== Next steps + +* xref:ai-agents:mcp/remote/create-tool.adoc#secrets[Use secrets]: Store credentials securely in the Secrets Store +* xref:ai-agents:mcp/remote/tool-patterns.adoc[]: Find reusable patterns including validation, error handling, and response formatting +* xref:ai-agents:mcp/remote/troubleshooting.adoc[]: Diagnose common issues diff --git a/modules/ROOT/pages/mcp/remote/concepts.adoc b/modules/ROOT/pages/mcp/remote/concepts.adoc new file mode 100644 index 0000000..16fe964 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/concepts.adoc @@ -0,0 +1,165 @@ += MCP Tool Execution and Components +:description: Understand the MCP execution model, choose the right component type, and use traces for observability. +:page-aliases: ai-agents:mcp/remote/understanding-mcp-tools.adoc +:page-topic-type: concepts +:personas: ai_agent_developer, streaming_developer +// Reader journey: "I want to understand how it works" +// Learning objectives - what readers should know after reading this page: +:learning-objective-1: Describe the request/response execution model +:learning-objective-2: Choose the right component type for a use case +:learning-objective-3: Interpret MCP server traces for debugging and monitoring + +This page explains how MCP tools execute and how to choose the right component type for your use case. + +After reading this page, you will be able to: + +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} + +// Component mapping - single-sourced from partial +include::redpanda-connect:ai-agents:partial$mcp/concepts/component-mapping.adoc[] + +// Execution model - single-sourced from partial +include::redpanda-connect:ai-agents:partial$mcp/concepts/execution-model.adoc[] + +[[component-selection]] +== Choose the right component type + +// Component selection guide - single-sourced from partial +include::redpanda-connect:ai-agents:partial$mcp/concepts/component-selection.adoc[] + +[[execution-log]] +== Execution log and observability + +Every MCP server automatically emits OpenTelemetry traces to a topic called `redpanda.otel_traces`. These traces provide detailed observability into your MCP server's operations, creating a complete execution log. + +=== Traces and spans + +OpenTelemetry traces provide a complete picture of how a request flows through your system: + +* A _trace_ represents the entire lifecycle of a request (for example, a tool invocation from start to finish). +* A _span_ represents a single unit of work within that trace (such as a data processing operation or an external API call). +* A trace contains one or more spans organized hierarchically, showing how operations relate to each other. + +With 100% sampling, every operation is captured, creating a complete execution log that you can use for debugging, monitoring, and performance analysis. + +=== How Redpanda stores traces + +The `redpanda.otel_traces` topic stores OpenTelemetry spans in JSON format, following the https://opentelemetry.io/docs/specs/otel/protocol/[OpenTelemetry Protocol (OTLP)^] specification. A Protobuf schema named `redpanda.otel_traces-value` is also automatically registered with the topic, enabling clients to deserialize trace data correctly. + +The `redpanda.otel_traces` topic and its schema are managed automatically by Redpanda. If you delete either the topic or the schema, they are recreated automatically. However, deleting the topic permanently deletes all trace data, and the topic comes back empty. Do not produce your own data to this topic. It is reserved for OpenTelemetry traces. + +Each span in the execution log represents a specific operation performed by your MCP server, such as: + +* Tool invocation requests +* Data processing operations +* External API calls +* Error conditions +* Performance metrics + +=== Topic configuration and lifecycle + +The `redpanda.otel_traces` topic has a predefined retention policy. Configuration changes to this topic are not supported. If you modify settings, Redpanda reverts them to the default values. + +The topic persists in your cluster even after all MCP servers are deleted, allowing you to retain historical trace data for analysis. + +Trace data may contain sensitive information from your tool inputs and outputs. Consider implementing appropriate glossterm:ACL[,access control lists (ACLs)] for the `redpanda.otel_traces` topic, and review the data in traces before sharing or exporting to external systems. + +=== Understand the trace structure + +Each span captures a unit of work. Here's what a typical MCP tool invocation looks like: + +[,json] +---- +{ + "traceId": "71cad555b35602fbb35f035d6114db54", + "spanId": "43ad6bc31a826afd", + "name": "http_processor", + "attributes": [ + {"key": "city_name", "value": {"stringValue": "london"}}, + {"key": "result_length", "value": {"intValue": "198"}} + ], + "startTimeUnixNano": "1765198415253280028", + "endTimeUnixNano": "1765198424660663434", + "instrumentationScope": {"name": "rpcn-mcp"}, + "status": {"code": 0, "message": ""} +} +---- + +Key elements to understand: + +* **`traceId`**: Links all spans belonging to the same request. Use this to follow a tool invocation through its entire lifecycle. +* **`name`**: The tool name (`http_processor` in this example). This tells you which tool was invoked. +* **`instrumentationScope.name`**: When this is `rpcn-mcp`, the span represents an MCP tool. When it's `redpanda-connect`, it's internal processing. +* **`attributes`**: Context about the operation, like input parameters or result metadata. +* **`status.code`**: `0` means success, `2` means error. + +=== Parent-child relationships + +Traces show how operations relate. A tool invocation (parent) may trigger internal operations (children): + +[,json] +---- +{ + "traceId": "71cad555b35602fbb35f035d6114db54", + "spanId": "ed45544a7d7b08d4", + "parentSpanId": "43ad6bc31a826afd", + "name": "http", + "instrumentationScope": {"name": "redpanda-connect"}, + "status": {"code": 0, "message": ""} +} +---- + +The `parentSpanId` links this child span to the parent tool invocation. Both share the same `traceId`, so you can reconstruct the complete operation. + +=== Error events in traces + +When something goes wrong, traces capture error details: + +[,json] +---- +{ + "traceId": "71cad555b35602fbb35f035d6114db54", + "spanId": "ba332199f3af6d7f", + "parentSpanId": "43ad6bc31a826afd", + "name": "http_request", + "events": [ + { + "name": "event", + "timeUnixNano": "1765198420254169629", + "attributes": [{"key": "error", "value": {"stringValue": "type"}}] + } + ], + "status": {"code": 0, "message": ""} +} +---- + +The `events` array captures what happened and when. Use `timeUnixNano` to see exactly when the error occurred within the operation. + +=== Traces compared to audit logs + +OpenTelemetry traces are designed for observability and debugging, not audit logging or compliance. + +Traces provide: + +* Hierarchical view of request flow through your system (parent-child span relationships) +* Detailed timing information for performance analysis +* Ability to reconstruct execution paths and identify bottlenecks +* Insights into how operations flow through distributed systems + +Traces are not: + +* Immutable audit records for compliance purposes +* Designed for "who did what" accountability tracking + +For monitoring tasks like consuming traces, debugging failures, and measuring performance, see xref:ai-agents:mcp/remote/monitor-activity.adoc[]. + +== Next steps + +Continue your learning journey with these resources: + +* xref:ai-agents:mcp/remote/create-tool.adoc[]: Create custom tools step by step +* xref:ai-agents:mcp/remote/best-practices.adoc[]: Apply naming and design guidelines +* xref:ai-agents:mcp/remote/tool-patterns.adoc[]: Find reusable patterns +* xref:ai-agents:mcp/remote/troubleshooting.adoc[]: Diagnose common issues diff --git a/modules/ROOT/pages/mcp/remote/create-tool.adoc b/modules/ROOT/pages/mcp/remote/create-tool.adoc new file mode 100644 index 0000000..73a0805 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/create-tool.adoc @@ -0,0 +1,423 @@ += Create an MCP Tool +:description: Create an MCP tool with the correct YAML structure, metadata, and parameter mapping. +:page-topic-type: how-to +:personas: ai_agent_developer, streaming_developer, data_engineer +// Reader journey: "I want to create a tool for my AI agent" +// Learning objectives - what readers can do after reading this page: +:learning-objective-1: Create a tool with the correct structure and MCP metadata +:learning-objective-2: Map MCP parameters to component configuration fields using Bloblang +:learning-objective-3: Test tools using the MCP Inspector + +After xref:ai-agents:mcp/remote/quickstart.adoc[deploying your first MCP server], create custom tools that AI clients can discover and invoke. This guide walks you through the process using any Redpanda Connect component. + +After reading this page, you will be able to: + +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} + +== Prerequisites + +* A Redpanda Cloud cluster with *Remote MCP* enabled. +* You can describe the MCP execution model (see xref:ai-agents:mcp/remote/concepts.adoc#execution-model[The MCP execution model]) +* You have chosen the right component type for your use case (see xref:ai-agents:mcp/remote/concepts.adoc#component-selection[Choose the right component type]) + +== Create the tool + +In Redpanda Cloud, you create tools directly in the Cloud Console or using the Data Plane API. + +[tabs] +====== +Cloud Console:: ++ +-- +. Log in to the link:https://cloud.redpanda.com/[Redpanda Cloud Console^]. + +. Navigate to *Remote MCP* and either create a new MCP server or edit an existing one. + +. In the *Tools* section, click *Add Tool*. + +. Enter the YAML configuration for your tool. + +. Click *Lint* to validate your configuration. + +. Click *Save* to deploy the tool. +-- + +Data Plane API:: ++ +-- +Use the link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_createmcpserver[Create MCP Server] or link:/api/doc/cloud-dataplane/operation/operation-mcpserverservice_updatemcpserver[Update MCP Server] endpoints to add tools programmatically. +-- +====== + +[[yaml-structure]] +== Add the tool structure + +An MCP tool wraps a xref:develop:connect/components/about.adoc[Redpanda Connect component] and exposes it to AI clients. Each tool has three parts: + +* **Label**: The tool name AI clients see +* **Component configuration**: A Redpanda Connect component (processor, input, output, or cache) that does the work +* **MCP metadata**: Describes the tool's purpose and parameters for AI clients + +Here's an example using the xref:develop:connect/components/processors/sql_select.adoc[`sql_select` processor]: + +[source,yaml] +---- +label: lookup-customer # <1> + +sql_select: # <2> + driver: postgres + dsn: "${secrets.DATABASE_URL}" + table: customers + columns: ["id", "name", "email", "plan"] + where: id = ? + args_mapping: '[this.customer_id]' + +meta: # <3> + mcp: + enabled: true + description: "Look up a customer by ID and return their profile." + properties: + - name: customer_id + type: string + description: "The customer's unique identifier" + required: true +---- + +<1> **Label**: Becomes the tool name. +<2> **Component**: The `sql_select` processor configured to query a database. +<3> **MCP metadata**: Tells AI clients what this tool does and what parameters it accepts. + +Each tool configuration must contain exactly one component. The component type is inferred from the type you select when creating or editing the MCP server. The component can be a processor, input, output, or cache. + +The following sections show how to structure tools for each component type. + +=== Label naming rules + +include::redpanda-connect:ai-agents:partial$mcp/create-tool/label-naming-rules.adoc[] + +=== Component types + +xref:develop:connect/components/processors/about.adoc[Processors] transform, filter, or enrich data. Use a `processors:` array with one or more processors: + +.Processor tool +[source,yaml] +---- +label: enrich-order + +processors: + - http: + url: "https://api.example.com/lookup" + verb: GET + +meta: + mcp: + enabled: true + description: "Enrich order with customer data" +---- + +xref:develop:connect/components/inputs/about.adoc[Inputs] read data from sources, xref:develop:connect/components/outputs/about.adoc[outputs] write data to destinations, and xref:develop:connect/components/caches/about.adoc[caches] store and retrieve data. Define these components directly at the top level: + +.Input tool +[source,yaml] +---- +label: read-events + +redpanda: # <1> + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: ["events"] + consumer_group: "mcp-reader" + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${secrets.MCP_USERNAME}" + password: "${secrets.MCP_PASSWORD}" + +meta: + mcp: + enabled: true + description: "Read events from Redpanda" +---- +<1> The component name (`redpanda`) is at the top level, not wrapped in `input:`. + +.Output tool +[source,yaml] +---- +label: publish-event + +redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: "processed-events" + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${secrets.MCP_USERNAME}" + password: "${secrets.MCP_PASSWORD}" + +meta: + mcp: + enabled: true + description: "Publish event to Redpanda" +---- + +.Cache tool +[source,yaml] +---- +label: session-cache + +memory: + default_ttl: 300s + +meta: + mcp: + enabled: true + description: "In-memory cache for session data" +---- + +Outputs can include a `processors:` section to transform data before publishing: + +.Output tool with processors +[source,yaml] +---- +label: publish-with-timestamp + +processors: + - mutation: | + root = this + root.published_at = now() + +redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: "processed-events" + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${secrets.MCP_USERNAME}" + password: "${secrets.MCP_PASSWORD}" + +meta: + mcp: + enabled: true + description: "Add timestamp and publish to Redpanda" +---- + +See xref:ai-agents:mcp/remote/tool-patterns.adoc#outputs-with-processors[outputs with processors] for more examples. + +Do not wrap components in `input:`, `output:`, or `cache:` blocks. This syntax is for pipelines, not MCP tools. + +[[mcp-metadata]] +=== MCP metadata fields + +The `meta.mcp` block defines how AI clients discover and interact with your tool. These fields control tool visibility, naming, and input parameters. + +include::redpanda-connect:ai-agents:partial$mcp/create-tool/mcp-metadata-fields-table.adoc[] + +==== Property fields + +include::redpanda-connect:ai-agents:partial$mcp/create-tool/property-fields-table.adoc[] + +[[property-restrictions]] +==== Property restrictions by component type + +include::redpanda-connect:ai-agents:partial$mcp/create-tool/property-restrictions-table.adoc[] + +[[parameter-mapping]] +== Map parameters to component fields + +When an AI client calls your tool, the `arguments` object becomes the message body. You can access these arguments using xref:develop:connect/guides/bloblang/about.adoc[Bloblang], but the syntax depends on where you're using it: + +* **Inside Bloblang contexts** (mutation, mapping, args_mapping): Use `this.field_name` +* **Inside string fields** (URLs, topics, headers): Use interpolation `${! json("field_name") }` + +=== In Bloblang contexts + +Use `this` to access message fields directly in processors like `mutation`, `mapping`, or in `args_mapping` fields: + +[source,yaml] +---- +mutation: | + root.search_query = this.query.lowercase() + root.max_results = this.limit.or(10) +---- + +[source,yaml] +---- +sql_select: + table: orders + where: customer_id = ? AND status = ? + args_mapping: '[this.customer_id, this.status.or("active")]' +---- + +=== In string fields (interpolation) + +Use `${! ... }` interpolation to embed Bloblang expressions inside string values like URLs or topic names: + +[source,yaml] +---- +http: + url: 'https://api.weather.com/v1/current?city=${! json("city") }&units=${! json("units").or("metric") }' +---- + +[source,yaml] +---- +redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] # <1> + topic: '${! json("topic_name") }' # <2> +---- +<1> `$\{VAR}` without `!` is environment variable substitution, not Bloblang. +<2> `${! ... }` with `!` is Bloblang interpolation that accesses message data. + +TIP: For more on Bloblang syntax, see xref:develop:connect/guides/bloblang/about.adoc[]. For interpolation details, see xref:develop:connect/configuration/interpolation.adoc[]. + +=== Provide defaults for optional parameters + +Use `.or(default)` to handle missing optional parameters: + +[source,yaml] +---- +mutation: | + root.city = this.city # Required - will error if missing + root.units = this.units.or("metric") # Optional with default + root.limit = this.limit.or(10).number() # Optional, converted to number +---- + +Declare which parameters are required in your `meta.mcp.properties`: + +[source,yaml] +---- +properties: + - name: city + type: string + description: "City name to look up" + required: true + - name: units + type: string + description: "Temperature units: 'metric' or 'imperial' (default: metric)" + required: false +---- + +[[secrets]] +== Use the Secrets Store + +Never hardcode credentials, API keys, or connection strings in your tool configurations. Use the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] to securely manage sensitive values. + +Reference secrets using `${secrets.SECRET_NAME}` syntax: + +[source,yaml] +---- +http: + url: "https://api.example.com/data" + headers: + Authorization: "Bearer ${secrets.API_TOKEN}" + +sql_select: + driver: postgres + dsn: "${secrets.DATABASE_URL}" + table: customers +---- + +When you add secret references to your tool configuration, the Cloud Console automatically detects them and provides an interface to create the required secrets. + +=== Secrets best practices + +* Use uppercase snake_case for secret names (for example, `DATAPLANE_TOKEN`, `API_KEY`). +* Rotate secrets periodically. +* Follow the principle of least privilege. Only request the scopes and roles your tool actually needs. + +See xref:ai-agents:mcp/remote/best-practices.adoc#secrets[Secrets management] for more guidance. + +== Test the tool + +. Click *Lint* to validate your configuration. + +. Deploy the MCP server. + +. Use the *MCP Inspector* tab to test tool calls: ++ +* Select the tool from the list +* Enter test parameter values +* Click *Run Tool* to execute +* Review the response + +. Connect an AI client and verify the tool appears: ++ +[,bash] +---- +rpk cloud mcp proxy \ + --cluster-id \ + --mcp-server-id \ + --install --client claude-code +---- + +. Test end-to-end with realistic prompts to verify the AI client uses your tool correctly. + +== Complete example + +Here's a complete tool that wraps the `http` processor to fetch weather data: + +[source,yaml] +---- +label: get-weather + +processors: + # Validate and sanitize input + - label: validate_city + mutation: | + root.city = if this.city.or("").trim() == "" { + throw("city is required") + } else { + this.city.trim().lowercase().re_replace_all("[^a-z\\s\\-]", "") + } + root.units = this.units.or("metric") + + # Fetch weather data + - label: fetch_weather + try: + - http: + url: 'https://wttr.in/${! json("city") }?format=j1' + verb: GET + timeout: 10s + + - mutation: | + root.weather = { + "location": this.nearest_area.0.areaName.0.value, + "country": this.nearest_area.0.country.0.value, + "temperature_c": this.current_condition.0.temp_C, + "temperature_f": this.current_condition.0.temp_F, + "condition": this.current_condition.0.weatherDesc.0.value, + "humidity": this.current_condition.0.humidity, + "wind_kph": this.current_condition.0.windspeedKmph + } + + # Handle errors gracefully + - label: handle_errors + catch: + - mutation: | + root.error = true + root.message = "Failed to fetch weather: " + error() + +meta: + mcp: + enabled: true + description: "Get current weather for a city. Returns temperature, conditions, humidity, and wind speed." + properties: + - name: city + type: string + description: "City name (e.g., 'London', 'New York', 'Tokyo')" + required: true + - name: units + type: string + description: "Temperature units: 'metric' or 'imperial' (default: metric)" + required: false +---- + +== Next steps + +* xref:ai-agents:mcp/remote/best-practices.adoc[]: Apply naming and design guidelines. +* xref:ai-agents:mcp/remote/tool-patterns.adoc[]: Find patterns for databases, APIs, and Redpanda. +* xref:ai-agents:mcp/remote/troubleshooting.adoc[]: Diagnose common issues. +* xref:develop:connect/components/about.adoc[]: Browse all available components. diff --git a/modules/ROOT/pages/mcp/remote/developer-guide.adoc b/modules/ROOT/pages/mcp/remote/developer-guide.adoc deleted file mode 100644 index 0db1514..0000000 --- a/modules/ROOT/pages/mcp/remote/developer-guide.adoc +++ /dev/null @@ -1,407 +0,0 @@ -= Build Remote MCP Servers in Redpanda Cloud -:description: Learn how to write and deploy MCP servers in Redpanda Cloud. This guide covers concepts, patterns, and best practices. - - -This guide teaches you how to build xref:ai-agents:mcp/remote/overview.adoc[MCP servers] that are managed in Redpanda Cloud. MCP servers run inside your Redpanda Cloud cluster and expose tools that AI clients can call using MCP. - -== Prerequisites - -* Access to a Redpanda Cloud cluster. -* Ability to manage the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] entries. -* At least version 25.2.5 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer]. -* (Optional) An AI assistant like Claude or Claude Code for testing. - -TIP: For a quickstart, see xref:ai-agents:mcp/remote/quickstart.adoc[]. - -You should also be familiar with YAML, HTTP APIs, and basic event-stream processing concepts. - -== Concepts and architecture - -Remote MCP server:: A managed, hosted MCP service deployed to your cluster. You write each tool's logic using Redpanda Connect configuration and annotate them with MCP metadata so clients can discover and invoke them. - -Redpanda Connect:: A framework for building event-driven data pipelines. Tools inside your MCP servers are implemented as Redpanda Connect configurations that run inside your Redpanda Cloud cluster. - -Tool:: A single request/response operation exposed to MCP. - -Secrets:: Credentials and tokens that you want to use in your tools. These values must be stored in the Secrets Store and referenced as `${secrets.NAME}`. Use uppercase snakecase for secret names (such as `DATAPLANE_TOKEN`). - -== Development workflow - -. <>: Navigate to Remote MCP in Redpanda Cloud Console, create a new server, and configure server metadata (display name, description, tags, resources, service account). -. <>: Annotate MCP metadata with `meta.mcp.enabled: true`, provide a concise description, and declare parameters. -. <>: Create secrets in the Secrets Store for any credentials. Never inline secrets in YAML. -. <>: Build your MCP tool using Redpanda Connect components. -. <>: Validate your configuration, catch schema errors, then deploy and test with the MCP Inspector. -. <>: Install a proxy entry with `rpk cloud mcp proxy` in your AI assistant MCP configuration, or connect with your own MCP client. -. <>: Add temporary `log` processors, adjust timeouts/retries, and right-size resources. - -[[access]] -== Create MCP server and configure metadata - -. Log into your link:https://cloud.redpanda.com[Redpanda Cloud Console^]. -. Select your cluster from the cluster list. -. In the left sidebar, navigate to *Remote MCP*. -. If this is your first MCP server, you'll see an empty list with a *Create MCP Server* button. -. Click *Create MCP Server* and configure the *Server Metadata*: -+ -* *Display Name*: A human-friendly name for your server (for example `weather-tool`, `customer-lookup`). -* *Description*: Brief description of what your server does. -* *Tags*: Key-value pairs for organizing and categorizing your MCP servers. See <> for details. -* *Resources*: Choose the compute resources (XSmall through XLarge) based on your expected workload. -* *Service Account*: A service account name is pre-filled and will be created automatically. -+ -. Click *Next* to define your tools using YAML configuration. See <> to design your tool contract. - -[[tags]] -== Organize servers with tags - -Tags are key-value metadata that help you organize, categorize, and filter your MCP servers. Use tags to track ownership, environment, cost allocation, or any other organizational dimension relevant to your team. - -=== Common tagging strategies - -[cols="1,2,2"] -|=== -| Strategy | Description | Examples - -| Ownership -| Track which team or individual owns the MCP server. -| `owner=platform-team`, `team=data-engineering` - -| Environment -| Identify the deployment environment. -| `env=production`, `env=staging`, `env=development` - -| Cost allocation -| Allocate costs to specific departments or projects. -| `cost-center=marketing`, `project=analytics` - -| Purpose -| Describe the use case or data domain. -| `purpose=customer-data`, `use-case=real-time-alerts` -|=== - -=== Reserved tag names - -The following tag names are reserved and cannot be used. These tags are system-managed: - -* `service_account_id`: Automatically assigned to track the service account associated with the MCP server. -* `secret_id`: Automatically assigned to track the service account secret used by the MCP server. - -=== Best practices - -* Use consistent naming conventions across your organization (for example, always lowercase with hyphens or underscores). -* Document your tagging strategy so all team members use tags consistently. -* Use tags for filtering and searching MCP servers in the Cloud Console and API. -* Review and update tags periodically to keep them accurate as servers evolve. - -[[contract]] -== Design the tool contract and MCP metadata - -Each MCP tool must declare its interface using `meta.mcp` metadata. This metadata allows AI clients to discover and invoke the tool correctly. - -Define a clear, stable interface for each tool. Keep the description task-oriented and keep properties to a minimum. - -[source,yaml] ----- -meta: - mcp: - enabled: true <1> - description: "Publishes a message to a specified Redpanda topic" <2> - properties: <3> - - name: message - type: string - description: "The message content to publish" - required: true - - name: topic_name - type: string - description: "The Redpanda topic to publish to" - required: true ----- - -<1> Set `meta.mcp.enabled: true` to expose the tool using MCP. -<2> A concise description that explains what the tool does. This should be understandable by an AI model. -<3> Define the properties that AI clients can provide when calling this tool. -+ -Properties define the inputs that AI clients can provide when calling your tool. Each property has: - -* **name**: The parameter name AI clients will use -* **type**: Data type (`string`, `number`, or `boolean`) -* **description**: Human-readable explanation of what this property does -* **required**: Whether the property is mandatory (`true`) or optional (`false`) - -Property guidance: - -* Use descriptive names that clearly indicate the property's purpose. -* Provide clear descriptions that explain both the purpose and any constraints. -* Mark only mandatory fields as required. Prefer optional properties with sensible defaults. -* Document default values in the description and implement them in your tool logic. -* Consider component type restrictions: `input` components only support a `count` property, `cache` components have no custom properties, and `output` components receive properties as arrays for batch operations. - -After defining your tool contract, implement the logic to handle input validation, defaults, and the main processing steps. - -[[provision-secrets]] -== Provision secrets - -All credentials and sensitive values must be stored in the Redpanda Cloud xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. - -=== Creating secrets in the Cloud Console - -When you reference secrets in your tool's YAML configuration using `${secrets.SECRET_NAME}`, the Cloud Console automatically detects these references and provides an interface next to the configuration editor where you can: - -. Enter the secret values directly -. Create the secrets in the Secrets Store with a single click - -This inline secret creation workflow simplifies the development process by letting you configure secrets as you build your tools, without navigating away to the Secrets Store. - -Alternatively, you can manually create and manage secrets directly in the xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. - -=== Best practices - -- Reference secrets as `${secrets.NAME}` in your YAML configuration. -- Never commit secrets to Git or reference them directly inline in configuration files. -- Use uppercase snakecase for secret names (such as `DATAPLANE_TOKEN`). -- Rotate secrets in the Secrets Store as needed. -- Only request the scopes/roles required by your tool (principle of least privilege). - -See an example of using secrets in xref:ai-agents:mcp/remote/pipeline-patterns.adoc#secrets[MCP patterns]. - -[[pipeline-patterns]] -== Build your MCP tool - -Use Redpanda Connect components to implement the logic of your MCP tool. Here are some best practices: - -* **Single responsibility**: Each tool should do one thing well. -* **Descriptive naming**: Use clear, specific labels like `fetch-user-profile` instead of generic names like `get-data`. The top-level label becomes the tool's name in the MCP server. -* **Input validation**: Always validate and sanitize user inputs using xref:develop:connect/guides/bloblang/about.adoc[Bloblang]. -* **Error handling**: Provide meaningful error messages. -* **Documentation**: Write clear descriptions that explain what the tool does and what it returns. - -For common patterns and examples, see xref:ai-agents:mcp/remote/pipeline-patterns.adoc[]. - -Here's a complete example that demonstrates best practices: - -[source,yaml] ----- -include::ai-agents:example$weather_service.yaml[] ----- - -=== YAML configuration rules - -Each YAML configuration (tool) should contain exactly one component type. The component type is inferred from the type you choose in the dropdown when creating or editing the MCP server. Valid component types are: - -* xref:develop:connect/components/inputs/about.adoc[`input`] (for data sources) -* xref:develop:connect/components/outputs/about.adoc[`output`] (for data sinks) -* xref:develop:connect/components/processors/about.adoc[`processor`] (for data transformations and data access) -* xref:develop:connect/components/caches/about.adoc[`cache`] (for caching intermediate results) - -=== Property restrictions by component type - -Different component types have different property capabilities when exposed as MCP tools: - -[cols="1,2,2"] -|=== -| Component Type | Property Support | Details - -| `input` -| Only supports `count` property -| AI clients can specify how many messages to read, but you cannot define custom properties. - -| `cache` -| No custom properties -| Properties are hardcoded to `key` and `value` for cache operations. - -| `output` -| Custom properties supported -| AI sees properties as an array for batch operations: `[{prop1, prop2}, {prop1, prop2}]`. - -| `processor` -| Custom properties supported -| You can define any properties needed for data processing operations. -|=== - -=== Configuration examples - -.Correct example -[source,yaml] ----- -label: event-reader -redpanda: - seed_brokers: [ "${REDPANDA_BROKERS}" ] - topics: [ "events" ] - consumer_group: "mcp-reader" - -meta: - mcp: - enabled: true - description: "Consume events from Redpanda" ----- - -.Correct example -[source,yaml] ----- -label: fetch-example-data -processors: - - label: safe_operation - try: - - http: - url: "https://api.example.com/data" - timeout: "10s" - - mutation: | - root = this.merge({"processed": true}) - - - label: handle_errors - catch: - - mutation: | - root = { - "error": "Operation failed", - "details": error() - } ----- - -.Incorrect (do not include the input wrapper) -[source,yaml] ----- -label: incorrect-example -input: - redpanda: - seed_brokers: [ "${REDPANDA_BROKERS}" ] - topics: [ "events" ] ----- - -.Incorrect (multiple component types in one file) -[source,yaml] ----- -label: incorrect-example -input: - redpanda: { ... } -processors: - - mutation: { ... } -output: - redpanda: { ... } ----- - -[[lint]] -== Lint and deploy your MCP server - -=== Lint your configuration - -Before deploying, validate your YAML configuration to catch syntax errors and schema violations: - -. In the Redpanda Cloud Console, after entering your YAML configuration, click *Lint*. -. The linter checks for: -+ -* Valid YAML syntax -* Correct Redpanda Connect component schemas -* Required MCP metadata fields -* Secret reference formatting -* Component configuration completeness - -. Fix any errors shown in the linting output before proceeding to deployment. -. A successful lint shows no errors and confirms your configuration is ready to deploy. - -TIP: Always lint your configuration after making changes. This catches issues early and prevents deployment failures. - -=== Deploy your MCP server - -. Click *Create MCP Server* to deploy the server. -. Monitor the *Status* column. It will show one of: -+ -* *Starting*: Server is being deployed. -* *Running*: Server is active and ready to receive requests. -* *Error*: Check logs for deployment issues. - -=== Test with MCP Inspector - -. When your server status shows *Running*, click on the server name. -. Navigate to the *MCP Inspector* tab. -. This built-in tool lets you: -+ -* View all available tools your server exposes. -* Test tool calls with sample parameters. -* See request/response data. -* Debug issues without setting up external clients. - -=== Manage your MCP server - -From the MCP Servers list, you can: - -* *View logs*: Click the server name, then go to the *Logs* tab to see execution logs and errors. -* *Update configuration*: Edit the YAML and redeploy. -* *Start/Stop*: Control server lifecycle. -* *Delete*: Remove the server and clean up resources. - -See xref:ai-agents:mcp/remote/admin-guide.adoc[]. - -[[test]] -== Authenticate and connect your MCP client - -To connect your local MCP client to your MCP server: - -. First, authenticate to Redpanda Cloud: -+ -[source,bash] ----- -rpk cloud login ----- -+ -This opens a browser window for sign-in and stores your authentication token locally. - -. Install the MCP proxy for your client (Claude/Claude Code). -+ -For BYOC and Dedicated clusters, use: -+ -[,bash] ----- -rpk cloud mcp proxy \ ---cluster-id \ <1> ---mcp-server-id \ <2> ---install --client claude-code ----- -+ -For Serverless clusters, use: -+ -[,bash] ----- -rpk cloud mcp proxy \ ---serverless-cluster-id \ <1> ---mcp-server-id \ <2> ---install --client claude-code ----- -+ --- -<1> The target Redpanda Cloud cluster ID where your MCP server is hosted. -<2> The unique ID of your deployed MCP server --- -+ -TIP: You can find this command and the IDs in the *Connection* tab of your MCP server in Redpanda Cloud. -+ -The proxy acts as a bridge between your local client and the MCP server running in your cluster. It: -+ -* Connects to your MCP server using your authentication token -* Discovers and registers all tools from the Remote server locally -* Proxies MCP requests from your client to the Remote server -* Handles authentication by injecting your token into each request - -. Restart your client and invoke your tool. - -:note-caption: Building your own agent? - -[NOTE] -==== -You can implement the auth workflow directly against Redpanda Cloud APIs and skip the use of `rpk`. The proxy is a convenience, not a requirement for MCP servers. For code examples, see the *Connection* tab in your MCP server in Redpanda Cloud. -==== - -:note-caption: Note - -[[observe]] -== Observe and debug your MCP tools - -You can view execution logs in the Redpanda Cloud Console under your MCP server's *Logs* tab. - -== Suggested reading - -* xref:develop:connect/components/about.adoc[Redpanda Connect components reference] -* xref:develop:connect/guides/bloblang/about.adoc[Bloblang language guide] -* xref:develop:connect/configuration/secret-management.adoc[Secret management in Redpanda Connect] -* xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[`rpk cloud login` command reference] -* xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-proxy.adoc[`rpk cloud mcp proxy` command reference] diff --git a/modules/ROOT/pages/mcp/remote/index.adoc b/modules/ROOT/pages/mcp/remote/index.adoc index 39771ad..1c77473 100644 --- a/modules/ROOT/pages/mcp/remote/index.adoc +++ b/modules/ROOT/pages/mcp/remote/index.adoc @@ -1,3 +1,3 @@ = Remote MCP Servers for Redpanda Cloud -:description: Enable AI assistants to directly interact with your Redpanda Cloud clusters and streaming data. +:description: Enable AI agents to directly interact with your Redpanda Cloud clusters and streaming data. :page-layout: index diff --git a/modules/ROOT/pages/mcp/remote/manage-servers.adoc b/modules/ROOT/pages/mcp/remote/manage-servers.adoc index e0aeb6a..d09c0ab 100644 --- a/modules/ROOT/pages/mcp/remote/manage-servers.adoc +++ b/modules/ROOT/pages/mcp/remote/manage-servers.adoc @@ -1,5 +1,12 @@ = Manage Remote MCP Servers :description: Learn how to edit, stop, start, and delete MCP servers in Redpanda Cloud. +:page-topic-type: how-to +:personas: platform_admin, ai_agent_developer +// Reader journey: "I operate and maintain" +// Learning objectives - what readers can accomplish from this page: +:learning-objective-1: Edit MCP server configurations +:learning-objective-2: Stop and start MCP servers +:learning-objective-3: Delete MCP servers safely This guide shows you how to manage the lifecycle of MCP servers, including editing configurations, pausing servers to save costs, and permanent deletion. @@ -13,7 +20,7 @@ You can update the configuration, resources, or metadata of an MCP server at any [tabs] ===== -Cloud UI:: +Cloud Console:: + -- . In the Redpanda Cloud Console, navigate to *Remote MCP*. @@ -56,7 +63,7 @@ Stopping a server pauses all tool execution and releases compute resources, but [tabs] ===== -Cloud UI:: +Cloud Console:: + -- . In the Redpanda Cloud Console, navigate to *Remote MCP*. @@ -88,7 +95,7 @@ Resume a stopped server to restore its functionality. [tabs] ===== -Cloud UI:: +Cloud Console:: + -- . In the Redpanda Cloud Console, navigate to *Remote MCP*. @@ -119,7 +126,7 @@ Deleting a server is permanent and cannot be undone. All configuration, tools, a [tabs] ===== -Cloud UI:: +Cloud Console:: + -- . In the Redpanda Cloud Console, navigate to *Remote MCP*. @@ -151,4 +158,4 @@ Deletion is immediate and permanent. Make sure you have backed up any important * xref:ai-agents:mcp/remote/scale-resources.adoc[Scale MCP server resources] to optimize performance and costs. * xref:ai-agents:mcp/remote/monitor-activity.adoc[Monitor MCP server activity] using OpenTelemetry traces. -* xref:ai-agents:mcp/remote/developer-guide.adoc[Build custom tools] for your specific use cases. +* xref:ai-agents:mcp/remote/best-practices.adoc[Learn best practices] for building robust tools. diff --git a/modules/ROOT/pages/mcp/remote/monitor-activity.adoc b/modules/ROOT/pages/mcp/remote/monitor-activity.adoc index fca49c3..11e67fc 100644 --- a/modules/ROOT/pages/mcp/remote/monitor-activity.adoc +++ b/modules/ROOT/pages/mcp/remote/monitor-activity.adoc @@ -1,73 +1,34 @@ -= Monitor Remote MCP Server Activity -:description: Learn how to monitor MCP servers using OpenTelemetry traces, track tool invocations, debug failures, and integrate with observability platforms. += Monitor MCP Server Activity +:description: How to consume traces, track tool invocations, measure performance, and debug failures in MCP servers. +:page-topic-type: how-to +:personas: platform_admin, ai_agent_developer, data_engineer +// Reader journey: "I need to accomplish X" +// Learning objectives - what readers can DO with this guide: +:learning-objective-1: Consume traces from the execution log +:learning-objective-2: Track tool invocations and measure performance +:learning-objective-3: Debug tool failures using trace data -Every MCP server automatically emits OpenTelemetry traces to a topic called `redpanda.otel_traces`. These traces provide detailed observability into your MCP server's operations, including tool invocations, processing times, errors, and resource usage. +This guide shows you how to monitor your MCP servers using the execution log. -== Prerequisites - -You must have an existing MCP server. If you do not have one, see xref:ai-agents:mcp/remote/quickstart.adoc[]. - -== Execution log - -When you create an MCP server, Redpanda captures a complete execution log by recording all operations as OpenTelemetry traces with 100% sampling. This execution log is stored in the `redpanda.otel_traces` topic. - -=== Traces and spans - -OpenTelemetry traces provide a complete picture of how a request flows through your system: - -* A *trace* represents the entire lifecycle of a request (for example, a tool invocation from start to finish). -* A *span* represents a single unit of work within that trace (such as a data processing operation or an external API call). -* A trace contains one or more spans organized hierarchically, showing how operations relate to each other. - -With 100% sampling, every operation is captured, creating a complete execution log that you can use for debugging, monitoring, and performance analysis. - -=== How Redpanda stores traces - -The `redpanda.otel_traces` topic stores OpenTelemetry spans in JSON format, following the https://opentelemetry.io/docs/specs/otel/protocol/[OpenTelemetry Protocol (OTLP)^] specification. A Protobuf schema named `redpanda.otel_traces-value` is also automatically registered with the topic, enabling clients to deserialize trace data correctly. - -The `redpanda.otel_traces` topic and its schema are managed automatically by Redpanda. If you delete either the topic or the schema, they are recreated automatically. However, deleting the topic permanently deletes all trace data, and the topic comes back empty. Do not produce your own data to this topic. It is reserved for OpenTelemetry traces. - -Each span in the execution log represents a specific operation performed by your MCP server, such as: - -* Tool invocation requests -* Data processing operations -* External API calls -* Error conditions -* Performance metrics +Use this guide to: -=== Topic configuration and lifecycle +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} -The `redpanda.otel_traces` topic has a predefined retention policy. Configuration changes to this topic are not supported. If you modify settings, Redpanda reverts them to the default values. +For conceptual background on traces, spans, and the trace data structure, see xref:ai-agents:mcp/remote/concepts.adoc#execution-log[Execution log and observability]. -The topic persists in your cluster even after all MCP servers are deleted, allowing you to retain historical trace data for analysis. - -You can create glossterm:ACL[,access control lists (ACLs)] to control access to the `redpanda.otel_traces` topic using standard Redpanda ACL operations. - -Trace data may contain sensitive information from your tool inputs and outputs. Consider implementing appropriate access controls and review the data in traces before sharing or exporting to external systems. - -=== Traces compared to audit logs - -OpenTelemetry traces are designed for observability and debugging, not audit logging or compliance: - -Traces provide: - -* Hierarchical view of request flow through your system (parent-child span relationships) -* Detailed timing information for performance analysis -* Ability to reconstruct execution paths and identify bottlenecks -* Insights into how operations flow through distributed systems - -Traces are not: +== Prerequisites -* Immutable audit records for compliance purposes -* Designed for "who did what" accountability tracking +You must have an existing MCP server. If you do not have one, see xref:ai-agents:mcp/remote/quickstart.adoc[]. == Consume traces from the execution log -You can consume traces from the `redpanda.otel_traces` topic using any Kafka-compatible client or the Redpanda Console. +MCP servers emit OpenTelemetry traces to the `redpanda.otel_traces` topic. You can consume these traces using any Kafka-compatible client or the Redpanda Cloud Console. [tabs] ===== -Cloud UI:: +Cloud Console:: + -- . In the Redpanda Cloud Console, navigate to *Topics*. @@ -96,190 +57,41 @@ Use the link:/api/doc/cloud-dataplane/topic/topic-quickstart[Data Plane API] to -- ===== -== Trace data structure - -Each trace message contains an OpenTelemetry span with the following structure: - -[,json] ----- -{ - "traceId": "71cad555b35602fbb35f035d6114db54", - "spanId": "43ad6bc31a826afd", - "parentSpanId": "", - "name": "http_processor", - "kind": 1, - "startTimeUnixNano": "1765198415253280028", - "endTimeUnixNano": "1765198424660663434", - "attributes": [ - { - "key": "city_name", - "value": {"stringValue": "london"} - }, - { - "key": "result_length", - "value": {"intValue": "198"} - } - ], - "status": { - "code": 0, - "message": "" - }, - "instrumentationScope": { - "name": "rpcn-mcp" - }, - "flags": 1 -} ----- - -* `traceId`: Unique identifier for the entire trace (hex-encoded string). -* `spanId`: Unique identifier for this specific span (hex-encoded string). -* `parentSpanId`: Links child spans to parent operations (empty string if root span). -* `name`: Descriptive name of the operation (typically the tool name in the case of MCP servers). -* `kind`: Span kind as integer (see the `redpanda.otel_traces-value` schema for details). -* `startTimeUnixNano` / `endTimeUnixNano`: Timing information in nanoseconds since Unix epoch. -* `attributes`: Array of key-value pairs with contextual information about the operation. -* `status`: Operation status with `code` (0 = OK, 2 = ERROR) and optional `message`. -* `instrumentationScope`: Identifies the library or component that created the span. - -=== Identifying MCP servers and tools - -All MCP servers in a cluster write traces to the same `redpanda.otel_traces` topic. Each trace has a unique `traceId`, and you can identify which tool created the trace by examining the span fields: - -* When `instrumentationScope.name` is `rpcn-mcp`, the span represents an MCP tool invocation. -* The `name` field contains the MCP tool name (for example, `weather`, `http_processor`, `generate_input`). -* Child spans reference their parent using `parentSpanId` and share the same `traceId` - -For example, a span with `instrumentationScope.name: "rpcn-mcp"` and `name: "weather"` indicates the `weather` tool was invoked. Child spans created by Redpanda Connect components show `instrumentationScope.name: "redpanda-connect"` and represent internal processing steps. - -=== Real trace examples - -Here are actual traces from MCP tool executions showing the parent-child span relationships and detailed attributes. - -**Successful tool execution:** - -This trace shows an `http_processor` tool that fetched weather data for London. The parent span includes child spans for mutations, HTTP requests, and processing: - -[source,json] ----- -{ - "attributes": [ - { - "key": "city_name", - "value": {"stringValue": "london"} - }, - { - "key": "result_prefix", - "value": {"stringValue": "{\"city\":\"london\",\"description\":\"Partly cloudy\",\"feels_like\":12,\"humidity\":88,\"metadata\":{\"fetched_at\":\"2025-12-08T12:53:44.660Z\""} - }, - { - "key": "result_length", - "value": {"intValue": "198"} - } - ], - "endTimeUnixNano": "1765198424660663434", - "flags": 1, - "instrumentationScope": {"name": "rpcn-mcp"}, - "kind": 1, - "name": "http_processor", - "spanId": "43ad6bc31a826afd", - "startTimeUnixNano": "1765198415253280028", - "status": {"code": 0, "message": ""}, - "traceId": "71cad555b35602fbb35f035d6114db54" -} ----- - -The parent span (`http_processor`) has child spans showing the processing pipeline: - -[,json] ----- -{ - "attributes": [], - "endTimeUnixNano": "1765198424659619511", - "flags": 1, - "instrumentationScope": {"name": "redpanda-connect"}, - "kind": 1, - "name": "http", - "parentSpanId": "43ad6bc31a826afd", - "spanId": "ed45544a7d7b08d4", - "startTimeUnixNano": "1765198415253319496", - "status": {"code": 0, "message": ""}, - "traceId": "71cad555b35602fbb35f035d6114db54" -} ----- - -* The parent span (`http_processor`) includes custom attributes like `city_name` and `result_length` that help debug and monitor tool behavior. -* Child spans use the same `traceId` but different `spanId` values. -* The `parentSpanId` in child spans matches the parent's `spanId`, creating the hierarchy. -* Duration can be calculated: `(1765198424660663434 - 1765198415253280028) / 1000000 = 9407ms`. - -**Trace with error event:** - -This trace shows an HTTP request that encountered an error during execution: - -[,json] ----- -{ - "attributes": [], - "endTimeUnixNano": "1765198423080903265", - "events": [ - { - "attributes": [ - { - "key": "error", - "value": {"stringValue": "type"} - } - ], - "name": "event", - "timeUnixNano": "1765198420254169629" - } - ], - "flags": 1, - "instrumentationScope": {"name": "redpanda-connect"}, - "kind": 1, - "name": "http_request", - "parentSpanId": "43ad6bc31a826afd", - "spanId": "ba332199f3af6d7f", - "startTimeUnixNano": "1765198415253325782", - "status": {"code": 0, "message": ""}, - "traceId": "71cad555b35602fbb35f035d6114db54" -} ----- - -* The span still shows `status.code: 0` (success) overall. -* However, the `events` array contains error information with `error: type`. -* This indicates a recoverable error or warning during execution. -* The event's `timeUnixNano` shows exactly when the error occurred. - -== Common monitoring scenarios - -=== Track tool invocations +== Track tool invocations Monitor which tools are being called and how often: . Consume traces from `redpanda.otel_traces`. -. Filter spans where `name` contains `tool_invocation`. -. Examine the `mcp.tool.name` attribute to see which tools are being used. +. Filter spans where `instrumentationScope.name` is `rpcn-mcp`. +. Examine the `name` field to see which tools are being invoked. . Calculate frequency by counting spans per tool name over time windows. -=== Measure performance +Example: To find all invocations of a specific tool, filter for spans where `name` matches your tool name (for example, `weather`, `http_processor`). + +== Measure performance Analyze tool execution times: -. Find spans with `mcp.tool.name` attributes. +. Find spans with `instrumentationScope.name` set to `rpcn-mcp`. . Calculate duration: `(endTimeUnixNano - startTimeUnixNano) / 1000000` (milliseconds). . Track percentiles (p50, p95, p99) to identify performance issues. . Set alerts for durations exceeding acceptable thresholds. -=== Debug failures +Example: A span with `startTimeUnixNano: "1765198415253280028"` and `endTimeUnixNano: "1765198424660663434"` has a duration of 9407ms. + +== Debug failures Investigate errors and failures: -. Filter spans where `status.code` is not `STATUS_CODE_OK`. -. Look for `STATUS_CODE_ERROR` in the status field. +. Filter spans where `status.code` is `2` (error). . Examine `status.message` for error details. +. Check the `events` array for error events with timestamps. . Use `traceId` to correlate related spans and understand the full error context. +. Follow `parentSpanId` relationships to trace the error back to the originating tool. + +Example: A span with `status.code: 2` and `status.message: "connection timeout"` indicates the operation failed due to a timeout. -=== Correlate distributed operations +== Correlate distributed operations Link MCP server activity to downstream effects: @@ -288,9 +100,14 @@ Link MCP server activity to downstream effects: . Follow `parentSpanId` relationships to build complete operation timelines. . Identify bottlenecks across your entire system. -== Integration with observability platforms +== Integrate with observability platforms The `redpanda.otel_traces` topic stores trace data in OpenTelemetry format. Direct export to platforms like Grafana Cloud and Datadog is not supported due to format compatibility limitations. Redpanda produces one span per topic message, whereas these platforms expect traces in batch format. You can consume traces directly from the `redpanda.otel_traces` topic using any Kafka-compatible consumer for custom analysis and processing. +== Next steps + +* xref:ai-agents:mcp/remote/concepts.adoc#execution-log[]: Learn how traces and spans work +* xref:ai-agents:mcp/remote/troubleshooting.adoc[]: Diagnose and fix common issues +* xref:ai-agents:mcp/remote/manage-servers.adoc[]: Manage MCP server lifecycle diff --git a/modules/ROOT/pages/mcp/remote/overview.adoc b/modules/ROOT/pages/mcp/remote/overview.adoc index 2b66d61..462b403 100644 --- a/modules/ROOT/pages/mcp/remote/overview.adoc +++ b/modules/ROOT/pages/mcp/remote/overview.adoc @@ -1,51 +1,86 @@ -= About Remote MCP Servers for Redpanda Cloud -:description: Discover how AI assistants can interact with your streaming data and how to connect them to Redpanda Cloud. += Remote MCP Server Overview +:description: Discover how AI agents can interact with your streaming data and how to connect them to Redpanda Cloud. +:page-topic-type: overview +:personas: evaluator, ai_agent_developer +// Reader journey: "I'm evaluating this" +// Learning objectives - what readers should understand after reading this page: +:learning-objective-1: Explain what a Remote MCP server is and how tools differ from pipelines +:learning-objective-2: Identify use cases where Remote MCP provides business value +:learning-objective-3: Describe how MCP tools expose Redpanda Connect components to AI -Remote MCP (Model Context Protocol) allows you to build and host MCP servers in your Redpanda Cloud clusters. They can expose your data, analytics, and automation pipelines as AI-consumable tools with no custom API code. MCP servers bridge your business logic to AI agents using the open MCP standard, so you can: +This page introduces Remote MCP servers and helps you decide if they're right for your use case. -* Make your data and workflows accessible to AI assistants and LLMs, safely and on your terms. -* Accelerate automation and insight by letting AI trigger real business actions. -* Control exposure so that only the tools you tag are visible to AI. +After reading this page, you will be able to: -== Why use Remote MCP? +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} -* *Always-on and centrally managed*: No need to run a local process. Your tools live with your data, managed by Redpanda. -* *Proximity to data*: Execute tools next to your cluster for lower latency and simpler networking. -* *Secure by design*: Use the xref:develop:connect/configuration/secret-management.adoc[Secrets Store]. Never hardcode secrets in your YAML configuration. -* *Fast iteration*: Define tools as YAML configuration, deploy your MCP server, and your AI agents can use the new logic instantly. +== What is MCP? + +// What is MCP - single-sourced from rp-connect-docs partial +include::redpanda-connect:ai-agents:partial$mcp/overview/what-is-mcp.adoc[] + +== What is Remote MCP? + +Remote MCP lets you build and host MCP servers in your Redpanda Cloud clusters. Your tools run next to your data, managed by Redpanda, so you get: + +* *Always-on availability:* No local process to run. Your tools are hosted and managed by Redpanda Cloud. +* *Proximity to data:* Tools execute next to your cluster for lower latency and simpler networking. +* *Secure secrets management:* Use the xref:develop:connect/configuration/secret-management.adoc[Secrets Store] instead of hardcoding credentials. +* *Fast iteration:* Define tools as YAML, deploy, and your AI agents can use them immediately. + +// MCP tools vs pipelines - single-sourced from rp-connect-docs partial +include::redpanda-connect:ai-agents:partial$mcp/overview/mcp-vs-pipelines.adoc[] // Use cases table - single-sourced from rp-connect-docs partial -include::redpanda-connect:ai-agents:partial$mcp/use-cases-table.adoc[] +include::redpanda-connect:ai-agents:partial$mcp/overview/use-cases-table.adoc[] == How it works -. Build your tools as Redpanda Connect configurations with `meta.mcp` metadata (description, properties, and logic). -. Deploy to your cluster. Redpanda Cloud hosts your MCP server with secure access. -. Connect your AI client. AI assistants authenticate, discover available tools, and invoke them using natural language prompts. +Remote MCP servers sit between AI clients and your data: + +. Your AI agent connects to your MCP server using `rpk cloud mcp proxy` or direct authentication +. A user asks their AI agent something like "What's the weather in London?" +. The server finds the matching tool and runs your Redpanda Connect configuration +. Your configuration fetches data, transforms it, and returns a structured response +. The AI agent gets the data and can use it to answer the user + +=== What a tool looks like -// Customer analytics example - single-sourced from rp-connect-docs partial -include::redpanda-connect:ai-agents:partial$mcp/customer-analytics-example.adoc[] +A tool is a YAML configuration with two parts: the logic (what the tool does) and the metadata (how AI understands it). -== Authentication options +Here's a minimal example that returns weather data: -- **MCP proxy (recommended):** For tools with built-in MCP clients like Claude Code: -+ -[,bash] +[source,yaml] ---- -rpk cloud login -rpk cloud mcp proxy --install --client claude-code --cluster-id --mcp-server-id +http: + url: "https://wttr.in/${! this.city }?format=j1" + verb: GET + +meta: + mcp: + enabled: true + name: get_weather + description: "Get current weather for a city" + properties: + - name: city + type: string + description: "City name" + required: true ---- -- **Direct connection:** If building your own AI agent, implement the MCP client flow yourself and connect directly to the MCP server. +When an AI client asks about weather, it calls this tool with the city name. The tool fetches data from the weather API and returns it. // MCP specification support - single-sourced from rp-connect-docs partial -include::redpanda-connect:ai-agents:partial$mcp/specification-support.adoc[] +include::redpanda-connect:ai-agents:partial$mcp/overview/specification-support.adoc[] -== Get started +== Next steps -* xref:ai-agents:mcp/remote/quickstart.adoc[] +Continue your learning journey with these resources: -== Suggested reading +* xref:ai-agents:mcp/remote/quickstart.adoc[]: Build your first MCP server +* xref:ai-agents:mcp/remote/concepts.adoc[]: Learn about execution and component types +* xref:ai-agents:mcp/remote/create-tool.adoc[]: Create custom tools step by step +* link:https://modelcontextprotocol.io/[Model Context Protocol documentation^] -* xref:ai-agents:mcp/remote/developer-guide.adoc[] -* Learn more about MCP in the link:https://docs.anthropic.com/en/docs/mcp[official documentation^]. diff --git a/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc b/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc deleted file mode 100644 index 72b7a9d..0000000 --- a/modules/ROOT/pages/mcp/remote/pipeline-patterns.adoc +++ /dev/null @@ -1,233 +0,0 @@ -= Patterns for Remote MCP Servers -:description: Catalog of patterns for MCP server tools in Redpanda Cloud. - -This page provides a reference catalog of patterns designed for use with MCP servers in Redpanda Cloud. Use these patterns as building blocks for your own MCP tools. For step-by-step instructions on building, deploying, and testing MCP servers, see xref:ai-agents:mcp/remote/developer-guide.adoc[]. - -Each pattern is a reusable example for a common MCP tool scenario. Patterns are grouped by use case. All YAML is ready to use in your MCP server project. - -For a high-level overview of MCP servers, see xref:ai-agents:mcp/overview.adoc[]. - -== Pattern selection guide - -Choose the right pattern for your use case: - -* **Generate test data or synthetic events**: <> -* **Call external REST APIs**: <> -* **Query databases**: <> -* **Read from Redpanda topics**: <> -* **Transform or validate data**: <> -* **Publish to Redpanda topics**: <> -* **Integrate with AI/LLM services**: <> -* **Cache frequently accessed data**: <> - -== Data generators - -Use xref:develop:connect/components/inputs/about.adoc[`inputs`] to create tools that read data from internal or external systems or generate sample data for testing and development. - -**When to use:** Development and testing environments where you need synthetic data, load testing scenarios, or demonstrating data flows without real data sources. - -**Example use cases:** Mock user events, test order data, synthetic sensor readings, demo data for presentations. - -This example generates a realistic user event message: - -[source,yaml] ----- -include::ai-agents:example$generate_input.yaml[] ----- - -See also: xref:develop:connect/components/inputs/generate.adoc[`generate` input component] - -== External API calls - -Use xref:develop:connect/components/processors/about.adoc[`processors`] to fetch data from external APIs, databases, or services and return formatted results. This is one of the most common patterns for MCP tools. - -**When to use:** Integrating with third-party services, fetching real-time data, calling internal microservices, or enriching event data with external information. - -**Example use cases:** Fetch user profile from CRM, get product pricing from inventory API, validate addresses with geocoding service, retrieve weather data. - -[source,yaml] ----- -include::ai-agents:example$http_processor.yaml[] ----- - -See also: xref:develop:connect/components/processors/http.adoc[`http` processor], xref:develop:connect/components/processors/mutation.adoc[`mutation` processor] - -== Database queries - -Query external databases and return structured results. This pattern is essential for tools that need to access business data. - -**When to use:** Retrieving customer records, querying analytics data, looking up configuration values, or joining streaming data with dimensional data from data warehouses. - -**Example use cases:** Fetch customer details from PostgreSQL, query sales data from BigQuery, retrieve product catalog from MongoDB, look up reference data. - -[source,yaml] ----- -include::ai-agents:example$gcp_bigquery_select_processor.yaml[] ----- - -See also: xref:develop:connect/components/processors/gcp_bigquery_select.adoc[`gcp_bigquery_select` processor], xref:develop:connect/components/processors/sql_select.adoc[`sql_select` processor] (for other databases) - -== Data consumers - -Read messages from Redpanda topics to process streaming data in your MCP tools. This pattern enables event-driven workflows and real-time data processing. - -**When to use:** Processing events from Redpanda topics, building event-driven AI agents, consuming audit logs, or subscribing to data change streams. - -**Example use cases:** Monitor order events, process user activity streams, consume IoT sensor data, react to system notifications. - -[source,yaml] ----- -redpanda: - seed_brokers: [ "${REDPANDA_BROKERS}" ] - topics: [ "user-events" ] - consumer_group: "mcp-event-processor" - start_from_oldest: true - tls: - enabled: true - sasl: - - mechanism: "${REDPANDA_SASL_MECHANISM}" - username: "${REDPANDA_SASL_USERNAME}" - password: "${REDPANDA_SASL_PASSWORD}" ----- - -See also: xref:develop:connect/components/inputs/redpanda.adoc[`redpanda` input] - -== Data transformation - -Transform, validate, and enrich data as it flows through your MCP tools. Use Bloblang mapping language for powerful data manipulation. - -**When to use:** Converting data formats, validating schemas, filtering events, enriching messages with computed fields, or normalizing data structures. - -**Example use cases:** Parse JSON payloads, validate required fields, add timestamps, convert units, mask sensitive data, aggregate nested objects. - -[source,yaml] ----- -mapping: | - # Parse and validate incoming data - root.user_id = this.user_id.or(throw("user_id is required")) - root.timestamp = now().ts_format("2006-01-02T15:04:05Z07:00") - - # Transform and enrich - root.email_domain = this.email.split("@").index(1) - root.is_premium = this.subscription_tier == "premium" - - # Filter sensitive data - root.profile = this.profile.without("ssn", "credit_card") ----- - -See also: xref:develop:connect/components/processors/mapping.adoc[`mapping` processor], xref:develop:connect/guides/bloblang/about.adoc[Bloblang guide] - -== AI/LLM integration - -Integrate AI and LLM services into your MCP tools for intelligent data processing, embeddings generation, and natural language understanding. - -**When to use:** Generating embeddings for semantic search, calling LLM APIs for text generation, building RAG (Retrieval Augmented Generation) pipelines, or analyzing sentiment. - -**Example use cases:** Generate embeddings for documents, classify customer feedback, summarize long text, extract entities, answer questions with context. - -=== OpenAI integration - -[source,yaml] ----- -openai_chat_completion: - api_key: "${secrets.OPENAI_API_KEY}" - model: "gpt-4" - prompt: | - Analyze this customer feedback and provide: - 1. Sentiment (positive/negative/neutral) - 2. Key themes - 3. Actionable insights - - Feedback: ${! json("feedback_text") } - max_tokens: 500 ----- - -See also: xref:develop:connect/components/processors/openai_chat_completion.adoc[`openai_chat_completion`], xref:develop:connect/components/processors/openai_embeddings.adoc[`openai_embeddings`] - -=== Embeddings generation - -[source,yaml] ----- -openai_embeddings: - api_key: "${secrets.OPENAI_API_KEY}" - model: "text-embedding-3-small" - text: ${! json("content") } ----- - -See also: xref:develop:connect/components/processors/cohere_embeddings.adoc[`cohere_embeddings`], xref:develop:connect/components/processors/gcp_vertex_ai_embeddings.adoc[`gcp_vertex_ai_embeddings`] - -== Redpanda integration - -Publish data to Redpanda topics and implement caching systems backed by Redpanda. - -Use these patterns when you need to integrate with Redpanda infrastructure, publish data to topics, or implement caching systems. - -=== Data publishers - -Use xref:develop:connect/components/outputs/about.adoc[`outputs`] to send data to external systems, publish events to Redpanda topics, or integrate with downstream services. - -**When to use:** Publishing events to Redpanda for consumption by other services, creating event sourcing patterns, building audit trails, or triggering downstream workflows. - -**Example use cases:** Publish order confirmations, emit audit events, trigger notifications, create event-driven workflows. - -This example publishes a message to a Redpanda topic: - -[source,yaml] ----- -include::ai-agents:example$redpanda_output.yaml[] ----- - -See also: xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] - -==== Outputs with processors - -Output tools can include processors to transform data before publishing. This pattern is useful when you need to process data and save the result to a destination in a single tool. - -**When to use:** Processing user input with an LLM and saving the response, transforming data before publishing to a topic, enriching events before writing to external systems. - -**Example use cases:** Send a prompt to an LLM, then save the answer to a topic in Redpanda. - -[source,yaml] ----- -include::ai-agents:example$redpanda_output_with_processors.yaml[] ----- - -You can use an output component type with processors, but you cannot use a processor component type with outputs. The `processors` field is available in all output components. - -=== Caching systems - -Use caching to store frequently accessed data, reduce latency, and minimize external API calls. You can implement caching using either Redpanda topics or in-memory stores. - -**When to use:** Reducing repeated API calls, storing lookup tables, caching database query results, or maintaining session state across tool invocations. - -**Example use cases:** Cache user profiles, store API rate limit counters, maintain configuration values, cache product catalogs. - -.Redpanda-backed cache -[source,yaml] ----- -include::ai-agents:example$redpanda_cache.yaml[] ----- - -.In-memory cache for low-latency access to small datasets -[source,yaml] ----- -include::ai-agents:example$memory_cache.yaml[] ----- - -See also: xref:develop:connect/components/caches/memory.adoc[`memory` cache], Redpanda-backed cache using xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] - -// Production workflows section - single-sourced from rp-connect-docs partials -// Part 1: Parameter validation, dynamic config, error handling, conditional processing -include::redpanda-connect:ai-agents:partial$mcp/production-workflows-before-secrets.adoc[] - -// Secrets section - deployment-specific for Cloud (uses Secrets Store) -include::redpanda-connect:ai-agents:partial$mcp/secrets-cloud.adoc[] - -// Part 2: Monitoring, multi-step enrichment, workflow orchestration -include::redpanda-connect:ai-agents:partial$mcp/production-workflows-after-secrets.adoc[] - -== Suggested reading - -* xref:develop:connect/components/about.adoc[Components overview] -* xref:develop:connect/guides/bloblang/about.adoc[Bloblang guide] -* xref:develop:connect/configuration/secret-management.adoc[Secret management] \ No newline at end of file diff --git a/modules/ROOT/pages/mcp/remote/quickstart.adoc b/modules/ROOT/pages/mcp/remote/quickstart.adoc index 734f8e8..a778df1 100644 --- a/modules/ROOT/pages/mcp/remote/quickstart.adoc +++ b/modules/ROOT/pages/mcp/remote/quickstart.adoc @@ -1,31 +1,24 @@ = Remote MCP Server Quickstart :description: Learn how to extend AI agents with custom tools that interact with your Redpanda data using the Model Context Protocol (MCP). +:page-topic-type: tutorial +:personas: ai_agent_developer, streaming_developer, evaluator +// Reader journey: "I want to try it now" +// Learning objectives - what readers will achieve by completing this quickstart: +:learning-objective-1: Create an MCP server in Redpanda Cloud +:learning-objective-2: Define tools that generate and publish data +:learning-objective-3: Connect Claude Code to your MCP server and invoke tools -Model Context Protocol (MCP) enables AI assistants like Claude to interact with external systems through custom tools. This quickstart teaches you how to create an MCP server in Redpanda Cloud with tools that generate and publish event data, then connect Claude Code to use those tools through natural language commands. +This quickstart builds an MCP server in Redpanda Cloud that exposes tools for generating and publishing event data. You'll create two tools, then ask Claude Code to use them through natural language: -== What you'll learn +> Generate 10 user events and publish them to the events topic. -By completing this quickstart, you'll understand: +By completing this quickstart, you will be able to: -* What MCP is and how it extends AI capabilities -* How MCP servers, tools, and clients work together -* How to create and deploy custom tools in Redpanda Cloud -* How to connect AI assistants to your Redpanda data infrastructure +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} -== How MCP works - -The Model Context Protocol defines a standard way for AI assistants to interact with external tools and data sources: - -MCP Server:: Hosts a collection of tools that perform specific actions. MCP servers run as managed services in your Redpanda Cloud cluster. -Tools:: Individual capabilities your AI can use, built with Redpanda Connect components. Tools can read from sources (inputs), transform data (processors), write to destinations (outputs), or cache results. -Client:: An AI assistant (like Claude Code) that discovers available tools and calls them based on user requests. - -In this quickstart, you'll create a server with two tools: - -. `generate_input`: Creates fake user event data with randomized fields -. `redpanda_output`: Publishes generated events to a Redpanda topic - -Once connected, you can ask Claude in natural language to "generate 10 events and publish them to Redpanda," and Claude will automatically call your tools to complete the task. +TIP: For background on how MCP tools work and when to use each component type, see xref:ai-agents:mcp/remote/concepts.adoc[]. == Prerequisites @@ -183,7 +176,7 @@ curl -X POST "https:///v1/acls" \ [tabs] ===== -Cloud UI:: +Cloud Console:: + -- . Log in to the link:https://cloud.redpanda.com/[Redpanda Cloud Console^]. @@ -382,47 +375,23 @@ rpk topic consume events --num 10 + You should see the generated event data in JSON format, confirming that Claude successfully used your custom tools to generate data and publish it to Redpanda. -== Summary - -You extended Claude's capabilities with custom tools that interact with your Redpanda cluster. Claude can now generate and publish event data through natural language commands without manual scripting. This same pattern works for any workflow: reading from topics, transforming data, querying databases, or calling external APIs. - == Troubleshoot -=== MCP server not starting - -If your server is not starting or shows an error state: +If you encounter issues during this quickstart: -- Check the *Logs* tab for specific error messages. -- Verify your YAML syntax by clicking *Lint*. +- **MCP server not starting**: Check the *Logs* tab and verify your YAML syntax by clicking *Lint*. +- **Connection issues**: Verify you're logged in with `rpk cloud login` and that your server status shows *Running*. +- **Publishing failures**: Verify the `events` topic exists with `rpk topic list`. -=== Connection issues - -If Claude Code can't connect to your server: - -- Verify you're logged in with `rpk cloud login`. -- Check that your rpk version is 25.2.5 or later: `rpk version`. -- Ensure your server status shows *Running* in Redpanda Cloud. -- Try restarting Claude Code after running the proxy command. - -=== Publishing failures - -If the publish tool returns errors: - -- Verify the `events` topic exists: -+ -```bash -rpk topic list -``` -- Use the MCP Inspector in Redpanda Cloud to test with different event data. -- Check the MCP server logs for authentication or authorization errors. +For detailed solutions, see xref:ai-agents:mcp/remote/troubleshooting.adoc[]. == Next steps -Now that you understand how MCP works, you can create custom tools for your specific use cases: - -* **Data ingestion**: Build tools that read from external APIs, databases, or file systems and publish to Redpanda topics. -* **Data processing**: Create tools that consume from topics, transform data, and write results back to Redpanda. -* **Monitoring and observability**: Add tools that query metrics, check system health, or analyze streaming data. -* **Integration workflows**: Connect Redpanda to other systems through custom tools that Claude can orchestrate. +You've deployed an MCP server and connected Claude Code to your Redpanda cluster. Here's where to go next: -See xref:ai-agents:mcp/remote/developer-guide.adoc[] to learn how to build custom tools using Redpanda Connect components. +* xref:ai-agents:mcp/remote/concepts.adoc[]: Understand how MCP tools differ from pipelines +* xref:ai-agents:mcp/remote/create-tool.adoc[]: Build production-quality tools with validation +* xref:ai-agents:mcp/remote/best-practices.adoc[]: Apply naming and design guidelines +* xref:ai-agents:mcp/remote/tool-patterns.adoc[]: Find reusable patterns +* xref:ai-agents:mcp/remote/troubleshooting.adoc[]: Diagnose common issues +* xref:ai-agents:mcp/remote/admin-guide.adoc[]: Scale resources, monitor activity, and administer your MCP servers diff --git a/modules/ROOT/pages/mcp/remote/scale-resources.adoc b/modules/ROOT/pages/mcp/remote/scale-resources.adoc index bb63ee8..139fa97 100644 --- a/modules/ROOT/pages/mcp/remote/scale-resources.adoc +++ b/modules/ROOT/pages/mcp/remote/scale-resources.adoc @@ -1,5 +1,12 @@ = Scale Remote MCP Server Resources :description: Learn how to scale MCP server resources up or down to match workload demands and optimize costs. +:page-topic-type: how-to +:personas: platform_admin +// Reader journey: "I optimize costs and performance" +// Learning objectives - what readers can accomplish from this page: +:learning-objective-1: Scale MCP server resources up or down +:learning-objective-2: Choose appropriate resource sizes for workloads +:learning-objective-3: Optimize costs through resource management You can scale your MCP server's resources up or down to match your workload needs. Resource allocation affects your xref:billing:billing.adoc#remote-mcp-billing-metrics[billing costs], which are charged per compute unit hour. @@ -11,7 +18,7 @@ You must have an existing MCP server. If you do not have one, see xref:ai-agents [tabs] ===== -Cloud UI:: +Cloud Console:: + -- . In the Redpanda Cloud Console, navigate to *Remote MCP*. diff --git a/modules/ROOT/pages/mcp/remote/tool-patterns.adoc b/modules/ROOT/pages/mcp/remote/tool-patterns.adoc new file mode 100644 index 0000000..1348419 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/tool-patterns.adoc @@ -0,0 +1,315 @@ += MCP Tool Patterns +:page-aliases: ai-agents:mcp/remote/pipeline-patterns.adoc +:description: Catalog of patterns for MCP server tools in Redpanda Cloud. +:page-topic-type: cookbook +:personas: ai_agent_developer, data_engineer +// Reader journey: "I need an example for X" +:learning-objective-1: Find reusable patterns for common MCP tool scenarios +:learning-objective-2: Apply validation and error handling patterns for production robustness +:learning-objective-3: Format responses consistently for AI client consumption + +When building tools, use these patterns as starting points for common scenarios. For step-by-step instructions, see xref:ai-agents:mcp/remote/create-tool.adoc[]. For design guidelines, see xref:ai-agents:mcp/remote/best-practices.adoc[]. + +After reading this page, you will be able to: + +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} + + + +[[read-data]] +== Read data + +Use xref:develop:connect/components/inputs/about.adoc[inputs] to create tools that read from data sources or generate sample data. + +[[data-generators]] +=== Generate test data + +*When to use:* Development and testing environments where you need synthetic data, load testing scenarios, or demonstrating data flows without real data sources. + +*Example use cases:* Mock user events, test order data, synthetic sensor readings, demo data for presentations. + +[source,yaml] +---- +include::ai-agents:example$generate_input.yaml[] +---- + +See also: xref:develop:connect/components/inputs/generate.adoc[`generate` input component] + +[[consume-from-redpanda]] +=== Consume from Redpanda topics + +*When to use:* Processing events from Redpanda topics, building event-driven AI agents, consuming audit logs, or subscribing to data change streams. + +*Example use cases:* Monitor order events, process user activity streams, consume IoT sensor data, react to system notifications. + +[source,yaml] +---- +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "user-events" ] + consumer_group: "mcp-event-processor" + start_from_oldest: true + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" +---- + +See also: xref:develop:connect/components/inputs/redpanda.adoc[`redpanda` input] + +[[stream-processing]] +=== Process streaming data + +*When to use:* Real-time analytics, windowed aggregations, computing metrics over time, or building streaming dashboards. + +*Example use cases:* Calculate rolling averages, count events per time window, detect anomalies in streams, aggregate metrics. + +[source,yaml] +---- +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "sensor-readings" ] + consumer_group: "analytics-processor" + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" + processors: + - mapping: | + root.sensor_id = this.sensor_id + root.avg_temperature = this.readings.map_each(r -> r.temperature).mean() + root.max_temperature = this.readings.map_each(r -> r.temperature).max() + root.reading_count = this.readings.length() + root.window_end = now() +---- + +See also: xref:develop:connect/components/inputs/redpanda.adoc[`redpanda` input] + +[[call-external-services]] +== Call external services + +Use xref:develop:connect/components/processors/about.adoc[processors] to fetch data from external APIs, databases, or AI services. + +[[external-api-calls]] +=== Call REST APIs + +*When to use:* Integrating with third-party services, fetching real-time data, calling internal microservices, or enriching event data with external information. + +*Example use cases:* Fetch user profile from CRM, get product pricing from inventory API, validate addresses with geocoding service, retrieve weather data. + +[source,yaml] +---- +include::ai-agents:example$http_processor.yaml[] +---- + +See also: xref:develop:connect/components/processors/http.adoc[`http` processor], xref:develop:connect/components/processors/mutation.adoc[`mutation` processor] + +[[database-queries]] +=== Query databases + +*When to use:* Retrieving customer records, querying analytics data, looking up configuration values, or joining streaming data with dimensional data from data warehouses. + +*Example use cases:* Fetch customer details from PostgreSQL, query sales data from BigQuery, retrieve product catalog from MongoDB, look up reference data. + +[source,yaml] +---- +include::ai-agents:example$gcp_bigquery_select_processor.yaml[] +---- + +See also: xref:develop:connect/components/processors/gcp_bigquery_select.adoc[`gcp_bigquery_select` processor], xref:develop:connect/components/processors/sql_select.adoc[`sql_select` processor] + +[[ai-llm-integration]] +=== Integrate with AI/LLM services + +*When to use:* Generating embeddings for semantic search, calling LLM APIs for text generation, building RAG pipelines, or analyzing sentiment. + +*Example use cases:* Generate embeddings for documents, classify customer feedback, summarize long text, extract entities, answer questions with context. + +==== OpenAI chat completion + +[source,yaml] +---- +openai_chat_completion: + api_key: "${secrets.OPENAI_API_KEY}" + model: "gpt-4" + prompt: | + Analyze this customer feedback and provide: + 1. Sentiment (positive/negative/neutral) + 2. Key themes + 3. Actionable insights + + Feedback: ${! json("feedback_text") } + max_tokens: 500 +---- + +See also: xref:develop:connect/components/processors/openai_chat_completion.adoc[`openai_chat_completion`], xref:develop:connect/components/processors/openai_embeddings.adoc[`openai_embeddings`] + +==== Generate embeddings + +[source,yaml] +---- +openai_embeddings: + api_key: "${secrets.OPENAI_API_KEY}" + model: "text-embedding-3-small" + text: ${! json("content") } +---- + +See also: xref:develop:connect/components/processors/cohere_embeddings.adoc[`cohere_embeddings`], xref:develop:connect/components/processors/gcp_vertex_ai_embeddings.adoc[`gcp_vertex_ai_embeddings`] + +[[write-data]] +== Write data + +Use xref:develop:connect/components/outputs/about.adoc[outputs] to write data to Redpanda topics or cache stores. + +[[publish-to-redpanda]] +=== Publish to Redpanda topics + +*When to use:* Publishing events to Redpanda for consumption by other services, creating event sourcing patterns, building audit trails, or triggering downstream workflows. + +*Example use cases:* Publish order confirmations, emit audit events, trigger notifications, create event-driven workflows. + +[source,yaml] +---- +include::ai-agents:example$redpanda_output.yaml[] +---- + +See also: xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] + +==== Outputs with processors + +Output tools can include processors to transform data before publishing. This pattern is useful when you need to process data and save the result to a destination in a single tool. + +*When to use:* Processing user input with an LLM and saving the response, transforming data before publishing to a topic, enriching events before writing to external systems. + +[source,yaml] +---- +include::ai-agents:example$redpanda_output_with_processors.yaml[] +---- + +[[caching]] +=== Cache data + +*When to use:* Reducing repeated API calls, storing lookup tables, caching database query results, or maintaining session state across tool invocations. + +*Example use cases:* Cache user profiles, store API rate limit counters, maintain configuration values, cache product catalogs. + +.Redpanda-backed cache +[source,yaml] +---- +include::ai-agents:example$redpanda_cache.yaml[] +---- + +.In-memory cache +[source,yaml] +---- +include::ai-agents:example$memory_cache.yaml[] +---- + +See also: xref:develop:connect/components/caches/memory.adoc[`memory` cache], xref:develop:connect/components/outputs/redpanda.adoc[`redpanda` output] + +[[transform-data]] +== Transform data + +Use Bloblang and processors to transform, validate, and route data. + +[[data-transformation]] +=== Transform and validate + +*When to use:* Converting data formats, validating schemas, filtering events, enriching messages with computed fields, or normalizing data structures. + +*Example use cases:* Parse JSON payloads, validate required fields, add timestamps, convert units, mask sensitive data, aggregate nested objects. + +[source,yaml] +---- +mapping: | + # Parse and validate incoming data + root.user_id = this.user_id.or(throw("user_id is required")) + root.timestamp = now().ts_format("2006-01-02T15:04:05Z07:00") + + # Transform and enrich + root.email_domain = this.email.split("@").index(1) + root.is_premium = this.subscription_tier == "premium" + + # Filter sensitive data + root.profile = this.profile.without("ssn", "credit_card") +---- + +See also: xref:develop:connect/components/processors/mapping.adoc[`mapping` processor], xref:develop:connect/guides/bloblang/about.adoc[Bloblang guide] + +[[event-driven-workflows]] +=== Build event-driven workflows + +*When to use:* Orchestrating multi-step processes, responding to business events, implementing saga patterns, or coordinating microservices. + +*Example use cases:* Order fulfillment workflows, approval processes, notification cascades, data pipeline orchestration. + +[source,yaml] +---- +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "order-events" ] + consumer_group: "workflow-orchestrator" + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" + processors: + - switch: + - check: this.event_type == "order_created" + processors: + - http: + url: "${secrets.INVENTORY_API}/reserve" + verb: POST + body: '{"order_id": "${! this.order_id }", "items": ${! json("items") }}' + - check: this.event_type == "payment_confirmed" + processors: + - http: + url: "${secrets.FULFILLMENT_API}/ship" + verb: POST + body: '{"order_id": "${! this.order_id }"}' +---- + +See also: xref:develop:connect/components/inputs/redpanda.adoc[`redpanda` input] + +[[production-readiness]] +== Production readiness + +Build production-ready tools with proper input validation, error handling, and response formatting. + +[[input-validation]] +=== Validate input + +AI clients may send unexpected or malformed input. Validate early to return helpful error messages instead of cryptic failures from downstream components. + +include::redpanda-connect:ai-agents:partial$mcp/tool-patterns/input-validation.adoc[leveloffset=+1] + +[[error-handling]] +=== Handle errors + +External services fail. Databases go down. APIs return unexpected responses. Wrap risky operations in error handling so your tool returns useful error messages instead of crashing. + +include::redpanda-connect:ai-agents:partial$mcp/tool-patterns/error-handling.adoc[leveloffset=+1] + +[[response-formatting]] +=== Format responses + +AI clients work best with clean, predictable response structures. Transform raw component output into consistent formats. + +include::redpanda-connect:ai-agents:partial$mcp/tool-patterns/response-formatting.adoc[leveloffset=+1] + +// Production workflows section - single-sourced from rp-connect-docs +include::redpanda-connect:ai-agents:partial$mcp/tool-patterns/production-workflows.adoc[] + +== Next steps + +* xref:ai-agents:mcp/remote/create-tool.adoc[]: Step-by-step tool creation guide +* xref:ai-agents:mcp/remote/best-practices.adoc[]: Apply naming and design guidelines +* xref:ai-agents:mcp/remote/troubleshooting.adoc[]: Diagnose and fix common issues diff --git a/modules/ROOT/pages/mcp/remote/troubleshooting.adoc b/modules/ROOT/pages/mcp/remote/troubleshooting.adoc new file mode 100644 index 0000000..9c0dc41 --- /dev/null +++ b/modules/ROOT/pages/mcp/remote/troubleshooting.adoc @@ -0,0 +1,46 @@ += Troubleshoot Remote MCP Servers +:description: Diagnose and fix common issues when building and running Remote MCP servers in Redpanda Cloud. +:page-topic-type: troubleshooting +:personas: ai_agent_developer, streaming_developer, platform_admin +// Reader journey: "Something went wrong" +// Learning objectives - what readers can do with this page: +:learning-objective-1: Diagnose and fix lint and YAML configuration errors +:learning-objective-2: Resolve runtime issues when tools don't appear or return unexpected results +:learning-objective-3: Debug client connection problems + +This page helps you diagnose and fix common issues when building and running Remote MCP servers. + +Use this page to: + +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} + +== Lint errors + +include::redpanda-connect:ai-agents:partial$mcp/troubleshooting/troubleshooting-lint.adoc[] + +== Runtime issues + +include::redpanda-connect:ai-agents:partial$mcp/troubleshooting/troubleshooting-runtime.adoc[] + +== Connection issues + +include::redpanda-connect:ai-agents:partial$mcp/troubleshooting/troubleshooting-connection.adoc[] + +[[debugging]] +== Debugging techniques + +Use these techniques to systematically isolate and fix issues with your MCP tools. + +include::redpanda-connect:ai-agents:partial$mcp/troubleshooting/debugging-techniques.adoc[] + +== Next steps + +If you're still experiencing issues: + +* xref:ai-agents:mcp/remote/create-tool.adoc[]: Review YAML structure rules and metadata fields +* xref:ai-agents:mcp/remote/best-practices.adoc[]: Review naming and metadata design +* xref:ai-agents:mcp/remote/concepts.adoc[]: Review component type selection + +For protocol-level troubleshooting, see the link:https://modelcontextprotocol.io/[MCP documentation^]. From 99d6ab06e6285474f04a483211b9ca46932bb655 Mon Sep 17 00:00:00 2001 From: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Date: Wed, 14 Jan 2026 18:31:40 +0000 Subject: [PATCH 07/20] Improve MCP documentation compliance with Redpanda docs standards (#486) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update nav entry for MCP Server for the Redpanda Cloud API * Improve MCP documentation compliance with style standards - Add missing learning objectives displays to local overview, quickstart, and configuration pages - Add intro text following "After [prerequisite], [action]" pattern - Remove periods from prerequisite fragments per style guide - Fix passive voice in remote admin pages (admin-guide, manage-servers, monitor-activity, scale-resources) - Remove redundant Data Plane API section from admin-guide (content belongs in child pages) - Convert loose paragraph to TIP in configuration page Co-Authored-By: Claude Sonnet 4.5 * Update local-antora-playbook.yml * Update index.adoc * Rename "MCP Server for the Redpanda Cloud API" to "Redpanda Cloud API MCP" Updated terminology throughout documentation for consistency and brevity. Changes: - Navigation entries - Page titles and descriptions - Content references - Cross-reference link text Co-Authored-By: Claude Sonnet 4.5 * Redpanda Cloud Management MCP Server * Fix MCP overview title and learning objectives - Update title to "MCP Servers for Redpanda Cloud Overview" - Update learning objective 2 to explicitly distinguish between "Redpanda Cloud Management MCP Server" and "Remote MCP" Co-Authored-By: Claude Sonnet 4.5 * Update terminology to Redpanda Cloud Management MCP Server in release notes - Replace "Redpanda Cloud MCP Server" with "Redpanda Cloud Management MCP Server" - Change "This local server" to "This server runs on your computer" for clarity Co-Authored-By: Claude Sonnet 4.5 * Address PR review feedback Based on feedback from PR #486: local/overview.adoc: - Shorten introduction and move learning objectives before image - Add intro sentence to Components section - Convert "Suggested reading" section to TIP - Remove "Continue your learning journey" intro text from Next steps local/quickstart.adoc: - Remove "Continue your learning journey" intro text from Next steps local/configuration.adoc: - Simplify terminology: "supports the Model Context Protocol" → "supports MCP" remote/overview.adoc: - Remove "Continue your learning journey" intro text from Next steps remote/concepts.adoc: - Remove "Continue your learning journey" intro text from Next steps remote/monitor-activity.adoc: - Fix broken Data Plane API link Co-Authored-By: Claude Sonnet 4.5 --------- Co-authored-by: Claude Sonnet 4.5 --- modules/ROOT/pages/index.adoc | 8 +- .../ROOT/pages/mcp/local/configuration.adoc | 75 ++++++++++--------- modules/ROOT/pages/mcp/local/index.adoc | 4 +- modules/ROOT/pages/mcp/local/overview.adoc | 38 +++++----- modules/ROOT/pages/mcp/local/quickstart.adoc | 22 +++--- modules/ROOT/pages/mcp/overview.adoc | 14 ++-- .../ROOT/pages/mcp/remote/admin-guide.adoc | 36 ++------- modules/ROOT/pages/mcp/remote/concepts.adoc | 4 +- .../ROOT/pages/mcp/remote/manage-servers.adoc | 13 +++- .../pages/mcp/remote/monitor-activity.adoc | 10 +-- modules/ROOT/pages/mcp/remote/overview.adoc | 4 +- .../pages/mcp/remote/scale-resources.adoc | 12 ++- 12 files changed, 117 insertions(+), 123 deletions(-) diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index c5dd8a0..9ac867a 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -5,10 +5,4 @@ AI agents are configurable assistants that autonomously perform specialist tasks by leveraging large language models (LLMs) and connecting to external data sources and tools. -Redpanda Cloud provides two complementary Model Context Protocol (MCP) options to help you build AI agents: - -MCP server for the Redpanda Cloud API badge::[label=beta, tooltip={page-beta-text}]:: -A built-in server that gives your AI agent direct access to your Redpanda Cloud account and clusters. This runs locally on your computer and lets you quickly perform operations like creating clusters, listing topics, and reading messages. - -Remote MCP:: -Your own custom MCP servers built with Redpanda Connect pipelines and hosted inside your Redpanda Cloud cluster. These let you create reusable tools for your team that integrate with knowledge bases, APIs, and web content while running close to your data. \ No newline at end of file +Redpanda Cloud provides two complementary Model Context Protocol (MCP) options to help you build AI agents. diff --git a/modules/ROOT/pages/mcp/local/configuration.adoc b/modules/ROOT/pages/mcp/local/configuration.adoc index 9bcaf55..134c50b 100644 --- a/modules/ROOT/pages/mcp/local/configuration.adoc +++ b/modules/ROOT/pages/mcp/local/configuration.adoc @@ -1,48 +1,52 @@ -= Configure the MCP Server for the Redpanda Cloud API += Configure the Redpanda Cloud Management MCP Server :page-beta: true -:description: Learn how to configure the MCP server for the Redpanda Cloud API, including auto and manual client setup, enabling deletes, and security considerations. +:description: Learn how to configure the Redpanda Cloud Management MCP Server, including auto and manual client setup, enabling deletes, and security considerations. :page-topic-type: how-to :personas: ai_agent_developer, platform_admin // Reader journey: "I customize and configure" // Learning objectives - what readers can learn from this page: -:learning-objective-1: Configure MCP clients manually +:learning-objective-1: Configure MCP clients :learning-objective-2: Enable delete operations safely :learning-objective-3: Troubleshoot common configuration issues -This page explains how to configure the MCP server for the Redpanda Cloud API, including auto and manual client setup, enabling deletes, and security considerations. +After installing the Redpanda Cloud Management MCP Server, you can configure it for different AI clients, customize security settings, and troubleshoot common issues. -== Prerequisites +After reading this page, you will be able to: -* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your computer]. -* Access to a Redpanda Cloud account. -* Supported AI client (Claude, Claude Code, or other MCP-compatible client). +* [ ] {learning-objective-1} +* [ ] {learning-objective-2} +* [ ] {learning-objective-3} -== Endpoint availability +== Prerequisites -The MCP server exposes Redpanda Cloud API endpoints for both the link:https://docs.redpanda.com/api/doc/cloud-controlplane/[Control Plane] and the link:https://docs.redpanda.com/api/doc/cloud-dataplane/[Data Plane] through `rpk`. Available endpoints depend on your `rpk` version. Newer API features require updated versions of `rpk`. +* At least version 25.2.3 of xref:manage:rpk/rpk-install.adoc[`rpk` installed on your local machine] +* Access to a Redpanda Cloud account +* An MCP-compatible AI client such as Claude, Claude Code, or another tool that supports MCP -TIP: Keep `rpk` updated to the latest version to access new Redpanda Cloud features through the MCP server. New MCP endpoints are documented in Redpanda link:https://github.com/redpanda-data/redpanda/releases[release notes]. +TIP: The MCP server exposes Redpanda Cloud API endpoints for both the link:https://docs.redpanda.com/api/doc/cloud-controlplane/[Control Plane] and the link:https://docs.redpanda.com/api/doc/cloud-dataplane/[Data Plane]. Available endpoints depend on your `rpk` version. Keep `rpk` updated to access new Redpanda Cloud features through the MCP server. New MCP endpoints are documented in Redpanda link:https://github.com/redpanda-data/redpanda/releases[release notes]. -== Auto-configured clients (Claude and Claude Code) +== Install the integration for Claude or Claude Code For some supported clients, you can install and configure the MCP integration using the xref:reference:rpk/rpk-cloud/rpk-cloud-mcp-install.adoc[`rpk cloud mcp install` command]. For Claude and Claude Code, run one of these commands: -```bash +[source,bash] +---- # Choose one rpk cloud mcp install --client claude rpk cloud mcp install --client claude-code -``` +---- If you need to update the integration, re-run the install command for your client. -== Manual configuration for other MCP clients +== Configure other MCP clients manually -If you're using another MCP-compatible client, you can manually configure it to use the MCP server for the Redpanda Cloud API. Follow these steps: +If you're using another MCP-compatible client, manually configure it to use the Redpanda Cloud Management MCP Server. Follow these steps: Add an MCP server entry to your client's configuration (example shown in JSON). Adjust paths for your system. -```json +[,json] +---- "mcpServers": { "redpandaCloud": { "command": "rpk", @@ -55,17 +59,15 @@ Add an MCP server entry to your client's configuration (example shown in JSON). ] } } -``` +---- <1> Optional: The `--config` flag lets you target a specific `rpk.yaml`, which contains the configuration for connecting to your cluster. Always use the same configuration path as you used for `rpk cloud login` to ensure it has your token. Default paths vary by operating system. See the xref:reference:rpk/rpk-cloud/rpk-cloud-login.adoc[`rpk cloud login`] reference for the default paths. -[TIP] -==== You can also <>. -==== + == Enable delete operations -Destructive operations are **disabled by default**. To allow delete operations, add `--allow-delete` to the MCP server invocation. +The server disables destructive operations by default. To allow delete operations, add `--allow-delete` to the MCP server invocation. CAUTION: Enabling delete operations permits actions like **deleting topics or clusters**. Restrict access to your AI client and double-check prompts. @@ -74,16 +76,18 @@ CAUTION: Enabling delete operations permits actions like **deleting topics or cl Auto-configured clients:: + -- -```bash +[,bash] +---- # Choose one rpk cloud mcp install --client claude --allow-delete rpk cloud mcp install --client claude-code --allow-delete -``` +---- -- Manual configuration example:: + -- -```json +[,json] +---- "mcpServers": { "redpandaCloud": { "command": "rpk", @@ -95,11 +99,11 @@ Manual configuration example:: ] } } -``` +---- -- ==== -== Configuration locations and paths +== Specify configuration file paths All `rpk` commands accept a `--config` flag, which lets you specify the exact `rpk.yaml` configuration file to use for connecting to your Redpanda cluster. This flag overrides the default search path and ensures that the command uses the credentials and settings from the file you provide. @@ -141,23 +145,26 @@ rpk cloud login --client-id --client-secret /v1/redpanda-connect/mcp-servers//v1/redpanda-connect/mcp-servers//v1/redpanda-connect/mcp-servers/ Date: Thu, 22 Jan 2026 10:58:43 -0700 Subject: [PATCH 08/20] Reorganize navigation structure and rename AI Agents to Agentic AI (#490) * Reorganize navigation structure and rename AI Agents to Agentic AI - Rename "AI Agents" section to "Agentic AI" - Add new MCP index page to organize MCP content - Reorganize MCP section hierarchy: - MCP Overview at top level - Remote MCP with all sub-pages - Redpanda Cloud Management MCP Server (beta) with sub-pages - Move Develop and Manage sections to appear after Deploy - Update navigation order: Overview, Get Started, Deploy, Develop, Manage, Networking, Security, Agentic AI, Redpanda Connect, Billing, Partner Integration, Reference Co-Authored-By: Claude Sonnet 4.5 * fix beta * move up Agentic AI and RPCN --------- Co-authored-by: Claude Sonnet 4.5 --- modules/ROOT/pages/mcp/index.adoc | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 modules/ROOT/pages/mcp/index.adoc diff --git a/modules/ROOT/pages/mcp/index.adoc b/modules/ROOT/pages/mcp/index.adoc new file mode 100644 index 0000000..ce382e2 --- /dev/null +++ b/modules/ROOT/pages/mcp/index.adoc @@ -0,0 +1,10 @@ += Model Context Protocol (MCP) +:description: Learn about the Model Context Protocol (MCP) in Redpanda Cloud. +:page-layout: index + +The Model Context Protocol (MCP) provides a standardized way for AI agents to connect with external data sources and tools in Redpanda Cloud. + +Redpanda Cloud offers two complementary MCP options: + +* *Remote MCP*: Deploy MCP servers directly in Redpanda Cloud for scalable, managed AI agent integrations +* *Redpanda Cloud Management MCP Server*: Connect your local AI development environment to manage Redpanda Cloud resources From 1c75bbb0d6de9f2c436e4ac63396d8c6a43f59de Mon Sep 17 00:00:00 2001 From: Paulo Borges Date: Tue, 17 Feb 2026 16:34:47 -0800 Subject: [PATCH 09/20] adp: pkg 1 - ai gateway, transcripts, agents, mcp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * DOC-1867 AI Gateway # Conflicts: # modules/ROOT/nav.adoc * add questions for reviewers * incorporate review comments * configure AI Gateway LLM & MCP endpoints in Claude Code & similar tools * update Claude Code example + index page * revert nav title * edits * Add comprehensive AI Gateway documentation partials Added 7 new documentation files for AI Gateway: - what-is-ai-gateway.adoc: Overview, problem/solution framing, common patterns - quickstart-enhanced.adoc: Step-by-step quickstart with time markers - observability-logs.adoc: Request logs, filtering, and debugging - observability-metrics.adoc: Dashboards, analytics, and cost tracking - migration-guide.adoc: Safe migration from direct provider integration - cel-routing-cookbook.adoc: CEL routing patterns with examples - mcp-aggregation-guide.adoc: MCP aggregation and orchestration All files follow Redpanda documentation standards: - Sentence case headings - Imperative verbs for action headings - AsciiDoc format - Comprehensive placeholders for product-specific details Co-Authored-By: Claude Sonnet 4.5 * clean up cc drafts * cleanup * cleanup * Apply documentation style guide to AI Gateway pages Add personas, learning objectives, and prerequisites to all AI Gateway documentation pages. Remove DRAFT prefixes from titles and time estimates from quickstart. Fix passive voice in multiple locations. Changes: - Add page-personas attributes to all 7 files - Add learning objectives in ABCD format - Add prerequisites sections where missing - Remove "DRAFT:" from all page titles - Remove time estimates from quickstart-enhanced.adoc - Fix passive voice constructions - Improve page descriptions - Preserve all placeholder comments for future content Co-Authored-By: Claude Sonnet 4.5 * Add AI Gateway client integration documentation Provide admin and user guides for configuring Claude Code, Cline, Continue.dev, Cursor IDE, and GitHub Copilot to work with AI Gateway, enabling centralized LLM routing and MCP tool aggregation. Co-Authored-By: Claude Sonnet 4.5 * clean up * docs: Add http_server and a2a_message connector pages * cleanup overview and quickstarts * Improve AI agents documentation readability and structure - Fix period usage in numbered steps and bold labels across all AI agent docs - Add descriptive link text to xref anchor links for better accessibility - Redesign monitor-agents.adoc reducing lists from 9 to 2, converting to prose and tables - Create observability index page - Fix broken xref from billing.adoc to observability/concepts.adoc * cc audit * Improve customer support tutorial with explicit instructions - Change negative headings to positive action-oriented headings - Add explicit 'Enter this query' instructions for each test scenario - Add guidance on what to watch for in the conversation panel - Specify when to start new sessions for context clearing * Lowercase inspector when not writing about the UI button * Restructure observability docs for better information architecture Moved monitoring how-tos into context where users need them: - Monitor Agents now in agents section - Monitor MCP Servers now in mcp/remote section - Observability concepts remain centralized as single source of truth This follows the "procedures in context, concepts centralized" pattern, reducing navigation overhead and improving task completion. Also removed unnecessary observability index page since only one page remains in that section. Co-Authored-By: Claude Sonnet 4.5 * Rename to Transcripts * edit for user journey * Remove sessions and tasks topics from agent documentation Sessions and tasks topics are being soft-hidden with __ prefix as they are internal implementation details. Updated documentation to focus on user-facing monitoring features (transcripts and inspector). Changes: - Remove "Agent data topics" section from concepts.adoc with schemas - Remove "Consume agent data topics" section from monitor-agents.adoc - Update troubleshooting.adoc to reference transcripts instead of topics - Update learning objective to "Track token usage and performance metrics" - Fix xref anchor links to include descriptive text - Fix shipping carrier name to comply with Google style guide Co-Authored-By: Claude Sonnet 4.5 * update nav * update nav * Refactor AI Gateway documentation for clarity and consistency Major improvements: - Rename ai-gateway.adoc to gateway-quickstart.adoc for clearer naming - Rename ai-gateway-overview.adoc to gateway-architecture.adoc - Consolidate quickstart-enhanced.adoc into gateway-quickstart.adoc - Remove 161 lines of duplicate content between what-is and architecture pages - Add page metadata (:page-topic-type:, :page-personas:, :learning-objective-N:) to all files - Convert learning objectives from bullets to required attribute format - Create BYOC version requirement partial and add to all 23 AI Gateway pages - Restructure navigation with clearer sections (Overview, Quickstart, Architecture, Observability) - Update all cross-references to renamed files This consolidation reduces content duplication, improves metadata consistency, and provides better content organization for users. Co-Authored-By: Claude Sonnet 4.5 * style edits * Convert learning objectives to standard format across all AI Gateway docs Updated 13 files to comply with documentation standards for learning objectives: - Added learning objective attributes to metadata (3 files) - Converted all learning objective bullets to checklist format (* [ ]) Files updated: - admin/setup-guide.adoc - builders/connect-your-agent.adoc - builders/discover-gateways.adoc - All 10 integration guide files (admin and user variants for Claude Code, Cline, Continue, Cursor, GitHub Copilot) All 23 AI Gateway files now have proper learning objective format per team standards. Co-Authored-By: Claude Sonnet 4.5 * Fix persona metadata attribute to use correct standard Changed :page-personas: to :personas: across all 19 AI Gateway files. According to the docs-team-standards plugin (content-architecture skill), the correct attribute is :personas: without the page- prefix. Files updated: - All core AI Gateway files (index, overview, architecture, quickstart) - All guide files (CEL routing, MCP aggregation, migration, observability) - All 10 integration files (admin and user variants) Co-Authored-By: Claude Sonnet 4.5 * Fix Anthropic model identifiers in gateway quickstart examples Updated short invalid model names to official versioned identifiers: - claude-sonnet-3.5 → claude-3-5-sonnet-20241022 - anthropic/claude-sonnet-3.5 → anthropic/claude-3-5-sonnet-20241022 - anthropic/claude-opus-4 → anthropic/claude-opus-4-1-20250805 These changes ensure the quickstart examples use valid model IDs that match the format already used elsewhere in the file (line 478). Co-Authored-By: Claude Sonnet 4.5 * Clarify VS Code settings.json does not support native env var substitution Added IMPORTANT note in the Environment-based configuration section to warn that VS Code's .vscode/settings.json does not natively support environment variable substitution with ${VAR} syntax. The note clarifies that users must either: - Install an extension that provides variable substitution - Replace placeholders manually with actual values - Set environment variables before launching VS Code This prevents confusion about the ${GATEWAY_DEV_URL} and ${GATEWAY_DEV_ID} placeholders shown in the configuration examples. Co-Authored-By: Claude Sonnet 4.5 * Change Cursor MCP endpoint to use HTTPS instead of HTTP Updated the Node.js one-liner in the MCP configuration to use require('https') instead of require('http') to ensure the bearer token is sent over TLS when connecting to the gateway's MCP endpoint. Changes: - Line 269: require('http') → require('https') - Line 277: Updated description from "HTTP requests" to "HTTPS requests" This ensures secure transmission of the bearer token and other authentication credentials when Cursor connects to the AI Gateway MCP endpoint. Co-Authored-By: Claude Sonnet 4.5 * Fix inconsistent list markers in GitHub Copilot security section Changed mixed list markers in the "Code completion security" section to use consistent bullet markers. Lines 722-723 previously used '.' (ordered list) but were changed to '*' (unordered list) to match the rest of the list starting with "GitHub Copilot sends code context to LLM providers." Changes: - Line 722: '. Proprietary code...' → '* Proprietary code...' - Line 723: '. Configure organization...' → '* Configure organization...' This ensures consistent rendering and improves AsciiDoc compliance. Co-Authored-By: Claude Sonnet 4.5 * Fix SDK examples in migration guide and remove placeholder notes Updated framework integration examples with correct implementations: 1. Anthropic SDK section (lines 238-256): - Replaced incorrect Anthropic base_url override with OpenAI client - Anthropic's base_url only works with native /v1/messages API, not OpenAI-compatible gateways - Preserved use_gateway env var logic and REDPANDA_AI_GATEWAY_* names - Removed PLACEHOLDER note 2. LlamaIndex section (lines 629-638): - Added default_headers alongside additional_kwargs for gateway headers - Removed PLACEHOLDER note about header syntax 3. Vercel AI SDK section (lines 657-671): - Changed from openai() provider to createOpenAI() for custom endpoints - Uses createOpenAI() with baseURL, apiKey, and headers configuration - Removed PLACEHOLDER note about syntax verification Co-Authored-By: Claude Sonnet 4.5 * Soften hard numeric claims with qualifiers across AI Gateway docs Replaced absolute percentage claims with conditional language to present them as typical or potential outcomes rather than guaranteed results: 1. what-is-ai-gateway.adoc: - Line 99: "can achieve 99.9% uptime" → "can significantly improve uptime (potentially up to 99.9% in some configurations)" - Line 107: "reduces token usage by 80-90%" → "often reduces token usage by 80-90% depending on your configuration and the number of tools aggregated" 2. mcp-aggregation-guide.adoc: - Line 16: "80-90% fewer tokens" → "Often 80-90% fewer tokens (depending on configuration)" - Line 152: "80-90% reduction" → "Typically 80-90% reduction" - Line 269: "Still 80-90% lower" → "Often 80-90% lower" - Line 335: "Expected Results: 80-90% reduction" → "Typically 80-90% reduction" 3. gateway-architecture.adoc: - Line 123: "80-90% token reduction" → "often 80-90% token reduction depending on configuration" These changes ensure claims are presented as conditional outcomes that depend on configuration, rather than absolute guarantees. Co-Authored-By: Claude Sonnet 4.5 * Convert persona restructuring plan from Markdown to AsciiDoc Converted AI_GATEWAY_PERSONA_RESTRUCTURING_PLAN.md to proper AsciiDoc format: - Renamed to lowercase: ai-gateway-persona-restructuring-plan.adoc - Converted Markdown headers (# ## ###) to AsciiDoc (= == ===) - Converted Markdown tables to AsciiDoc table format with proper column specs - Converted Markdown code blocks to AsciiDoc [source,text] blocks - Converted Markdown bold (**text**) to AsciiDoc bold (*text*) - Added blank lines before and after all tables and code blocks - Fixed all code blocks to use proper language annotations (text for trees) - Removed old markdown file All tables now have proper blank lines and all fenced code blocks have language annotations, fixing MD058/MD040 violations. Co-Authored-By: Claude Sonnet 4.5 * Remove unused ai-gateway.png image file Deleted modules/shared/partials/ai-gateway.png as it's no longer needed. Co-Authored-By: Claude Sonnet 4.5 * Remove persona restructuring planning document Deleted ai-gateway-persona-restructuring-plan.adoc as it was an internal planning document that isn't referenced anywhere in the published docs. Planning documents don't need to be in the documentation tree. Co-Authored-By: Claude Sonnet 4.5 * Update Claude Code config to match Anthropic MCP schema - Change config file path from ~/.claude/config.json to ~/.claude.json - Add mention of project-level .mcp.json alternative - Replace "transport": "http" with "type": "http" per MCP spec - Remove undocumented apiProviders sections from all examples - Remove request retry configuration section (used apiProviders) - Remove troubleshooting item about missing apiProviders - Update all troubleshooting commands to use correct file path Files updated: - claude-code-admin.adoc - claude-code-user.adoc Co-Authored-By: Claude Sonnet 4.5 * Add note about environment variable interpolation in mcpServers Clarify that Claude Code supports ${VAR} syntax for environment variable interpolation in the mcpServers section, specifying which variables will be resolved at runtime (REDPANDA_GATEWAY_URL, REDPANDA_GATEWAY_ID, REDPANDA_API_KEY). Co-Authored-By: Claude Sonnet 4.5 * Update Cline config to use official extension settings Remove unofficial VS Code settings keys (cline.apiProvider, cline.apiBaseUrl, cline.customHeaders) and document that API/provider configuration is managed via Cline extension global state, not settings.json. Replace MCP configuration to use cline_mcp_settings.json with official schema: - Change "transport": "http" to "type": "streamableHttp" - Remove "cline.mcpServers" wrapper (use "mcpServers" directly) - Add "Cline > Mcp: Mode" toggle for MCP enablement - Document Cline UI and cline_mcp_settings.json as config methods Update configuration scope section to reflect extension global state storage model instead of VS Code settings.json levels. Co-Authored-By: Claude Sonnet 4.5 * Replace hardcoded token with env var in curl example Replace "YOUR_API_TOKEN" with "${REDPANDA_API_TOKEN}" environment variable in the curl Authorization header to avoid secret scanner false positives. Add inline comment and NOTE block to inform users they must set the environment variable before running the command. Co-Authored-By: Claude Sonnet 4.5 * Update Continue.dev config to current YAML standard Convert configuration from JSON to YAML format: - Change file name from ~/.continue/config.json to ~/.continue/config.yaml - Convert all JSON examples to YAML syntax - Update models, tabAutocompleteModel, apiBase, apiKey references Update MCP configuration to official schema: - Change modelContextProtocolServers (plural) to modelContextProtocolServer (singular) - Replace transport type "http" with "streamable-http" (valid value) - Add recommended directory-based configuration using ~/.continue/mcpServers/ - Provide alternative inline configuration in config.yaml Document that Continue.dev automatically discovers MCP server configurations in the mcpServers/ directory, which is the preferred configuration method. Co-Authored-By: Claude Sonnet 4.5 * Fix Continue.dev environment variable interpolation syntax Replace legacy JSON config with YAML using correct secrets interpolation: - Change from ${VAR} to ${{ secrets.VAR }} syntax - Update models -> apiKey, apiBase with secrets.REDPANDA_API_KEY and secrets.REDPANDA_GATEWAY_URL - Update requestOptions.headers.rp-aigw-id with secrets.REDPANDA_GATEWAY_ID - Update experimental.modelContextProtocolServer fields (changed from plural to singular per schema) - Change transport type from "http" to "streamable-http" - Replace transport.url, Authorization header, and rp-aigw-id header with secrets interpolation Add IMPORTANT note that ${VAR} syntax from config.json is not supported and will be treated as literal strings in Continue.dev. Replace shell environment variable exports with instructions to set secrets in Continue.dev settings UI. Co-Authored-By: Claude Sonnet 4.5 * Fix Cursor settings.json environment variable handling Add IMPORTANT note that VS Code settings.json does not support ${VAR} interpolation - such placeholders are treated as literal strings. Provide two alternatives for handling sensitive credentials: Option 1: Script-based generation - Add bash script that reads environment variables and generates settings.json with actual values for cursor.overrideOpenAIBaseUrl, cursor.overrideOpenAIApiKey, and openai.additionalHeaders - Add PowerShell script for Windows users with ConvertTo-Json - Include instructions to run script before launching Cursor Option 2: Manual value replacement - Show example with concrete placeholder values users must replace - Add security note about file permissions (chmod 600) Remove misleading instructions to set environment variables and launch from terminal, as this does not enable interpolation in settings.json. Co-Authored-By: Claude Sonnet 4.5 * Fix GitHub Copilot configuration settings and flow Update Option 1 (built-in custom models): - Change github.copilot.advanced.customModels to correct setting: github.copilot.chat.customOAIModels (experimental chat OAI models) - Restructure configuration as array instead of nested object - Add IMPORTANT note that API keys/headers must be configured via Copilot Chat UI, not settings.json - Replace environment variable instructions with Copilot Chat → Manage Models UI flow: Add Model → Select provider → Enter API key and custom headers (rp-aigw-id) - Remove references to non-working environment variable approach Update Option 2 (OAI Compatible Provider extension): - Replace incorrect oai.provider.* settings with actual extension settings: oaicopilot.baseUrl and oaicopilot.models - Remove non-existent useOAIProvider setting from configuration - Add IMPORTANT note that API keys/headers are NOT set in settings.json - Document correct flow: Copilot Chat → Manage Models → Configure provider → Enter API key and custom headers - Remove environment variable instructions that don't apply - Remove unnecessary window reload step Both options now correctly document that users must use the Copilot Chat → Manage Models UI to configure API keys and custom headers. Co-Authored-By: Claude Sonnet 4.5 * Remove duplicate rp-aigw-id from LlamaIndex example Remove rp-aigw-id from additional_kwargs in the LlamaIndex OpenAI client configuration. The header was being set twice - once in additional_kwargs (which goes in the request body) and once in default_headers (which sets HTTP headers). Keep only the default_headers configuration to correctly set the rp-aigw-id as an HTTP header. Co-Authored-By: Claude Sonnet 4.5 * Fix Continue.dev config file references to use YAML Update security guidance section to reference config.yaml instead of config.json: - Change "stores the API token in plain text in config.json" to config.yaml - Update version control warning to reference config.yaml - Update chmod example from ~/.continue/config.json to ~/.continue/config.yaml Keep guidance points the same: never commit the config file, restrict filesystem permissions, and rotate tokens if compromised. Co-Authored-By: Claude Sonnet 4.5 * Fix Continue.dev MCP server schema in config.yaml examples Update Continue.dev documentation to use the correct MCP server configuration schema: - Change from experimental.modelContextProtocolServer (singular) to mcpServers (plural) at root level - Add array syntax with dash (-) before transport configuration - Update continue-user.adoc inline config.yaml examples (2 instances) - Update continue-admin.adoc inline config.yaml example - Fix troubleshooting references to use new mcpServers schema - Convert JSON config example to YAML with new schema for consistency The new schema allows multiple MCP servers to be configured and aligns with Continue.dev's current config.yaml structure. Directory-based configuration in ~/.continue/mcpServers/ already uses correct schema. Co-Authored-By: Claude Sonnet 4.5 * Fix unsupported ${VAR} interpolation in Continue.dev project config Replace misleading ${VAR} syntax in .continuerc.json example with explicit placeholder text (your_project_api_key_here, etc.) to avoid confusion. Add IMPORTANT note explaining that .continuerc.json does not support environment variable interpolation and must use hardcoded values. Direct users to config.yaml with ${{ secrets.* }} syntax or config.ts for programmatic environment access as alternatives. Co-Authored-By: Claude Sonnet 4.5 * Improve Continue.dev documentation clarity and compliance Address critical documentation issues identified in audit: 1. Remove checkboxes from learning objectives in both user and admin guides per content architecture standards 2. Add config file format clarification section explaining JSON vs YAML, when each is required/recommended, helping users understand which format to choose 3. Fix environment variable syntax documentation: - Add explicit anchor [[configure-env-vars]] for cross-references - Clarify ${{ secrets.* }} is YAML-only - Explain config.json does not support any variable interpolation - Clarify ${VAR} syntax is treated as literal string 4. Add security warning in admin guide about hardcoded tokens with cross-reference to environment variable interpolation best practices 5. Update admin guide to acknowledge both JSON and YAML formats are supported, explaining why YAML is recommended for MCP features These changes eliminate confusion about config file formats and improve security guidance for production deployments. Co-Authored-By: Claude Sonnet 4.5 * Remove checkboxes and periods from learning objectives across all integration files Apply content architecture standards to all AI Gateway integration documentation: - Remove [ ] checkbox formatting from learning objectives - Remove trailing periods from objective fragments Files updated: - cursor-user.adoc, cursor-admin.adoc - github-copilot-user.adoc, github-copilot-admin.adoc - claude-code-user.adoc, claude-code-admin.adoc - cline-user.adoc, cline-admin.adoc Learning objectives should be simple list items without interactive elements or punctuation for fragments. Co-Authored-By: Claude Sonnet 4.5 * Revert "Remove checkboxes and periods from learning objectives across all integration files" This reverts commit 4caa90a. Checkboxes [ ] ARE the doc team standard for learning objectives in this repository, as evidenced by the MCP documentation pages and other content. The audit agent was incorrect in recommending their removal. Restored checkboxes and periods to learning objectives in all integration files to match the established pattern: * [ ] Learning objective text. Examples of this pattern in the repo: - modules/ai-agents/pages/mcp/remote/quickstart.adoc - modules/ai-agents/pages/mcp/remote/concepts.adoc - modules/ai-agents/pages/mcp/local/configuration.adoc * update nav * Doc UI and update terminology for transcripts * Add transcripts UI doc to nav * Add fraud agent tutorial * Improve readability * Update modules/ai-agents/examples/agents/fraud-agent-prompt.txt Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Apply suggestions * Apply suggestions * update cloud overview adp focus * Update cloud overview with latest ADP content from CTO Tech Talk demo Align messaging with public demo content: emphasize manufacturing use case, add multi-agent architecture, highlight MCP server security features (injection attack prevention), strengthen interoperability messaging, and remove OXLA references not yet in public materials. Co-Authored-By: Claude Sonnet 4.5 * cleanup * minor edits * Apply suggestions from SME review * minor edit * fix nav * minor edit * Apply suggestion from @JakeSCahill * Fix example * Fix code review feedback - Parse agent JSON response in fraud-detection-routing pipeline - Add .value accessor to rpk jq filter - Standardize country codes to ISO alpha-2 format - Make model references evergreen - Add Content-Type headers to HTTP POST requests - Normalize MCP tool response structures - Add low/none severity counts to risk indicators - Ensure consistent response schema in fallback branches * Apply suggestions * Apply suggestions * AWS only & what's new blurb * AWS only * Apply feedback * Update modules/ai-agents/pages/agents/overview.adoc Co-authored-by: Michele Cyran * Remove alias * Remove incorrectly added files from previous commit * Integrate AI Gateway into agent documentation - Replace API key prerequisites with AI Gateway requirement - Add gateway selection before provider/model selection - Remove 'Add API keys as secrets' section from create-agent - Update all tutorials to use gateway-based authentication * Update local-antora-playbook.yml * Replace 'Cloud UI' with 'Cloud Console' throughout ai-agents docs * Update MCP overview * Remove search and add placeholder for filtering functionality * Clarify trace format * Start telemetry doc for BYOA * Add byoa telemetry to nav tree * conditionalize out content not for package 1 * Simplify examples * Fix label * Fix label * Fix label * force build * update nav.adoc * fix nav * base * DOC-1901 * add google AI * Change filename and update with UI changes * Update nav tree with correct filename * add AI Hub documentation - Add 4 new pages: gateway modes concept, configure AI Hub, eject to custom mode, use AI Hub gateway - Add 2 reusable partials: mode indicator, preference toggles - Update 5 existing pages with AI Hub mode content - Document 17 routing rules, 6 backend pools, 6 preference toggles - Update navigation with new AI Hub pages - Fix all API paths and ensure docs team standards compliance Co-Authored-By: Claude Sonnet 4.5 * Fix nav tree and add xrefs * Minor edits to concepts * Minor edit * Fix build errors * Minor edit * Update quickstart.adoc * adp: add authorization docs * adjust to standards * Update modules/ai-agents/partials/service-account-authorization.adoc * add glossterms * use glossterms * update cloud overview adp focus * Update cloud overview with latest ADP content from CTO Tech Talk demo Align messaging with public demo content: emphasize manufacturing use case, add multi-agent architecture, highlight MCP server security features (injection attack prevention), strengthen interoperability messaging, and remove OXLA references not yet in public materials. Co-Authored-By: Claude Sonnet 4.5 * cleanup * minor edits * minor edit * minor edit * AWS only & what's new blurb # Conflicts: # modules/get-started/pages/whats-new-cloud.adoc * incorporate review feedback + add glossary terms * Fix OTLP trace ingestion docs and add code examples (#502) - Fix endpoint URL format: use pipeline URL pattern instead of internal ports (4317/4318) - Simplify pipeline YAML config with Cloud-standard env vars - Add authentication section with link to Cloud API auth docs - Add Go examples for both HTTP and gRPC transports - Add gRPC examples for Python and Node.js - Remove internal implementation details users don't need Co-authored-by: Johannes Brüderl * Edit for length * Address SME feedback * Trim Transcripts UI doc * Trim concepts content * Polish byoa telemetry doc * clean placeholders & move integrations to partials * fix xrefs to integrations * Add glossary terms * Fix gloss terms * Resolve 23 PLACEHOLDERs across AI Gateway docs Replace model="auto" with realistic model names in CEL examples, fix UI navigation paths to use Agentic AI sidebar structure, confirm streaming and response format compatibility, uncomment verification command, comment out unverified CEL sections (A/B testing, time-based routing, reject), revise geographic routing to use different providers, and update observability integrations to confirmed Prometheus + OpenTelemetry. Co-Authored-By: Claude Opus 4.6 * style edits * Update model versions and add Gemini provider support Update all AI Gateway documentation to use latest model versions: - OpenAI: gpt-5.2, gpt-5.2-mini (was gpt-4o, gpt-4o-mini) - Anthropic: claude-sonnet-4.5, claude-opus-4.6 (was claude-sonnet-3.5, claude-opus-4) - Add Google Gemini: gemini-2.0-flash, gemini-2.0-pro Updated 27 files including core docs, admin/builder guides, integration guides, CEL routing examples, and code samples across all documentation. Co-Authored-By: Claude Opus 4.5 * Move AI Hub content to partials for future release Move AI Hub documentation to partials folder to preserve content but prevent rendering in Package 1 release: - Move configure-ai-hub.adoc, eject-to-custom-mode.adoc, use-ai-hub-gateway.adoc, gateway-modes.adoc to partials/ai-hub/ - Wrap all xrefs to AI Hub pages with ifdef::ai-hub-available[] conditionals - Remove AI Hub pages from nav.adoc - Update 7 files with conditional xrefs: gateway-quickstart, setup-guide, discover-gateways, what-is-ai-gateway, gateway-architecture, ai-hub-preference-toggles AI Hub content preserved for future Package 2 release. Co-Authored-By: Claude Opus 4.5 * conditionalizing cleanup * conditionalizing cleanup * Address feedback * Update modules/ai-agents/pages/agents/architecture-patterns.adoc Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com> * Address feedback * Address feedback * Reorganize http/grpc section and fix more gloss terms * edits * Remove rp-aigw-id header references, update to URL-based gateway ID Gateway ID is now embedded in the endpoint URL path instead of passed as a separate rp-aigw-id HTTP header. Updated all code examples, UI navigation, and documentation across 22 files. Also updated observability dashboard references to point to the gateway Overview tab where applicable, and commented out references to UI features not yet available. Co-Authored-By: Claude Opus 4.6 * Update docs to match current AI Gateway UI - Update MCP server fields to match Create MCP Server dialog (Server ID, Display Name, Server Address, Defer Loading Override, Forward OIDC Token Override) - Update orchestrator section to reflect system-managed config with configurable blocked tool patterns - Update deferred loading config to use per-server Defer Loading Override dropdown instead of gateway-level toggle - Update observability references to point to gateway Overview tab - Comment out references to UI features not yet available Co-Authored-By: Claude Opus 4.6 * rename MCP Gateway chapter * improved messaging from Alex * improved messaging from Alex * improved messaging from Alex for AI Gateway * improved messaging from Alex for MCP * improved messaging from Alex + new ADP overview * delete original overview * fix index.adoc * cleanup * style edits * Make observability intros more evaluator-friendly and outcome-based * Remove file duplicated after rename to transcripts.adoc * Add new log gloss term * Plain language * Minor intro section tweak * add LA and position admonition consistently * add practical business value of ADP to overview * cleanup * minor edits * coderabbit fix * fix incorrect CEL field names to use request.body.* schema Co-Authored-By: Claude Opus 4.6 * fix invalid Cursor MCP config key: transport -> type: streamable-http Co-Authored-By: Claude Opus 4.6 * coderabbit fix in partial * Update modules/ai-agents/examples/mcp-tools/inputs/stream_processing.yaml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix Claude Code LLM routing to use environment variables Replace non-existent claude config set flags with ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN environment variables. Co-Authored-By: Claude Opus 4.6 * fix OTLP status code values: 0=UNSET, 1=OK, 2=ERROR Co-Authored-By: Claude Opus 4.6 * fix CEL request path and add safe-access guard in cline-user Co-Authored-By: Claude Opus 4.6 * fix jq selector to access .value wrapper consistently Co-Authored-By: Claude Opus 4.6 * clarify env var interpolation scope: .mcp.json only, not ~/.claude.json Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: micheleRP Co-authored-by: Claude Sonnet 4.5 Co-authored-by: JakeSCahill Co-authored-by: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com> Co-authored-by: Kat Batuigas Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Johannes Brüderl Co-authored-by: Johannes Brüderl Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com> Co-authored-by: Paulo Borges --- .../examples/agents/account-agent-prompt.txt | 62 + .../agents/compliance-agent-prompt.txt | 120 ++ .../agents/dispute-root-agent-prompt.txt | 130 +++ .../examples/agents/fraud-agent-prompt.txt | 85 ++ .../examples/agents/merchant-agent-prompt.txt | 87 ++ .../{ => mcp-tools/caches}/memory_cache.yaml | 0 .../caches}/redpanda_cache.yaml | 0 .../mcp-tools/caches/session_cache.yaml | 13 + .../mcp-tools/inputs/consume_redpanda.yaml | 22 + .../inputs/event_driven_workflow.yaml | 39 + .../inputs}/generate_input.yaml | 0 .../mcp-tools/inputs/read_events.yaml | 21 + .../mcp-tools/inputs/stream_processing.yaml | 28 + .../mcp-tools/outputs/publish_event.yaml | 20 + .../outputs/publish_with_timestamp.yaml | 25 + .../outputs}/redpanda_output.yaml | 0 .../redpanda_output_with_processors.yaml | 2 +- .../processors/calculate_fraud_score.yaml | 108 ++ .../check_regulatory_requirements.yaml | 116 ++ .../processors}/customer_enrichment.yaml | 0 .../mcp-tools/processors/enrich_order.yaml | 15 + .../gcp_bigquery_select_processor.yaml | 0 .../processors/get_customer_account.yaml | 51 + .../processors/get_customer_history.yaml | 38 + .../processors/get_merchant_category.yaml | 90 ++ .../processors/get_order_status.yaml | 46 + .../processors/get_risk_indicators.yaml | 129 +++ .../processors/get_shipping_info.yaml | 38 + .../processors/get_transaction_details.yaml | 99 ++ .../processors/get_transaction_history.yaml | 108 ++ .../processors/get_weather_complete.yaml | 55 + .../processors/get_weather_simple.yaml | 17 + .../processors}/http_processor.yaml | 0 .../mcp-tools/processors/log_audit_event.yaml | 60 + .../mcp-tools/processors/lookup_customer.yaml | 23 + .../processors}/observable_tool.yaml | 0 .../mcp-tools/processors/openai_chat.yaml | 27 + .../processors/openai_embeddings.yaml | 20 + .../processors}/order_workflow.yaml | 6 +- .../mcp-tools/processors/search_jira.yaml | 31 + .../processors/transform_validate.yaml | 40 + .../mcp-tools/processors/verify_merchant.yaml | 126 +++ .../processors}/weather_service.yaml | 0 .../snippets/bloblang_this_context.yaml | 15 + .../examples/mcp-tools/snippets/defaults.yaml | 24 + .../mcp-tools/snippets/interpolation.yaml | 13 + .../examples/mcp-tools/snippets/secrets.yaml | 14 + .../test-mcp-tools.sh} | 127 ++- .../pipelines/agent-transformation.yaml | 32 + .../examples/pipelines/async-workflows.yaml | 32 + .../examples/pipelines/dispute-pipeline.yaml | 157 +++ .../pipelines/event-driven-invocation.yaml | 30 + .../pipelines/fraud-detection-routing.yaml | 75 ++ .../pipelines/fraud-detection-simple.yaml | 30 + .../pipelines/multi-agent-orchestration.yaml | 35 + .../pipelines/streaming-enrichment.yaml | 35 + .../ROOT/examples/pipelines/test-pipelines.sh | 114 ++ modules/ROOT/examples/testing.adoc | 290 ----- modules/ROOT/images/agent-exit-conditions.png | Bin 0 -> 3894398 bytes modules/ROOT/images/agent-reasoning-loop.png | Bin 0 -> 4110727 bytes modules/ROOT/pages/adp-overview.adoc | 89 ++ modules/ROOT/pages/agents/a2a-concepts.adoc | 123 ++ .../pages/agents/architecture-patterns.adoc | 263 +++++ modules/ROOT/pages/agents/build-index.adoc | 7 + modules/ROOT/pages/agents/concepts.adoc | 162 +++ modules/ROOT/pages/agents/create-agent.adoc | 281 +++++ .../ROOT/pages/agents/get-started-index.adoc | 7 + modules/ROOT/pages/agents/index.adoc | 5 + .../ROOT/pages/agents/integration-index.adoc | 8 + .../pages/agents/integration-overview.adoc | 130 +++ modules/ROOT/pages/agents/monitor-agents.adoc | 101 ++ modules/ROOT/pages/agents/overview.adoc | 70 ++ .../agents/pipeline-integration-patterns.adoc | 145 +++ .../pages/agents/prompt-best-practices.adoc | 426 +++++++ modules/ROOT/pages/agents/quickstart.adoc | 187 +++ .../ROOT/pages/agents/troubleshooting.adoc | 487 ++++++++ .../tutorials/customer-support-agent.adoc | 275 +++++ .../transaction-dispute-resolution.adoc | 665 +++++++++++ .../pages/ai-gateway/admin/setup-guide.adoc | 396 +++++++ .../builders/connect-your-agent.adoc | 546 +++++++++ .../builders/discover-gateways.adoc | 310 +++++ .../ai-gateway/cel-routing-cookbook.adoc | 953 ++++++++++++++++ .../ai-gateway/gateway-architecture.adoc | 221 ++++ .../pages/ai-gateway/gateway-quickstart.adoc | 542 +++++++++ modules/ROOT/pages/ai-gateway/index.adoc | 6 + .../ai-gateway/mcp-aggregation-guide.adoc | 1005 +++++++++++++++++ .../pages/ai-gateway/what-is-ai-gateway.adoc | 194 ++++ modules/ROOT/pages/index.adoc | 8 +- modules/ROOT/pages/mcp/index.adoc | 4 +- .../ROOT/pages/mcp/local/configuration.adoc | 2 +- modules/ROOT/pages/mcp/local/index.adoc | 2 +- modules/ROOT/pages/mcp/local/overview.adoc | 8 +- modules/ROOT/pages/mcp/local/quickstart.adoc | 8 +- modules/ROOT/pages/mcp/overview.adoc | 12 +- .../ROOT/pages/mcp/remote/admin-guide.adoc | 41 - .../ROOT/pages/mcp/remote/best-practices.adoc | 8 +- modules/ROOT/pages/mcp/remote/concepts.adoc | 138 +-- .../ROOT/pages/mcp/remote/create-tool.adoc | 207 +--- modules/ROOT/pages/mcp/remote/index.adoc | 2 +- .../ROOT/pages/mcp/remote/manage-servers.adoc | 17 +- .../pages/mcp/remote/monitor-activity.adoc | 113 -- .../pages/mcp/remote/monitor-mcp-servers.adoc | 104 ++ modules/ROOT/pages/mcp/remote/overview.adoc | 34 +- modules/ROOT/pages/mcp/remote/quickstart.adoc | 34 +- .../pages/mcp/remote/scale-resources.adoc | 2 +- .../ROOT/pages/mcp/remote/tool-patterns.adoc | 125 +- .../pages/mcp/remote/troubleshooting.adoc | 8 +- .../ROOT/pages/observability/concepts.adoc | 344 ++++++ modules/ROOT/pages/observability/index.adoc | 7 + .../observability/ingest-custom-traces.adoc | 620 ++++++++++ .../ROOT/pages/observability/transcripts.adoc | 132 +++ .../ROOT/partials/ai-gateway-byoc-note.adoc | 1 + .../ROOT/partials/ai-hub-mode-indicator.adoc | 43 + .../partials/ai-hub-preference-toggles.adoc | 66 ++ .../partials/ai-hub/configure-ai-hub.adoc | 436 +++++++ .../partials/ai-hub/eject-to-custom-mode.adoc | 400 +++++++ .../ROOT/partials/ai-hub/gateway-modes.adoc | 274 +++++ .../partials/ai-hub/use-ai-hub-gateway.adoc | 429 +++++++ .../ROOT/partials/byoc-aws-requirement.adoc | 1 + .../integrations/claude-code-admin.adoc | 498 ++++++++ .../integrations/claude-code-user.adoc | 406 +++++++ .../partials/integrations/cline-admin.adoc | 579 ++++++++++ .../partials/integrations/cline-user.adoc | 735 ++++++++++++ .../partials/integrations/continue-admin.adoc | 741 ++++++++++++ .../partials/integrations/continue-user.adoc | 851 ++++++++++++++ .../partials/integrations/cursor-admin.adoc | 814 +++++++++++++ .../partials/integrations/cursor-user.adoc | 819 ++++++++++++++ .../integrations/github-copilot-admin.adoc | 824 ++++++++++++++ .../integrations/github-copilot-user.adoc | 916 +++++++++++++++ modules/ROOT/partials/integrations/index.adoc | 5 + modules/ROOT/partials/migration-guide.adoc | 879 ++++++++++++++ modules/ROOT/partials/observability-logs.adoc | 772 +++++++++++++ .../ROOT/partials/observability-metrics.adoc | 860 ++++++++++++++ .../service-account-authorization.adoc | 61 + .../ROOT/partials/transcripts-ui-guide.adoc | 89 ++ 135 files changed, 23012 insertions(+), 991 deletions(-) create mode 100644 modules/ROOT/examples/agents/account-agent-prompt.txt create mode 100644 modules/ROOT/examples/agents/compliance-agent-prompt.txt create mode 100644 modules/ROOT/examples/agents/dispute-root-agent-prompt.txt create mode 100644 modules/ROOT/examples/agents/fraud-agent-prompt.txt create mode 100644 modules/ROOT/examples/agents/merchant-agent-prompt.txt rename modules/ROOT/examples/{ => mcp-tools/caches}/memory_cache.yaml (100%) rename modules/ROOT/examples/{ => mcp-tools/caches}/redpanda_cache.yaml (100%) create mode 100644 modules/ROOT/examples/mcp-tools/caches/session_cache.yaml create mode 100644 modules/ROOT/examples/mcp-tools/inputs/consume_redpanda.yaml create mode 100644 modules/ROOT/examples/mcp-tools/inputs/event_driven_workflow.yaml rename modules/ROOT/examples/{ => mcp-tools/inputs}/generate_input.yaml (100%) create mode 100644 modules/ROOT/examples/mcp-tools/inputs/read_events.yaml create mode 100644 modules/ROOT/examples/mcp-tools/inputs/stream_processing.yaml create mode 100644 modules/ROOT/examples/mcp-tools/outputs/publish_event.yaml create mode 100644 modules/ROOT/examples/mcp-tools/outputs/publish_with_timestamp.yaml rename modules/ROOT/examples/{ => mcp-tools/outputs}/redpanda_output.yaml (100%) rename modules/ROOT/examples/{ => mcp-tools/outputs}/redpanda_output_with_processors.yaml (97%) create mode 100644 modules/ROOT/examples/mcp-tools/processors/calculate_fraud_score.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/check_regulatory_requirements.yaml rename modules/ROOT/examples/{ => mcp-tools/processors}/customer_enrichment.yaml (100%) create mode 100644 modules/ROOT/examples/mcp-tools/processors/enrich_order.yaml rename modules/ROOT/examples/{ => mcp-tools/processors}/gcp_bigquery_select_processor.yaml (100%) create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_customer_account.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_customer_history.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_merchant_category.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_order_status.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_risk_indicators.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_shipping_info.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_transaction_details.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_transaction_history.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_weather_complete.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/get_weather_simple.yaml rename modules/ROOT/examples/{ => mcp-tools/processors}/http_processor.yaml (100%) create mode 100644 modules/ROOT/examples/mcp-tools/processors/log_audit_event.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/lookup_customer.yaml rename modules/ROOT/examples/{ => mcp-tools/processors}/observable_tool.yaml (100%) create mode 100644 modules/ROOT/examples/mcp-tools/processors/openai_chat.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/openai_embeddings.yaml rename modules/ROOT/examples/{ => mcp-tools/processors}/order_workflow.yaml (95%) create mode 100644 modules/ROOT/examples/mcp-tools/processors/search_jira.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/transform_validate.yaml create mode 100644 modules/ROOT/examples/mcp-tools/processors/verify_merchant.yaml rename modules/ROOT/examples/{ => mcp-tools/processors}/weather_service.yaml (100%) create mode 100644 modules/ROOT/examples/mcp-tools/snippets/bloblang_this_context.yaml create mode 100644 modules/ROOT/examples/mcp-tools/snippets/defaults.yaml create mode 100644 modules/ROOT/examples/mcp-tools/snippets/interpolation.yaml create mode 100644 modules/ROOT/examples/mcp-tools/snippets/secrets.yaml rename modules/ROOT/examples/{test-mcp-examples.sh => mcp-tools/test-mcp-tools.sh} (62%) create mode 100644 modules/ROOT/examples/pipelines/agent-transformation.yaml create mode 100644 modules/ROOT/examples/pipelines/async-workflows.yaml create mode 100644 modules/ROOT/examples/pipelines/dispute-pipeline.yaml create mode 100644 modules/ROOT/examples/pipelines/event-driven-invocation.yaml create mode 100644 modules/ROOT/examples/pipelines/fraud-detection-routing.yaml create mode 100644 modules/ROOT/examples/pipelines/fraud-detection-simple.yaml create mode 100644 modules/ROOT/examples/pipelines/multi-agent-orchestration.yaml create mode 100644 modules/ROOT/examples/pipelines/streaming-enrichment.yaml create mode 100755 modules/ROOT/examples/pipelines/test-pipelines.sh delete mode 100644 modules/ROOT/examples/testing.adoc create mode 100644 modules/ROOT/images/agent-exit-conditions.png create mode 100644 modules/ROOT/images/agent-reasoning-loop.png create mode 100644 modules/ROOT/pages/adp-overview.adoc create mode 100644 modules/ROOT/pages/agents/a2a-concepts.adoc create mode 100644 modules/ROOT/pages/agents/architecture-patterns.adoc create mode 100644 modules/ROOT/pages/agents/build-index.adoc create mode 100644 modules/ROOT/pages/agents/concepts.adoc create mode 100644 modules/ROOT/pages/agents/create-agent.adoc create mode 100644 modules/ROOT/pages/agents/get-started-index.adoc create mode 100644 modules/ROOT/pages/agents/index.adoc create mode 100644 modules/ROOT/pages/agents/integration-index.adoc create mode 100644 modules/ROOT/pages/agents/integration-overview.adoc create mode 100644 modules/ROOT/pages/agents/monitor-agents.adoc create mode 100644 modules/ROOT/pages/agents/overview.adoc create mode 100644 modules/ROOT/pages/agents/pipeline-integration-patterns.adoc create mode 100644 modules/ROOT/pages/agents/prompt-best-practices.adoc create mode 100644 modules/ROOT/pages/agents/quickstart.adoc create mode 100644 modules/ROOT/pages/agents/troubleshooting.adoc create mode 100644 modules/ROOT/pages/agents/tutorials/customer-support-agent.adoc create mode 100644 modules/ROOT/pages/agents/tutorials/transaction-dispute-resolution.adoc create mode 100644 modules/ROOT/pages/ai-gateway/admin/setup-guide.adoc create mode 100644 modules/ROOT/pages/ai-gateway/builders/connect-your-agent.adoc create mode 100644 modules/ROOT/pages/ai-gateway/builders/discover-gateways.adoc create mode 100644 modules/ROOT/pages/ai-gateway/cel-routing-cookbook.adoc create mode 100644 modules/ROOT/pages/ai-gateway/gateway-architecture.adoc create mode 100644 modules/ROOT/pages/ai-gateway/gateway-quickstart.adoc create mode 100644 modules/ROOT/pages/ai-gateway/index.adoc create mode 100644 modules/ROOT/pages/ai-gateway/mcp-aggregation-guide.adoc create mode 100644 modules/ROOT/pages/ai-gateway/what-is-ai-gateway.adoc delete mode 100644 modules/ROOT/pages/mcp/remote/admin-guide.adoc delete mode 100644 modules/ROOT/pages/mcp/remote/monitor-activity.adoc create mode 100644 modules/ROOT/pages/mcp/remote/monitor-mcp-servers.adoc create mode 100644 modules/ROOT/pages/observability/concepts.adoc create mode 100644 modules/ROOT/pages/observability/index.adoc create mode 100644 modules/ROOT/pages/observability/ingest-custom-traces.adoc create mode 100644 modules/ROOT/pages/observability/transcripts.adoc create mode 100644 modules/ROOT/partials/ai-gateway-byoc-note.adoc create mode 100644 modules/ROOT/partials/ai-hub-mode-indicator.adoc create mode 100644 modules/ROOT/partials/ai-hub-preference-toggles.adoc create mode 100644 modules/ROOT/partials/ai-hub/configure-ai-hub.adoc create mode 100644 modules/ROOT/partials/ai-hub/eject-to-custom-mode.adoc create mode 100644 modules/ROOT/partials/ai-hub/gateway-modes.adoc create mode 100644 modules/ROOT/partials/ai-hub/use-ai-hub-gateway.adoc create mode 100644 modules/ROOT/partials/byoc-aws-requirement.adoc create mode 100644 modules/ROOT/partials/integrations/claude-code-admin.adoc create mode 100644 modules/ROOT/partials/integrations/claude-code-user.adoc create mode 100644 modules/ROOT/partials/integrations/cline-admin.adoc create mode 100644 modules/ROOT/partials/integrations/cline-user.adoc create mode 100644 modules/ROOT/partials/integrations/continue-admin.adoc create mode 100644 modules/ROOT/partials/integrations/continue-user.adoc create mode 100644 modules/ROOT/partials/integrations/cursor-admin.adoc create mode 100644 modules/ROOT/partials/integrations/cursor-user.adoc create mode 100644 modules/ROOT/partials/integrations/github-copilot-admin.adoc create mode 100644 modules/ROOT/partials/integrations/github-copilot-user.adoc create mode 100644 modules/ROOT/partials/integrations/index.adoc create mode 100644 modules/ROOT/partials/migration-guide.adoc create mode 100644 modules/ROOT/partials/observability-logs.adoc create mode 100644 modules/ROOT/partials/observability-metrics.adoc create mode 100644 modules/ROOT/partials/service-account-authorization.adoc create mode 100644 modules/ROOT/partials/transcripts-ui-guide.adoc diff --git a/modules/ROOT/examples/agents/account-agent-prompt.txt b/modules/ROOT/examples/agents/account-agent-prompt.txt new file mode 100644 index 0000000..63469b0 --- /dev/null +++ b/modules/ROOT/examples/agents/account-agent-prompt.txt @@ -0,0 +1,62 @@ +You are the account agent for ACME Bank's dispute resolution system. You specialize in retrieving customer account information and transaction data. + +## Your Responsibilities + +- Look up customer account details with PII masking +- Retrieve specific transaction information +- Provide transaction pattern analysis +- Return only data available from your tools + +## Available Tools + +1. **get_customer_account**: Returns account data with masked PII + - Input: customer_id + - Returns: Name, masked email, card last 4, account type, location + +2. **get_transaction_details**: Returns detailed transaction information + - Input: transaction_id + - Returns: Amount, merchant, date, location, card used + +3. **get_transaction_history**: Returns spending pattern analysis + - Input: customer_id + - Returns: Aggregated spending patterns, categories, locations + +## PII Protection Rules + +Always return masked data: +- Email: First letter + **** + @domain (for example, "s****@example.com") +- Phone: ***-***-XXXX (last 4 digits only) +- Card: Last 4 digits only +- Never return: Full card numbers, SSNs, full account numbers + +## Response Format + +Structure responses clearly: + +"I found the following account information: +- Customer: [Name] +- Account Type: [Type] +- Card ending in: [Last 4] +- Primary Location: [City, State, Country] + +Transaction details: +- Amount: $[Amount] +- Merchant: [Merchant Name] +- Date: [Date] +- Location: [Transaction Location]" + +## Error Handling + +If data not found: +- "I couldn't find an account for customer ID [ID]" +- "No transaction found with ID [ID]" +- Never guess or make up information + +## What You Don't Do + +- Don't calculate fraud scores (that's fraud-agent's job) +- Don't verify merchants (that's merchant-agent's job) +- Don't make recommendations about disputes +- Don't log audit events (that's compliance-agent's job) + +Your job is data retrieval only. Provide accurate, masked data and let the root agent make decisions. diff --git a/modules/ROOT/examples/agents/compliance-agent-prompt.txt b/modules/ROOT/examples/agents/compliance-agent-prompt.txt new file mode 100644 index 0000000..8704ecd --- /dev/null +++ b/modules/ROOT/examples/agents/compliance-agent-prompt.txt @@ -0,0 +1,120 @@ +You are the compliance agent for ACME Bank's dispute resolution system. You specialize in regulatory requirements and audit logging. + +## Your Responsibilities + +- Log all dispute investigation actions for audit trail +- Check regulatory requirements for dispute types +- Verify compliance with banking regulations +- Provide timeline and documentation requirements + +## Available Tools + +1. **log_audit_event**: Log investigation actions + - Input: Transaction ID, customer ID, decision, evidence, outcome + - Returns: Audit record confirmation + +2. **check_regulatory_requirements**: Look up compliance rules + - Input: dispute_type (fraud, billing_error, service_not_received) + - Returns: Regulations, timelines, documentation requirements + +## Regulatory Frameworks + +You work with these regulations: + +1. **Regulation E (Electronic Fund Transfer Act)** + - Applies to: Fraud disputes, unauthorized transactions + - Customer liability: $50 if reported within 2 days, $500 if reported within 60 days + - Bank must provide provisional credit within 10 business days + - Investigation deadline: 90 days + +2. **Fair Credit Billing Act** + - Applies to: Billing errors, disputes + - Customer must dispute within 60 days of statement + - Bank must acknowledge within 30 days + - Resolution deadline: 90 days + +3. **Card Network Rules (Visa/Mastercard)** + - Chargeback rights and timelines + - Merchant response requirements + - Evidence requirements + +## Documentation Requirements + +For each dispute type, log: + +**Fraud Disputes:** +- Customer dispute affidavit +- Transaction details +- Fraud indicators identified +- Decision and reasoning +- Customer notification + +**Billing Errors:** +- Billing statement +- Customer dispute letter +- Merchant communication attempts +- Resolution details + +**Service Not Received:** +- Proof of non-delivery +- Merchant communication attempts +- Order/booking confirmation +- Resolution outcome + +## Timeline Tracking + +Monitor key deadlines: + +- Acknowledge dispute: 24-30 days (varies by type) +- Provisional credit: 10 business days (fraud) +- Final decision: 90 days (most disputes) +- Chargeback filing: 120 days (service issues) + +## Response Format + +For regulatory checks: + +"Compliance Requirements: + +Dispute Type: [Type] +Applicable Regulations: +- [Regulation 1] +- [Regulation 2] + +Customer Rights: +- Liability Limit: $[Amount] +- Notification Deadline: [Days] days + +Bank Obligations: +- Provisional Credit: [Required/Not Required] +- Investigation Deadline: [Days] days +- Customer Notification: [Required/Not Required] + +Documentation Required: +- [Document 1] +- [Document 2] +- [Document 3] + +Timeline: +- Acknowledge: [Timeframe] +- Decision: [Timeframe]" + +For audit logging: + +"Audit Event Logged: + +Audit ID: [UUID] +Timestamp: [ISO 8601] +Investigation Details: [Summary] +Decision: [Decision] +Evidence: [Evidence Sources] +Status: Recorded" + +## What You Don't Do + +- Don't retrieve transaction or account data +- Don't calculate fraud scores +- Don't verify merchants +- Don't make dispute recommendations + +Your job is compliance and audit only. Ensure all investigations are properly documented and regulatory requirements are met. diff --git a/modules/ROOT/examples/agents/dispute-root-agent-prompt.txt b/modules/ROOT/examples/agents/dispute-root-agent-prompt.txt new file mode 100644 index 0000000..2461e47 --- /dev/null +++ b/modules/ROOT/examples/agents/dispute-root-agent-prompt.txt @@ -0,0 +1,130 @@ +You are the root agent for a transaction dispute resolution system at ACME Bank. Your role is to orchestrate sub-agents and make final recommendations to customers about disputed transactions. + +## Your Responsibilities + +- Route customer queries to appropriate sub-agents +- Aggregate results from multiple sub-agents +- Make evidence-based recommendations +- Communicate clearly with customers +- Escalate complex cases to human agents + +## Available Sub-Agents + +You have access to four specialized sub-agents via A2A protocol: + +1. **account-agent**: Retrieves customer account data and transaction history +2. **fraud-agent**: Analyzes fraud risk and calculates risk scores +3. **merchant-agent**: Verifies merchant legitimacy and reputation +4. **compliance-agent**: Logs audit events and checks regulatory requirements + +## Decision Framework + +When investigating a dispute, follow this process: + +1. Start with account-agent to get customer and transaction details +2. Route to fraud-agent if fraud is suspected +3. Route to merchant-agent to verify merchant legitimacy +4. Route to compliance-agent to log the investigation and check requirements +5. Aggregate all evidence and make recommendation + +## Risk-Based Recommendations + +Based on aggregated evidence, take these actions: + +- **Fraud score 80-100 + high merchant risk**: Block the transaction immediately, block the card, issue new card +- **Fraud score 60-79**: Hold for specialist review, temporary card block +- **Fraud score 40-59**: Ask customer to verify with merchant first before taking action +- **Fraud score 0-39**: Likely legitimate transaction, help customer recall the purchase + +## Escalation Criteria + +Escalate to human agent when: + +- Fraud score is medium (40-70) and evidence is conflicting +- Customer disputes the recommendation strongly +- Regulatory requirements exceed available tools +- Subscription or recurring billing issues require merchant intervention + +## Compliance Constraints + +Never: + +- Expose full credit card numbers or SSNs (use masked versions only) +- Make guarantees about dispute outcomes (use "likely" or "recommend") +- Process disputes without logging to compliance-agent +- Reveal internal fraud detection logic or merchant scoring details to customers +- Make decisions without sub-agent evidence +- Ask customers for screenshots or additional proof (you have the transaction records) + +## Customer Communication Style + +**Clear, bank-appropriate language:** +- Use "I've reviewed your account" not "I called the account-agent" +- Use "this charge doesn't match your typical spending" not "fraud score is 95/100" +- Use "We're blocking this card" not "I recommend you freeze it" +- Don't reveal merchant reputation scores or fraud report counts + +**Proactive protection:** +For likely fraud (score 80+): +- Block the card immediately: "We're blocking your card ending in [XXXX] right now to prevent additional fraudulent charges" +- Issue replacement: "We'll send you a replacement card with a new number" +- Process the claim: "You'll see the credit for this charge within 10 business days" + +For uncertain cases (score 40-79): +- Temporary block: "I'm placing a temporary hold on this card while we investigate" +- Escalate: "A specialist will contact you within 24 hours" + +**Concise responses:** +Keep responses to 3-4 short paragraphs maximum. Customers want action, not detailed analysis. + +## Example Investigation Flow + +Customer: "I see a $1,847.99 charge from 'LUXURY WATCHES INT' in Singapore on transaction TXN-89012. This is fraud. My customer ID is CUST-1001." + +**Your response to customer:** + +"I've reviewed your account and this transaction. This charge doesn't match your typical spending pattern, and you haven't made international purchases in the past 90 days. + +Here's what I'm doing: +- Blocking your card ending in 4532 right now to prevent any additional unauthorized charges +- Approving your dispute for the full $1,847.99 - you'll see the credit within 10 business days +- Sending you a replacement card with a new number within 5-7 business days + +Your dispute has been logged and meets the requirements under Regulation E for unauthorized electronic fund transfers. + +Is there anything else I can help you with today?" + +**What you actually did behind the scenes:** +1. Called account-agent → confirmed US-based customer, no international history +2. Called fraud-agent → received score 95/100 (critical risk) +3. Called merchant-agent → confirmed high fraud indicators +4. Called compliance-agent → logged under Regulation E +5. Made decision: transaction is fraudulent, block card immediately + +(Don't share the scores or technical details with the customer) + +**Note:** When talking to customers, use natural banking language like "approving your dispute." But for programmatic JSON responses, "recommendation" describes the TRANSACTION status, not the dispute claim status. + +## Programmatic Invocations + +When invoked from a pipeline or automated system (you'll receive transaction data without conversational context), respond with ONLY valid JSON. No explanatory text, no markdown formatting, no commentary before or after - just the JSON object. + +Required JSON format: +{ + "recommendation": "block_and_investigate" | "hold_for_review" | "approve", + "fraud_score": , + "confidence": "high" | "medium" | "low", + "reasoning": "" +} + +**Recommendation field definitions:** +- **"block_and_investigate"**: Transaction is fraudulent. Block the card immediately and investigate. +- **"hold_for_review"**: Unclear if fraudulent. Place temporary hold and escalate to human specialist. +- **"approve"**: Transaction is legitimate. Customer likely forgot about it or needs clarification. + +**Mapping from conversational actions:** +- If you would block the card → use "block_and_investigate" +- If you would escalate to specialist → use "hold_for_review" +- If transaction seems legitimate → use "approve" + +The pipeline will parse this JSON to make automated decisions. Any non-JSON response will cause processing failures. diff --git a/modules/ROOT/examples/agents/fraud-agent-prompt.txt b/modules/ROOT/examples/agents/fraud-agent-prompt.txt new file mode 100644 index 0000000..b2c8a26 --- /dev/null +++ b/modules/ROOT/examples/agents/fraud-agent-prompt.txt @@ -0,0 +1,85 @@ +You are the fraud detection agent for ACME Bank's dispute resolution system. You specialize in analyzing transactions for fraud indicators and calculating risk scores. + +## Your Responsibilities + +- Calculate fraud risk scores (0-100 scale) +- Identify specific fraud indicators +- Provide risk assessment reasoning +- Return confidence levels with assessments + +## Available Tools + +1. **calculate_fraud_score**: Multi-factor fraud scoring + - Input: transaction_id, customer_id + - Returns: Fraud score (0-100), risk level, breakdown by factor, recommendation + +2. **get_risk_indicators**: Detailed fraud signal detection + - Input: transaction_id + - Returns: Array of risk indicators with severity levels + +## Risk Scoring Factors + +Consider these factors: + +1. **Location Risk** (0-30 points) + - International vs. customer's country + - City mismatch from customer's primary location + - High-risk countries + +2. **Merchant Risk** (0-25 points) + - Merchant reputation score + - Fraud report history + - Business verification status + +3. **Amount Risk** (0-25 points) + - Deviation from customer's average + - Unusually large for merchant category + - Round numbers (potential testing) + +4. **Velocity Risk** (0-10 points) + - Multiple transactions in short timeframe + - Rapid succession of purchases + - Geographic impossibility + +5. **Category Risk** (0-10 points) + - Outside customer's typical categories + - High-risk MCC codes + - Mismatch with spending patterns +## Risk Levels + +- **Critical (80-100)**: Almost certainly fraud, immediate action needed +- **High (60-79)**: Strong fraud indicators, hold for review +- **Medium (40-59)**: Some concerning factors, customer verification recommended +- **Low (20-39)**: Minor flags, likely legitimate +- **Minimal (0-19)**: No significant fraud indicators + +## Response Format + +Structure your analysis: + +"Fraud Risk Analysis: + +Fraud Score: [Score]/100 - [Risk Level] + +Risk Breakdown: +- Location Risk: [Score] - [Explanation] +- Merchant Risk: [Score] - [Explanation] +- Amount Risk: [Score] - [Explanation] +- Velocity Risk: [Score] - [Explanation] +- Category Risk: [Score] - [Explanation] + +Key Indicators: +- [Indicator 1] +- [Indicator 2] +- [Indicator 3] + +Recommendation: [block_and_investigate | hold_for_review | monitor_closely | approve]" + +## What You Don't Do + +- Don't retrieve account or transaction data (use what's provided) +- Don't verify merchants (that's merchant-agent's job) +- Don't make final dispute decisions (provide recommendation only) +- Don't log audit events + +Your job is fraud analysis only. Provide objective risk assessment based on available data. diff --git a/modules/ROOT/examples/agents/merchant-agent-prompt.txt b/modules/ROOT/examples/agents/merchant-agent-prompt.txt new file mode 100644 index 0000000..bb6ee31 --- /dev/null +++ b/modules/ROOT/examples/agents/merchant-agent-prompt.txt @@ -0,0 +1,87 @@ +You are the merchant verification agent for ACME Bank's dispute resolution system. You specialize in verifying merchant legitimacy and reputation. + +## Your Responsibilities + +- Verify merchant reputation and legitimacy +- Look up merchant category codes (MCC) +- Identify known fraud patterns for merchant categories +- Provide merchant-specific insights + +## Available Tools + +1. **verify_merchant**: Merchant reputation lookup + - Input: merchant_name + - Returns: Reputation score, fraud reports, business verification, red flags + +2. **get_merchant_category**: MCC code analysis + - Input: mcc (4-digit code) + - Returns: Category details, typical transaction ranges, fraud risk profile + +## Reputation Scoring + +Interpret reputation scores: + +- **90-100**: Excellent, trusted merchant +- **70-89**: Good, established business +- **50-69**: Moderate, some concerns +- **30-49**: Poor, significant red flags +- **0-29**: High risk, strong fraud indicators + +## Red Flags to Report + +Watch for: +- High volume of fraud reports +- Recently established businesses in high-risk categories +- Unverified business registration +- Pattern of chargebacks +- Operates in high-risk jurisdictions +- Billing descriptor mismatches + +## Common Merchant Issues + +Be aware of legitimate merchant problems: + +- **Subscription services**: Known for duplicate billing, difficult cancellation +- **International hotels**: Currency conversion confusion, incidental charges +- **Online marketplaces**: Third-party sellers, billing descriptor confusion +- **Travel booking**: Pre-authorization holds, cancellation fee disputes + +## Response Format + +Structure your verification: + +"Merchant Verification Results: + +Merchant: [Name] +Reputation Score: [Score]/100 - [Level] +Verification Status: [Verified | Unverified | Unknown] + +Business Details: +- Country: [Country] +- Years in Operation: [Years] +- Registration: [Verified/Unverified] + +Fraud Reports: +- Total Reports: [Count] +- Recent (30 days): [Count] +- Confirmed Fraud Cases: [Count] + +Category Analysis (MCC [Code]): +- Category: [Category Name] +- Risk Profile: [High/Medium/Low] +- Typical Transaction Range: $[Min]-$[Max] + +Red Flags: +- [Flag 1] +- [Flag 2] + +Recommendation: [trusted_merchant | verify_subscription_details | manual_review_required | block_merchant]" + +## What You Don't Do + +- Don't calculate fraud scores (that's fraud-agent's job) +- Don't retrieve transaction data (that's account-agent's job) +- Don't make final dispute decisions +- Don't log audit events + +Your job is merchant verification only. Provide objective assessment of merchant legitimacy. diff --git a/modules/ROOT/examples/memory_cache.yaml b/modules/ROOT/examples/mcp-tools/caches/memory_cache.yaml similarity index 100% rename from modules/ROOT/examples/memory_cache.yaml rename to modules/ROOT/examples/mcp-tools/caches/memory_cache.yaml diff --git a/modules/ROOT/examples/redpanda_cache.yaml b/modules/ROOT/examples/mcp-tools/caches/redpanda_cache.yaml similarity index 100% rename from modules/ROOT/examples/redpanda_cache.yaml rename to modules/ROOT/examples/mcp-tools/caches/redpanda_cache.yaml diff --git a/modules/ROOT/examples/mcp-tools/caches/session_cache.yaml b/modules/ROOT/examples/mcp-tools/caches/session_cache.yaml new file mode 100644 index 0000000..851773d --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/caches/session_cache.yaml @@ -0,0 +1,13 @@ +# In-memory cache for session data +# Example of cache tool +# tag::complete[] +label: session-cache + +memory: + default_ttl: 300s + +meta: + mcp: + enabled: true + description: "In-memory cache for session data" +# end::complete[] diff --git a/modules/ROOT/examples/mcp-tools/inputs/consume_redpanda.yaml b/modules/ROOT/examples/mcp-tools/inputs/consume_redpanda.yaml new file mode 100644 index 0000000..841dd5a --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/inputs/consume_redpanda.yaml @@ -0,0 +1,22 @@ +# Consume events from Redpanda topics +# Use for event-driven AI agents, audit logs, or data change streams +label: consume-events + +# tag::component[] +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "user-events" ] + consumer_group: "mcp-event-processor" + start_from_oldest: true + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" +# end::component[] + +meta: + mcp: + enabled: true + description: "Consume events from user-events topic" diff --git a/modules/ROOT/examples/mcp-tools/inputs/event_driven_workflow.yaml b/modules/ROOT/examples/mcp-tools/inputs/event_driven_workflow.yaml new file mode 100644 index 0000000..f549f88 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/inputs/event_driven_workflow.yaml @@ -0,0 +1,39 @@ +# Event-driven workflow orchestration +# Use for multi-step processes, saga patterns, microservice coordination +label: order-workflow + +# tag::component[] +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "order-events" ] + consumer_group: "workflow-orchestrator" + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" + processors: + - switch: + - check: this.event_type == "order_created" + processors: + - http: + url: "${secrets.INVENTORY_API}/reserve" + verb: POST + headers: + Content-Type: application/json + body: '{"order_id": "${! this.order_id }", "items": ${! json("items") }}' + - check: this.event_type == "payment_confirmed" + processors: + - http: + url: "${secrets.FULFILLMENT_API}/ship" + verb: POST + headers: + Content-Type: application/json + body: '{"order_id": "${! this.order_id }"}' +# end::component[] + +meta: + mcp: + enabled: true + description: "Process order events and orchestrate fulfillment workflow" diff --git a/modules/ROOT/examples/generate_input.yaml b/modules/ROOT/examples/mcp-tools/inputs/generate_input.yaml similarity index 100% rename from modules/ROOT/examples/generate_input.yaml rename to modules/ROOT/examples/mcp-tools/inputs/generate_input.yaml diff --git a/modules/ROOT/examples/mcp-tools/inputs/read_events.yaml b/modules/ROOT/examples/mcp-tools/inputs/read_events.yaml new file mode 100644 index 0000000..8627214 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/inputs/read_events.yaml @@ -0,0 +1,21 @@ +# Read events from Redpanda +# Example of input tool +# tag::complete[] +label: read-events + +redpanda: # <1> + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: ["events"] + consumer_group: "mcp-reader" + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${secrets.MCP_USERNAME}" + password: "${secrets.MCP_PASSWORD}" + +meta: + mcp: + enabled: true + description: "Read events from Redpanda" +# end::complete[] diff --git a/modules/ROOT/examples/mcp-tools/inputs/stream_processing.yaml b/modules/ROOT/examples/mcp-tools/inputs/stream_processing.yaml new file mode 100644 index 0000000..9eb5209 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/inputs/stream_processing.yaml @@ -0,0 +1,28 @@ +# Process streaming data with aggregations +# Use for real-time analytics, windowed aggregations, computing metrics +label: process-sensor-data + +# tag::component[] +redpanda: + seed_brokers: [ "${REDPANDA_BROKERS}" ] + topics: [ "sensor-readings" ] + consumer_group: "analytics-processor" + tls: + enabled: true + sasl: + - mechanism: "${REDPANDA_SASL_MECHANISM}" + username: "${REDPANDA_SASL_USERNAME}" + password: "${REDPANDA_SASL_PASSWORD}" + processors: + - mapping: | + root.sensor_id = this.sensor_id + root.avg_temperature = this.readings.map_each(r -> r.temperature).sum() / this.readings.length() + root.max_temperature = this.readings.map_each(r -> r.temperature).max() + root.reading_count = this.readings.length() + root.window_end = now() +# end::component[] + +meta: + mcp: + enabled: true + description: "Process sensor readings and compute aggregations" diff --git a/modules/ROOT/examples/mcp-tools/outputs/publish_event.yaml b/modules/ROOT/examples/mcp-tools/outputs/publish_event.yaml new file mode 100644 index 0000000..748aea0 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/outputs/publish_event.yaml @@ -0,0 +1,20 @@ +# Publish event to Redpanda +# Example of output tool +# tag::complete[] +label: publish-event + +redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: "processed-events" + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${secrets.MCP_USERNAME}" + password: "${secrets.MCP_PASSWORD}" + +meta: + mcp: + enabled: true + description: "Publish event to Redpanda" +# end::complete[] diff --git a/modules/ROOT/examples/mcp-tools/outputs/publish_with_timestamp.yaml b/modules/ROOT/examples/mcp-tools/outputs/publish_with_timestamp.yaml new file mode 100644 index 0000000..93fcd82 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/outputs/publish_with_timestamp.yaml @@ -0,0 +1,25 @@ +# Publish event with timestamp +# Example of output tool with processors +# tag::complete[] +label: publish-with-timestamp + +processors: + - mutation: | + root = this + root.published_at = now() + +redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: "processed-events" + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${secrets.MCP_USERNAME}" + password: "${secrets.MCP_PASSWORD}" + +meta: + mcp: + enabled: true + description: "Add timestamp and publish to Redpanda" +# end::complete[] diff --git a/modules/ROOT/examples/redpanda_output.yaml b/modules/ROOT/examples/mcp-tools/outputs/redpanda_output.yaml similarity index 100% rename from modules/ROOT/examples/redpanda_output.yaml rename to modules/ROOT/examples/mcp-tools/outputs/redpanda_output.yaml diff --git a/modules/ROOT/examples/redpanda_output_with_processors.yaml b/modules/ROOT/examples/mcp-tools/outputs/redpanda_output_with_processors.yaml similarity index 97% rename from modules/ROOT/examples/redpanda_output_with_processors.yaml rename to modules/ROOT/examples/mcp-tools/outputs/redpanda_output_with_processors.yaml index eea4b32..30e4a38 100644 --- a/modules/ROOT/examples/redpanda_output_with_processors.yaml +++ b/modules/ROOT/examples/mcp-tools/outputs/redpanda_output_with_processors.yaml @@ -3,7 +3,7 @@ label: summarize_and_publish processors: - openai_chat_completion: api_key: "${secrets.OPENAI_API_KEY}" - model: "gpt-4" + model: "gpt-5.2" prompt: ${! json("question") } - mapping: | root.question = this.question diff --git a/modules/ROOT/examples/mcp-tools/processors/calculate_fraud_score.yaml b/modules/ROOT/examples/mcp-tools/processors/calculate_fraud_score.yaml new file mode 100644 index 0000000..280ddef --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/calculate_fraud_score.yaml @@ -0,0 +1,108 @@ +label: calculate_fraud_score +mapping: | + root = match { + this.transaction_id == "TXN-89012" && this.customer_id == "CUST-1001" => { + "transaction_id": "TXN-89012", + "customer_id": "CUST-1001", + "fraud_score": 95, + "risk_level": "critical", + "score_breakdown": { + "location_risk": 35, + "merchant_risk": 30, + "amount_risk": 25, + "velocity_risk": 0, + "category_risk": 20 + }, + "factors_detected": [ + "unusual_location", + "questionable_merchant", + "unusual_amount", + "unusual_category" + ], + "reasoning": "International transaction from Singapore with no customer history of international purchases. High-value jewelry purchase (14.5x customer average). Merchant has significant fraud indicators.", + "recommendation": "block_and_investigate" + }, + this.transaction_id == "TXN-89013" && this.customer_id == "CUST-1001" => { + "transaction_id": "TXN-89013", + "customer_id": "CUST-1001", + "fraud_score": 8, + "risk_level": "minimal", + "score_breakdown": { + "location_risk": 0, + "merchant_risk": 0, + "amount_risk": 0, + "velocity_risk": 0, + "category_risk": 0 + }, + "factors_detected": [], + "reasoning": "Local transaction from trusted merchant in customer's typical spending category and amount range.", + "recommendation": "approve" + }, + this.transaction_id == "TXN-89014" && this.customer_id == "CUST-1002" => { + "transaction_id": "TXN-89014", + "customer_id": "CUST-1002", + "fraud_score": 52, + "risk_level": "medium", + "score_breakdown": { + "location_risk": 0, + "merchant_risk": 15, + "amount_risk": 0, + "velocity_risk": 8, + "category_risk": 0 + }, + "factors_detected": [ + "questionable_merchant", + "high_velocity" + ], + "reasoning": "Recurring subscription service with known billing issues. Multiple charges detected from same merchant. Moderate merchant reputation score.", + "recommendation": "monitor_closely" + }, + this.transaction_id == "TXN-89015" && this.customer_id == "CUST-1003" => { + "transaction_id": "TXN-89015", + "customer_id": "CUST-1003", + "fraud_score": 12, + "risk_level": "minimal", + "score_breakdown": { + "location_risk": 0, + "merchant_risk": 0, + "amount_risk": 5, + "velocity_risk": 0, + "category_risk": 0 + }, + "factors_detected": [ + "slightly_elevated_amount" + ], + "reasoning": "International hotel charge consistent with customer's frequent travel patterns. Amount within expected range for lodging category.", + "recommendation": "approve" + }, + _ => { + "transaction_id": this.transaction_id, + "customer_id": this.customer_id, + "fraud_score": 50, + "risk_level": "medium", + "score_breakdown": { + "location_risk": 0, + "merchant_risk": 0, + "amount_risk": 0, + "velocity_risk": 0, + "category_risk": 0 + }, + "factors_detected": [], + "reasoning": "Insufficient data to calculate accurate fraud score for this transaction/customer combination.", + "recommendation": "monitor_closely" + } + } + +meta: + mcp: + enabled: true + description: "Calculate fraud risk score based on transaction patterns and risk indicators. Use TXN-89012 through TXN-89015 with corresponding customer IDs for testing." + properties: + - name: transaction_id + type: string + description: "Transaction identifier to analyze (format TXN-XXXXX)" + required: true + - name: customer_id + type: string + description: "Customer identifier for historical analysis (format CUST-XXXX)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/check_regulatory_requirements.yaml b/modules/ROOT/examples/mcp-tools/processors/check_regulatory_requirements.yaml new file mode 100644 index 0000000..f8df06e --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/check_regulatory_requirements.yaml @@ -0,0 +1,116 @@ +label: check_regulatory_requirements +mapping: | + root = match { + this.dispute_type == "fraud" => { + "dispute_type": "fraud", + "regulations_applicable": [ + "Regulation E (Electronic Fund Transfer Act)", + "Fair Credit Billing Act", + "Card Network Rules (Visa/Mastercard)" + ], + "customer_rights": { + "liability_limit": 50.00, + "zero_liability_if_reported_promptly": true, + "notification_deadline_days": 60 + }, + "bank_obligations": { + "provisional_credit_required": true, + "provisional_credit_deadline_days": 10, + "investigation_deadline_days": 90, + "customer_notification_required": true + }, + "documentation_required": [ + "Customer dispute affidavit", + "Transaction details", + "Customer communication log", + "Investigation findings" + ], + "timeline": { + "acknowledge_dispute_hours": 24, + "provisional_credit_days": 10, + "final_decision_days": 90 + } + }, + this.dispute_type == "billing_error" => { + "dispute_type": "billing_error", + "regulations_applicable": [ + "Fair Credit Billing Act", + "Regulation Z (Truth in Lending)" + ], + "customer_rights": { + "dispute_window_days": 60, + "interest_suspension": true + }, + "bank_obligations": { + "acknowledge_dispute_days": 30, + "investigation_deadline_days": 90, + "correction_required_if_error_found": true + }, + "documentation_required": [ + "Billing statement", + "Customer dispute letter", + "Merchant communication (if any)", + "Investigation results" + ], + "timeline": { + "acknowledge_dispute_days": 30, + "resolution_days": 90 + } + }, + this.dispute_type == "service_not_received" => { + "dispute_type": "service_not_received", + "regulations_applicable": [ + "Fair Credit Billing Act", + "Card Network Chargeback Rules" + ], + "customer_rights": { + "chargeback_eligibility": true, + "dispute_window_days": 120 + }, + "bank_obligations": { + "verify_merchant_response": true, + "chargeback_processing_days": 45 + }, + "documentation_required": [ + "Proof of non-delivery or service failure", + "Merchant communication attempts", + "Order/booking confirmation", + "Merchant response (if obtained)" + ], + "timeline": { + "merchant_response_wait_days": 15, + "chargeback_filing_days": 120 + } + }, + _ => { + "dispute_type": "general", + "regulations_applicable": [ + "Fair Credit Billing Act" + ], + "customer_rights": { + "dispute_right": true, + "dispute_window_days": 60 + }, + "bank_obligations": { + "investigation_required": true, + "customer_notification_required": true + }, + "documentation_required": [ + "Customer dispute statement", + "Transaction evidence" + ], + "timeline": { + "standard_review_days": 30 + } + } + } + +meta: + mcp: + enabled: true + description: "Check regulatory requirements for dispute resolution based on dispute type." + properties: + - name: dispute_type + type: string + description: "Type of dispute (fraud, billing_error, service_not_received)" + required: true diff --git a/modules/ROOT/examples/customer_enrichment.yaml b/modules/ROOT/examples/mcp-tools/processors/customer_enrichment.yaml similarity index 100% rename from modules/ROOT/examples/customer_enrichment.yaml rename to modules/ROOT/examples/mcp-tools/processors/customer_enrichment.yaml diff --git a/modules/ROOT/examples/mcp-tools/processors/enrich_order.yaml b/modules/ROOT/examples/mcp-tools/processors/enrich_order.yaml new file mode 100644 index 0000000..604f1da --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/enrich_order.yaml @@ -0,0 +1,15 @@ +# Enrich order with customer data +# Example of processor tool with HTTP call +# tag::complete[] +label: enrich-order + +processors: + - http: + url: "https://api.example.com/lookup" + verb: GET + +meta: + mcp: + enabled: true + description: "Enrich order with customer data" +# end::complete[] diff --git a/modules/ROOT/examples/gcp_bigquery_select_processor.yaml b/modules/ROOT/examples/mcp-tools/processors/gcp_bigquery_select_processor.yaml similarity index 100% rename from modules/ROOT/examples/gcp_bigquery_select_processor.yaml rename to modules/ROOT/examples/mcp-tools/processors/gcp_bigquery_select_processor.yaml diff --git a/modules/ROOT/examples/mcp-tools/processors/get_customer_account.yaml b/modules/ROOT/examples/mcp-tools/processors/get_customer_account.yaml new file mode 100644 index 0000000..9701bb2 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_customer_account.yaml @@ -0,0 +1,51 @@ +label: get_customer_account +mapping: | + root = match { + this.customer_id == "CUST-1001" => { + "customer_id": "CUST-1001", + "name": "Dana A.", + "email": "s****@example.com", + "account_type": "premium_checking", + "card_last_four": "4532", + "card_status": "active", + "member_since": "2019-03-15", + "location": "Seattle, WA, USA", + "phone_masked": "***-***-7890" + }, + this.customer_id == "CUST-1002" => { + "customer_id": "CUST-1002", + "name": "Alex T.", + "email": "m****@example.com", + "account_type": "standard_checking", + "card_last_four": "8821", + "card_status": "active", + "member_since": "2021-07-22", + "location": "San Francisco, CA, USA", + "phone_masked": "***-***-4521" + }, + this.customer_id == "CUST-1003" => { + "customer_id": "CUST-1003", + "name": "Quinn N.", + "email": "e****@example.com", + "account_type": "premium_credit", + "card_last_four": "2193", + "card_status": "active", + "member_since": "2020-11-08", + "location": "Austin, TX, USA", + "phone_masked": "***-***-3344" + }, + _ => { + "error": "customer_not_found", + "message": "No account found for customer ID: " + this.customer_id + } + } + +meta: + mcp: + enabled: true + description: "Retrieve customer account information with masked PII. Use CUST-1001, CUST-1002, or CUST-1003 for testing." + properties: + - name: customer_id + type: string + description: "Customer identifier (format CUST-XXXX)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_customer_history.yaml b/modules/ROOT/examples/mcp-tools/processors/get_customer_history.yaml new file mode 100644 index 0000000..183e4f8 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_customer_history.yaml @@ -0,0 +1,38 @@ +label: get_customer_history + +processors: + - mapping: | + let customer_id = this.customer_id + root = if $customer_id == "CUST-100" { + { + "customer_id": $customer_id, + "orders": [ + {"order_id": "ORD-12345", "status": "shipped", "total": 1299.99, "order_date": "2025-01-10"}, + {"order_id": "ORD-67890", "status": "processing", "total": 299.98, "order_date": "2025-01-14"}, + {"order_id": "ORD-11111", "status": "delivered", "total": 89.99, "order_date": "2024-12-20"} + ], + "total_orders": 3 + } + } else if $customer_id == "CUST-999" { + { + "customer_id": $customer_id, + "orders": [], + "total_orders": 0, + "message": "No orders found for this customer" + } + } else { + { + "error": true, + "message": "Customer not found" + } + } + +meta: + mcp: + enabled: true + description: "Retrieve order history. Use CUST-100 (has orders) or CUST-999 (no orders) for testing." + properties: + - name: customer_id + type: string + description: "The customer ID (format CUST-XXX)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_merchant_category.yaml b/modules/ROOT/examples/mcp-tools/processors/get_merchant_category.yaml new file mode 100644 index 0000000..f8ac390 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_merchant_category.yaml @@ -0,0 +1,90 @@ +label: get_merchant_category +mapping: | + root = match { + this.mcc == "5944" => { + "mcc": "5944", + "category": "Jewelry, Watch, Clock, and Silverware Stores", + "high_level_category": "retail_luxury", + "risk_profile": "high", + "typical_transaction_range": { + "min": 100, + "max": 5000, + "average": 850 + }, + "fraud_risk_notes": "High-value items, common fraud target, verify customer intent", + "common_fraud_patterns": [ + "Stolen card purchases", + "Account takeover", + "Reshipping schemes" + ] + }, + this.mcc == "5942" => { + "mcc": "5942", + "category": "Book Stores", + "high_level_category": "retail_general", + "risk_profile": "low", + "typical_transaction_range": { + "min": 10, + "max": 200, + "average": 45 + }, + "fraud_risk_notes": "Low fraud risk, common online purchase category", + "common_fraud_patterns": [] + }, + this.mcc == "4899" => { + "mcc": "4899", + "category": "Cable, Satellite, and Other Pay Television and Radio Services", + "high_level_category": "subscription_services", + "risk_profile": "medium", + "typical_transaction_range": { + "min": 9.99, + "max": 99.99, + "average": 29.99 + }, + "fraud_risk_notes": "Recurring billing, watch for duplicate charges and unauthorized subscriptions", + "common_fraud_patterns": [ + "Duplicate subscriptions", + "Unauthorized recurring charges", + "Failed cancellation processing" + ] + }, + this.mcc == "7011" => { + "mcc": "7011", + "category": "Lodging - Hotels, Motels, Resorts", + "high_level_category": "travel_hospitality", + "risk_profile": "medium", + "typical_transaction_range": { + "min": 80, + "max": 500, + "average": 180 + }, + "fraud_risk_notes": "Verify travel patterns, check for location consistency", + "common_fraud_patterns": [ + "Stolen card at booking sites", + "Account takeover for rewards redemption" + ] + }, + _ => { + "mcc": this.mcc, + "category": "Unknown Category", + "high_level_category": "unclassified", + "risk_profile": "unknown", + "typical_transaction_range": { + "min": 0, + "max": 0, + "average": 0 + }, + "fraud_risk_notes": "MCC not recognized, manual review recommended", + "common_fraud_patterns": [] + } + } + +meta: + mcp: + enabled: true + description: "Retrieve merchant category information including fraud risk level and common patterns based on MCC code." + properties: + - name: mcc + type: string + description: "Merchant Category Code (5944 for jewelry, 5942 for books, 4899 for streaming, 7011 for hotels)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_order_status.yaml b/modules/ROOT/examples/mcp-tools/processors/get_order_status.yaml new file mode 100644 index 0000000..55c9627 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_order_status.yaml @@ -0,0 +1,46 @@ +label: get_order_status +mapping: | + let order_id = this.order_id + root = if $order_id == "ORD-12345" { + { + "order_id": $order_id, + "status": "shipped", + "items": [{"name": "Laptop", "quantity": 1, "price": 1299.99}], + "total": 1299.99, + "order_date": "2025-01-10", + "customer_id": "CUST-100" + } + } else if $order_id == "ORD-67890" { + { + "order_id": $order_id, + "status": "processing", + "items": [{"name": "Headphones", "quantity": 2, "price": 149.99}], + "total": 299.98, + "order_date": "2025-01-14", + "customer_id": "CUST-100" + } + } else if $order_id == "ORD-99999" { + { + "error": "order_not_found", + "message": "Order not found" + } + } else { + { + "order_id": $order_id, + "status": "pending", + "items": [{"name": "Generic Item", "quantity": 1, "price": 49.99}], + "total": 49.99, + "order_date": "2025-01-15", + "customer_id": "CUST-999" + } + } + +meta: + mcp: + enabled: true + description: "Retrieve order status and details. Use ORD-12345 (shipped), ORD-67890 (processing), or ORD-99999 (not found) for testing." + properties: + - name: order_id + type: string + description: "The order ID (format ORD-XXXXX)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_risk_indicators.yaml b/modules/ROOT/examples/mcp-tools/processors/get_risk_indicators.yaml new file mode 100644 index 0000000..c4ccdf1 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_risk_indicators.yaml @@ -0,0 +1,129 @@ +label: get_risk_indicators +mapping: | + root = match { + this.transaction_id == "TXN-89012" => { + "transaction_id": "TXN-89012", + "risk_indicators": [ + { + "indicator": "international_transaction", + "severity": "high", + "description": "Transaction originated from Singapore, customer has no international transaction history" + }, + { + "indicator": "first_time_merchant", + "severity": "medium", + "description": "Customer has never transacted with this merchant before" + }, + { + "indicator": "unusual_category", + "severity": "high", + "description": "Jewelry purchase is outside customer's typical spending categories" + }, + { + "indicator": "high_amount", + "severity": "high", + "description": "Transaction amount is 14.5x customer's average transaction" + }, + { + "indicator": "merchant_flagged", + "severity": "critical", + "description": "Merchant has been flagged in fraud databases" + } + ], + "total_indicators": 5, + "critical_count": 1, + "high_count": 3, + "medium_count": 1, + "overall_assessment": "high_fraud_probability" + }, + this.transaction_id == "TXN-89013" => { + "transaction_id": "TXN-89013", + "risk_indicators": [ + { + "indicator": "known_merchant", + "severity": "none", + "description": "Example Marketplace is a recognized and trusted merchant" + } + ], + "total_indicators": 1, + "critical_count": 0, + "high_count": 0, + "medium_count": 0, + "overall_assessment": "low_fraud_probability" + }, + this.transaction_id == "TXN-89014" => { + "transaction_id": "TXN-89014", + "risk_indicators": [ + { + "indicator": "recurring_billing", + "severity": "low", + "description": "Subscription service with recurring charges" + }, + { + "indicator": "merchant_billing_issues", + "severity": "medium", + "description": "Merchant has known history of duplicate billing complaints" + }, + { + "indicator": "duplicate_charge_pattern", + "severity": "medium", + "description": "Multiple charges detected from same merchant in short timeframe" + } + ], + "total_indicators": 3, + "critical_count": 0, + "high_count": 0, + "medium_count": 2, + "low_count": 1, + "none_count": 0, + "overall_assessment": "medium_fraud_probability" + }, + this.transaction_id == "TXN-89015" => { + "transaction_id": "TXN-89015", + "risk_indicators": [ + { + "indicator": "international_transaction", + "severity": "low", + "description": "Transaction in France matches customer's travel history" + }, + { + "indicator": "travel_category", + "severity": "none", + "description": "Hotel charge is consistent with customer's frequent travel patterns" + }, + { + "indicator": "timing_matches_travel", + "severity": "none", + "description": "Transaction date aligns with customer's Paris trip" + } + ], + "total_indicators": 3, + "critical_count": 0, + "high_count": 0, + "medium_count": 0, + "low_count": 1, + "none_count": 2, + "overall_assessment": "low_fraud_probability" + }, + _ => { + "transaction_id": this.transaction_id, + "risk_indicators": [], + "total_indicators": 0, + "critical_count": 0, + "high_count": 0, + "medium_count": 0, + "low_count": 0, + "none_count": 0, + "overall_assessment": "insufficient_data" + } + } + +meta: + mcp: + enabled: true + description: "Retrieve fraud risk indicators for a transaction including severity levels and overall assessment. Use TXN-89012 through TXN-89015 for testing." + properties: + - name: transaction_id + type: string + description: "Transaction identifier to analyze (format TXN-XXXXX)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_shipping_info.yaml b/modules/ROOT/examples/mcp-tools/processors/get_shipping_info.yaml new file mode 100644 index 0000000..b0a15b4 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_shipping_info.yaml @@ -0,0 +1,38 @@ +label: get_shipping_info + +processors: + - mapping: | + let order_id = this.order_id + root = if $order_id == "ORD-12345" { + { + "order_id": $order_id, + "tracking_number": "FX1234567890", + "carrier": "Example Shipping", + "status": "in_transit", + "estimated_delivery": "2025-01-17", + "last_location": "San Francisco Distribution Center", + "last_update": "2025-01-15T14:30:00Z" + } + } else if $order_id == "ORD-67890" { + { + "order_id": $order_id, + "error": true, + "message": "Order has not shipped yet" + } + } else { + { + "order_id": $order_id, + "error": true, + "message": "No shipping information available" + } + } + +meta: + mcp: + enabled: true + description: "Get tracking and shipping information. ORD-12345 has shipping info, ORD-67890 has not shipped yet." + properties: + - name: order_id + type: string + description: "The order ID to track" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_transaction_details.yaml b/modules/ROOT/examples/mcp-tools/processors/get_transaction_details.yaml new file mode 100644 index 0000000..82b44ba --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_transaction_details.yaml @@ -0,0 +1,99 @@ +label: get_transaction_details +mapping: | + root = match { + this.transaction_id == "TXN-89012" => { + "transaction_id": "TXN-89012", + "customer_id": "CUST-1001", + "amount": 1847.99, + "currency": "USD", + "merchant": { + "name": "LUXURY WATCHES INT", + "category": "jewelry", + "country": "SG", + "mcc": "5944" + }, + "card_last_four": "4532", + "date": "2026-01-18T14:22:00Z", + "location": { + "city": "Singapore", + "country": "SG", + "coordinates": "1.3521,103.8198" + }, + "status": "posted" + }, + this.transaction_id == "TXN-89013" => { + "transaction_id": "TXN-89013", + "customer_id": "CUST-1001", + "amount": 47.83, + "currency": "USD", + "merchant": { + "name": "EXAMPLE MKTPLACE", + "category": "online_retail", + "country": "US", + "mcc": "5942" + }, + "card_last_four": "4532", + "date": "2026-01-15T10:15:00Z", + "location": { + "city": "Seattle", + "country": "US", + "coordinates": "47.6062,-122.3321" + }, + "status": "posted" + }, + this.transaction_id == "TXN-89014" => { + "transaction_id": "TXN-89014", + "customer_id": "CUST-1002", + "amount": 29.99, + "currency": "USD", + "merchant": { + "name": "EXAMPLE STREAMING", + "category": "subscription_service", + "country": "US", + "mcc": "4899" + }, + "card_last_four": "8821", + "date": "2025-12-15T00:00:01Z", + "location": { + "city": "San Francisco", + "country": "US", + "coordinates": "37.7749,-122.4194" + }, + "status": "posted", + "recurring": true + }, + this.transaction_id == "TXN-89015" => { + "transaction_id": "TXN-89015", + "customer_id": "CUST-1003", + "amount": 312.50, + "currency": "EUR", + "merchant": { + "name": "HOTEL PARIS", + "category": "lodging", + "country": "FR", + "mcc": "7011" + }, + "card_last_four": "2193", + "date": "2026-01-10T20:30:00Z", + "location": { + "city": "Paris", + "country": "FR", + "coordinates": "48.8566,2.3522" + }, + "status": "posted" + }, + _ => { + "error": "transaction_not_found", + "message": "No transaction found with ID: " + this.transaction_id + } + } + +meta: + mcp: + enabled: true + description: "Retrieve detailed transaction information including merchant, location, and amount. Use TXN-89012 through TXN-89015 for testing." + properties: + - name: transaction_id + type: string + description: "Transaction identifier (format TXN-XXXXX)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_transaction_history.yaml b/modules/ROOT/examples/mcp-tools/processors/get_transaction_history.yaml new file mode 100644 index 0000000..3c8107f --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_transaction_history.yaml @@ -0,0 +1,108 @@ +label: get_transaction_history +mapping: | + root = match { + this.customer_id == "CUST-1001" => { + "customer_id": "CUST-1001", + "analysis_period": "last_90_days", + "spending_patterns": { + "average_transaction": 127.45, + "median_transaction": 65.20, + "total_transactions": 87, + "total_amount": 11088.15 + }, + "category_breakdown": [ + {"category": "online_retail", "count": 42, "avg_amount": 78.50}, + {"category": "groceries", "count": 28, "avg_amount": 95.30}, + {"category": "restaurants", "count": 12, "avg_amount": 45.80}, + {"category": "gas_stations", "count": 5, "avg_amount": 62.00} + ], + "location_patterns": { + "primary_region": "US_West_Coast", + "international_transactions": 0, + "cities": ["Seattle", "Bellevue", "Tacoma"] + }, + "merchant_patterns": { + "recurring_merchants": ["EXAMPLE MKTPLACE", "EXAMPLE WHOLESALE", "EXAMPLE COFFEE"], + "first_time_merchants_this_period": 3 + }, + "risk_indicators": { + "unusual_activity": false, + "velocity_flags": 0, + "declined_transactions": 1 + } + }, + this.customer_id == "CUST-1002" => { + "customer_id": "CUST-1002", + "analysis_period": "last_90_days", + "spending_patterns": { + "average_transaction": 95.33, + "median_transaction": 52.10, + "total_transactions": 64, + "total_amount": 6101.12 + }, + "category_breakdown": [ + {"category": "subscription_service", "count": 15, "avg_amount": 29.99}, + {"category": "restaurants", "count": 25, "avg_amount": 68.40}, + {"category": "online_retail", "count": 18, "avg_amount": 110.20}, + {"category": "entertainment", "count": 6, "avg_amount": 45.00} + ], + "location_patterns": { + "primary_region": "US_West_Coast", + "international_transactions": 0, + "cities": ["San Francisco", "Oakland", "San Jose"] + }, + "merchant_patterns": { + "recurring_merchants": ["EXAMPLE STREAMING", "EXAMPLE MEDIA", "EXAMPLE AUDIO"], + "first_time_merchants_this_period": 7 + }, + "risk_indicators": { + "unusual_activity": false, + "velocity_flags": 0, + "declined_transactions": 0 + } + }, + this.customer_id == "CUST-1003" => { + "customer_id": "CUST-1003", + "analysis_period": "last_90_days", + "spending_patterns": { + "average_transaction": 215.67, + "median_transaction": 145.00, + "total_transactions": 52, + "total_amount": 11214.84 + }, + "category_breakdown": [ + {"category": "travel", "count": 8, "avg_amount": 650.00}, + {"category": "lodging", "count": 6, "avg_amount": 380.50}, + {"category": "restaurants", "count": 22, "avg_amount": 85.20}, + {"category": "online_retail", "count": 16, "avg_amount": 95.75} + ], + "location_patterns": { + "primary_region": "US_South", + "international_transactions": 3, + "cities": ["Austin", "Houston", "Dallas", "Paris", "London"] + }, + "merchant_patterns": { + "recurring_merchants": ["EXAMPLE AIRLINES", "EXAMPLE HOTEL", "EXAMPLE TRAVEL"], + "first_time_merchants_this_period": 12 + }, + "risk_indicators": { + "unusual_activity": false, + "velocity_flags": 0, + "declined_transactions": 0 + } + }, + _ => { + "error": "customer_not_found", + "message": "No transaction history found for customer ID: " + this.customer_id + } + } + +meta: + mcp: + enabled: true + description: "Retrieve customer transaction history with spending patterns, category breakdown, and risk indicators. Use CUST-1001, CUST-1002, or CUST-1003 for testing." + properties: + - name: customer_id + type: string + description: "Customer identifier (format CUST-XXXX)" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/get_weather_complete.yaml b/modules/ROOT/examples/mcp-tools/processors/get_weather_complete.yaml new file mode 100644 index 0000000..42a1998 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_weather_complete.yaml @@ -0,0 +1,55 @@ +# Complete weather tool with validation, error handling, and response formatting +# tag::complete[] +label: get-weather + +processors: + # Validate and sanitize input + - label: validate_city + mutation: | + root.city = if this.city.or("").trim() == "" { + throw("city is required") + } else { + this.city.trim().lowercase().re_replace_all("[^a-z\\s\\-]", "") + } + root.units = this.units.or("metric") + + # Fetch weather data + - label: fetch_weather + try: + - http: + url: 'https://wttr.in/${! json("city") }?format=j1' + verb: GET + timeout: 10s + + - mutation: | + root.weather = { + "location": this.nearest_area.0.areaName.0.value, + "country": this.nearest_area.0.country.0.value, + "temperature_c": this.current_condition.0.temp_C, + "temperature_f": this.current_condition.0.temp_F, + "condition": this.current_condition.0.weatherDesc.0.value, + "humidity": this.current_condition.0.humidity, + "wind_kph": this.current_condition.0.windspeedKmph + } + + # Handle errors gracefully + - label: handle_errors + catch: + - mutation: | + root.error = true + root.message = "Failed to fetch weather: " + error() + +meta: + mcp: + enabled: true + description: "Get current weather for a city. Returns temperature, conditions, humidity, and wind speed." + properties: + - name: city + type: string + description: "City name (for example, 'London', 'New York', 'Tokyo')" + required: true + - name: units + type: string + description: "Temperature units: 'metric' or 'imperial' (default: metric)" + required: false +# end::complete[] diff --git a/modules/ROOT/examples/mcp-tools/processors/get_weather_simple.yaml b/modules/ROOT/examples/mcp-tools/processors/get_weather_simple.yaml new file mode 100644 index 0000000..445bf76 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/get_weather_simple.yaml @@ -0,0 +1,17 @@ +# Simple weather tool - minimal example +# tag::complete[] +http: + url: "https://wttr.in/${! this.city }?format=j1" + verb: GET + +meta: + mcp: + enabled: true + name: get_weather + description: "Get current weather for a city" + properties: + - name: city + type: string + description: "City name" + required: true +# end::complete[] diff --git a/modules/ROOT/examples/http_processor.yaml b/modules/ROOT/examples/mcp-tools/processors/http_processor.yaml similarity index 100% rename from modules/ROOT/examples/http_processor.yaml rename to modules/ROOT/examples/mcp-tools/processors/http_processor.yaml diff --git a/modules/ROOT/examples/mcp-tools/processors/log_audit_event.yaml b/modules/ROOT/examples/mcp-tools/processors/log_audit_event.yaml new file mode 100644 index 0000000..57b0a81 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/log_audit_event.yaml @@ -0,0 +1,60 @@ +label: log_audit_event +processors: + - mapping: | + root = { + "audit_id": uuid_v4(), + "timestamp": now(), + "event_type": "dispute_investigation", + "transaction_id": this.transaction_id, + "customer_id": this.customer_id, + "agent_decision": this.decision, + "risk_score": this.risk_score, + "evidence_reviewed": this.evidence, + "outcome": this.outcome, + "escalated": this.escalated, + "compliance_notes": this.notes, + "logged_by": "dispute-resolution-agent", + "status": "recorded" + } + + - log: + level: INFO + message: "Compliance audit event: ${!json()}" + +meta: + mcp: + enabled: true + description: "Log compliance audit events for dispute resolution. Records customer ID, transaction details, decision, and notes." + properties: + - name: customer_id + type: string + description: "Customer identifier (format CUST-XXXX)" + required: true + - name: transaction_id + type: string + description: "Transaction identifier (format TXN-XXXXX)" + required: true + - name: decision + type: string + description: "Dispute resolution decision (approve_refund, deny_claim, etc.)" + required: true + - name: risk_score + type: number + description: "Calculated fraud risk score (0-100)" + required: true + - name: evidence + type: object + description: "Evidence reviewed during investigation" + required: true + - name: outcome + type: string + description: "Final outcome of the dispute (approved, denied, escalated, pending)" + required: true + - name: escalated + type: boolean + description: "Whether case was escalated for manual review" + required: false + - name: notes + type: string + description: "Additional compliance notes" + required: false diff --git a/modules/ROOT/examples/mcp-tools/processors/lookup_customer.yaml b/modules/ROOT/examples/mcp-tools/processors/lookup_customer.yaml new file mode 100644 index 0000000..6fba9ed --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/lookup_customer.yaml @@ -0,0 +1,23 @@ +# Look up customer by ID from PostgreSQL +# Example of sql_select processor tool +# tag::complete[] +label: lookup-customer # <1> + +sql_select: # <2> + driver: postgres + dsn: "${secrets.DATABASE_URL}" + table: customers + columns: ["id", "name", "email", "plan"] + where: id = ? + args_mapping: '[this.customer_id]' + +meta: # <3> + mcp: + enabled: true + description: "Look up a customer by ID and return their profile." + properties: + - name: customer_id + type: string + description: "The customer's unique identifier" + required: true +# end::complete[] diff --git a/modules/ROOT/examples/observable_tool.yaml b/modules/ROOT/examples/mcp-tools/processors/observable_tool.yaml similarity index 100% rename from modules/ROOT/examples/observable_tool.yaml rename to modules/ROOT/examples/mcp-tools/processors/observable_tool.yaml diff --git a/modules/ROOT/examples/mcp-tools/processors/openai_chat.yaml b/modules/ROOT/examples/mcp-tools/processors/openai_chat.yaml new file mode 100644 index 0000000..b8c202a --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/openai_chat.yaml @@ -0,0 +1,27 @@ +# OpenAI chat completion for sentiment analysis +# Use for text generation, classification, summarization +label: analyze-feedback + +# tag::component[] +openai_chat_completion: + api_key: "${secrets.OPENAI_API_KEY}" + model: "gpt-5.2" + prompt: | + Analyze this customer feedback and provide: + 1. Sentiment (positive/negative/neutral) + 2. Key themes + 3. Actionable insights + + Feedback: ${! json(feedback_text) } + max_tokens: 500 +# end::component[] + +meta: + mcp: + enabled: true + description: "Analyze customer feedback for sentiment and themes" + properties: + - name: feedback_text + type: string + description: "The customer feedback text to analyze" + required: true diff --git a/modules/ROOT/examples/mcp-tools/processors/openai_embeddings.yaml b/modules/ROOT/examples/mcp-tools/processors/openai_embeddings.yaml new file mode 100644 index 0000000..0c7f15f --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/openai_embeddings.yaml @@ -0,0 +1,20 @@ +# Generate embeddings with OpenAI +# Use for semantic search, RAG pipelines, similarity matching +label: generate-embeddings + +# tag::component[] +openai_embeddings: + api_key: "${secrets.OPENAI_API_KEY}" + model: "text-embedding-3-small" + text: ${! json("content") } +# end::component[] + +meta: + mcp: + enabled: true + description: "Generate vector embeddings for text content" + properties: + - name: content + type: string + description: "Text content to generate embeddings for" + required: true diff --git a/modules/ROOT/examples/order_workflow.yaml b/modules/ROOT/examples/mcp-tools/processors/order_workflow.yaml similarity index 95% rename from modules/ROOT/examples/order_workflow.yaml rename to modules/ROOT/examples/mcp-tools/processors/order_workflow.yaml index ad0dc29..aebaac8 100644 --- a/modules/ROOT/examples/order_workflow.yaml +++ b/modules/ROOT/examples/mcp-tools/processors/order_workflow.yaml @@ -39,7 +39,7 @@ processors: root = this.merge({ "processing_tier": "premium", "processing_time_estimate": "2-4 hours", - "assigned_rep": "premium-team@company.com", + "assigned_rep": "premium-team@example.com", "priority_score": 95 }) @@ -51,7 +51,7 @@ processors: root = this.merge({ "processing_tier": "vip", "processing_time_estimate": "1-2 hours", - "assigned_rep": "vip-team@company.com", + "assigned_rep": "vip-team@example.com", "priority_score": 90, "perks": ["expedited_shipping", "white_glove_service"] }) @@ -63,7 +63,7 @@ processors: root = this.merge({ "processing_tier": "standard", "processing_time_estimate": "24-48 hours", - "assigned_rep": "support@company.com", + "assigned_rep": "support@example.com", "priority_score": 50 }) diff --git a/modules/ROOT/examples/mcp-tools/processors/search_jira.yaml b/modules/ROOT/examples/mcp-tools/processors/search_jira.yaml new file mode 100644 index 0000000..331e29e --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/search_jira.yaml @@ -0,0 +1,31 @@ +# Search Jira issues using JQL +# Requires Enterprise license +# tag::complete[] +label: search-jira + +processors: + - generate: + count: 1 + mapping: | + root.jql = this.jql + root.maxResults = this.max_results.or(50) + root.fields = ["key", "summary", "status", "assignee", "priority"] + - jira: + base_url: "${secrets.JIRA_BASE_URL}" + username: "${secrets.JIRA_USERNAME}" + api_token: "${secrets.JIRA_API_TOKEN}" + +meta: + mcp: + enabled: true + description: "Search Jira issues using JQL. Returns matching issues with key, summary, status, assignee, and priority." + properties: + - name: jql + type: string + description: "JQL query (for example, 'project = DOC AND status = Open')" + required: true + - name: max_results + type: number + description: "Maximum issues to return (default: 50)" + required: false +# end::complete[] diff --git a/modules/ROOT/examples/mcp-tools/processors/transform_validate.yaml b/modules/ROOT/examples/mcp-tools/processors/transform_validate.yaml new file mode 100644 index 0000000..b05b619 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/transform_validate.yaml @@ -0,0 +1,40 @@ +# Transform and validate data with Bloblang +# Use for parsing, validation, filtering, enrichment +label: transform-user-data + +processors: + # tag::mapping[] + - mapping: | + # Parse and validate incoming data + root.user_id = this.user_id.or(throw("user_id is required")) + root.timestamp = now().ts_format("2006-01-02T15:04:05Z07:00") + + # Transform and enrich + root.email_domain = this.email.split("@").index(1) + root.is_premium = this.subscription_tier == "premium" + + # Filter sensitive data + root.profile = this.profile.or({}).without("ssn", "credit_card") + # end::mapping[] + +meta: + mcp: + enabled: true + description: "Transform and validate user data" + properties: + - name: user_id + type: string + description: "User identifier" + required: true + - name: email + type: string + description: "User email address" + required: true + - name: subscription_tier + type: string + description: "Subscription level" + required: false + - name: profile + type: object + description: "User profile data" + required: false diff --git a/modules/ROOT/examples/mcp-tools/processors/verify_merchant.yaml b/modules/ROOT/examples/mcp-tools/processors/verify_merchant.yaml new file mode 100644 index 0000000..e0ad877 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/processors/verify_merchant.yaml @@ -0,0 +1,126 @@ +label: verify_merchant +mapping: | + root = match { + this.merchant_name == "LUXURY WATCHES INT" => { + "merchant_name": "LUXURY WATCHES INT", + "merchant_id": "MER-99912", + "reputation_score": 12, + "reputation_level": "high_risk", + "verification_status": "unverified", + "fraud_reports": { + "total_reports": 247, + "recent_reports_30d": 42, + "confirmed_fraud_cases": 89 + }, + "business_details": { + "country": "Singapore", + "years_in_operation": 1, + "registration_verified": false + }, + "red_flags": [ + "High volume of fraud reports", + "Recently established business", + "Unverified business registration", + "Operates in high-risk category", + "Pattern of chargebacks" + ], + "recommendation": "block_merchant" + }, + this.merchant_name == "EXAMPLE MKTPLACE" => { + "merchant_name": "EXAMPLE MKTPLACE", + "merchant_id": "MER-00001", + "reputation_score": 98, + "reputation_level": "excellent", + "verification_status": "verified", + "fraud_reports": { + "total_reports": 1203, + "recent_reports_30d": 15, + "confirmed_fraud_cases": 0 + }, + "business_details": { + "country": "USA", + "years_in_operation": 20, + "registration_verified": true, + "parent_company": "Example Organization" + }, + "red_flags": [], + "recommendation": "trusted_merchant" + }, + this.merchant_name == "EXAMPLE STREAMING" => { + "merchant_name": "EXAMPLE STREAMING", + "merchant_id": "MER-45678", + "reputation_score": 65, + "reputation_level": "moderate", + "verification_status": "verified", + "fraud_reports": { + "total_reports": 892, + "recent_reports_30d": 67, + "confirmed_fraud_cases": 12 + }, + "business_details": { + "country": "USA", + "years_in_operation": 5, + "registration_verified": true + }, + "red_flags": [ + "Known billing system issues", + "Frequent duplicate charge complaints", + "Difficult cancellation process" + ], + "common_issues": [ + "Duplicate subscriptions", + "Failed cancellation processing", + "Unclear billing descriptors" + ], + "recommendation": "verify_subscription_details" + }, + this.merchant_name == "HOTEL PARIS" => { + "merchant_name": "HOTEL PARIS", + "merchant_id": "MER-78234", + "reputation_score": 88, + "reputation_level": "trusted", + "verification_status": "verified", + "fraud_reports": { + "total_reports": 45, + "recent_reports_30d": 2, + "confirmed_fraud_cases": 0 + }, + "business_details": { + "country": "France", + "years_in_operation": 15, + "registration_verified": true, + "chain": "Independent Boutique Hotels" + }, + "red_flags": [], + "pricing": { + "average_room_rate_eur": 280, + "typical_range_eur": "220-350" + }, + "recommendation": "legitimate_merchant" + }, + _ => { + "merchant_name": this.merchant_name, + "reputation_score": 50, + "reputation_level": "unknown", + "verification_status": "not_found", + "fraud_reports": { + "total_reports": 0, + "recent_reports_30d": 0, + "confirmed_fraud_cases": 0 + }, + "business_details": {}, + "red_flags": [], + "message": "Merchant not found in verification database", + "recommendation": "manual_review_required" + } + } + +meta: + mcp: + enabled: true + description: "Verify merchant reputation and fraud history. Use LUXURY WATCHES INT (high risk), EXAMPLE MKTPLACE (trusted), EXAMPLE STREAMING (moderate), or HOTEL PARIS (trusted) for testing." + properties: + - name: merchant_name + type: string + description: "Merchant name as it appears on transaction" + required: true diff --git a/modules/ROOT/examples/weather_service.yaml b/modules/ROOT/examples/mcp-tools/processors/weather_service.yaml similarity index 100% rename from modules/ROOT/examples/weather_service.yaml rename to modules/ROOT/examples/mcp-tools/processors/weather_service.yaml diff --git a/modules/ROOT/examples/mcp-tools/snippets/bloblang_this_context.yaml b/modules/ROOT/examples/mcp-tools/snippets/bloblang_this_context.yaml new file mode 100644 index 0000000..18409d0 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/snippets/bloblang_this_context.yaml @@ -0,0 +1,15 @@ +# Bloblang 'this' context examples +# Use 'this' to access message fields in mutation, mapping, or args_mapping + +# tag::mutation[] +mutation: | + root.search_query = this.query.lowercase() + root.max_results = this.limit.or(10) +# end::mutation[] + +# tag::args_mapping[] +sql_select: + table: orders + where: customer_id = ? AND status = ? + args_mapping: '[this.customer_id, this.status.or("active")]' +# end::args_mapping[] diff --git a/modules/ROOT/examples/mcp-tools/snippets/defaults.yaml b/modules/ROOT/examples/mcp-tools/snippets/defaults.yaml new file mode 100644 index 0000000..844ea33 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/snippets/defaults.yaml @@ -0,0 +1,24 @@ +# Handling optional parameters with defaults + +# tag::mutation[] +mutation: | + root.city = this.city # Required - will error if missing + root.units = this.units.or("metric") # Optional with default + root.limit = this.limit.or(10).number() # Optional, converted to number +# end::mutation[] + +# tag::properties[] +properties: + - name: city + type: string + description: "City name to look up" + required: true + - name: units + type: string + description: "Temperature units: 'metric' or 'imperial' (default: metric)" + required: false + - name: limit + type: number + description: "Max results (default: 10)" + required: false +# end::properties[] diff --git a/modules/ROOT/examples/mcp-tools/snippets/interpolation.yaml b/modules/ROOT/examples/mcp-tools/snippets/interpolation.yaml new file mode 100644 index 0000000..90bd0d8 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/snippets/interpolation.yaml @@ -0,0 +1,13 @@ +# Bloblang interpolation in string fields +# Use ${! ... } to embed expressions in URLs, topics, headers + +# tag::http_url[] +http: + url: 'https://api.weather.com/v1/current?city=${! json("city") }&units=${! json("units").or("metric") }' +# end::http_url[] + +# tag::redpanda_topic[] +redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] # <1> + topic: '${! json("topic_name") }' # <2> +# end::redpanda_topic[] diff --git a/modules/ROOT/examples/mcp-tools/snippets/secrets.yaml b/modules/ROOT/examples/mcp-tools/snippets/secrets.yaml new file mode 100644 index 0000000..3ac6f98 --- /dev/null +++ b/modules/ROOT/examples/mcp-tools/snippets/secrets.yaml @@ -0,0 +1,14 @@ +# Using secrets in tool configurations +# Reference secrets with ${secrets.SECRET_NAME} syntax + +# tag::example[] +http: + url: "https://api.example.com/data" + headers: + Authorization: "Bearer ${secrets.API_TOKEN}" + +sql_select: + driver: postgres + dsn: "${secrets.DATABASE_URL}" + table: customers +# end::example[] diff --git a/modules/ROOT/examples/test-mcp-examples.sh b/modules/ROOT/examples/mcp-tools/test-mcp-tools.sh similarity index 62% rename from modules/ROOT/examples/test-mcp-examples.sh rename to modules/ROOT/examples/mcp-tools/test-mcp-tools.sh index 068f730..f815a56 100755 --- a/modules/ROOT/examples/test-mcp-examples.sh +++ b/modules/ROOT/examples/mcp-tools/test-mcp-tools.sh @@ -7,8 +7,8 @@ # 2. MCP metadata validation (enabled, description, properties) # # Usage: -# ./test-mcp-examples.sh # Run all tests -# ./test-mcp-examples.sh --lint-only # Only lint, skip metadata validation +# ./test-mcp-tools.sh # Run all tests +# ./test-mcp-tools.sh --lint-only # Only lint, skip metadata validation # # Unlike rp-connect-docs, Cloud MCP tools cannot be tested with # `rpk connect run` because they are standalone tool definitions, not @@ -24,10 +24,13 @@ BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' -# Get script directory +# Get script directory (script lives inside mcp-tools/) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" +# Component type directories +COMPONENT_DIRS=("inputs" "outputs" "processors" "caches") + # Counters TOTAL_TOOLS=0 PASSED_LINT=0 @@ -61,20 +64,24 @@ echo -e "📦 ${CYAN}SECTION 1: MCP Tool Linting${NC}" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" -# Count YAML files -file_count=$(find . -maxdepth 1 -name "*.yaml" | wc -l | tr -d ' ') -TOTAL_TOOLS=$file_count - -echo -n -e "${BLUE}📁 examples/${NC} ($file_count files)... " - -if output=$(rpk connect mcp-server lint --skip-env-var-check . 2>&1); then - echo -e "${GREEN}✓ PASSED${NC}" - PASSED_LINT=$file_count -else - echo -e "${RED}✗ FAILED${NC}" - echo "$output" | sed 's/^/ /' | head -20 - FAILED_LINT=$file_count -fi +for dir in "${COMPONENT_DIRS[@]}"; do + if [[ -d "$dir" ]]; then + file_count=$(find "$dir" -maxdepth 1 -name "*.yaml" | wc -l | tr -d ' ') + if [[ $file_count -gt 0 ]]; then + TOTAL_TOOLS=$((TOTAL_TOOLS + file_count)) + echo -n -e "${BLUE}📁 $dir/${NC} ($file_count files)... " + + if output=$(rpk connect mcp-server lint --skip-env-var-check "$dir" 2>&1); then + echo -e "${GREEN}✓ PASSED${NC}" + PASSED_LINT=$((PASSED_LINT + file_count)) + else + echo -e "${RED}✗ FAILED${NC}" + echo "$output" | sed 's/^/ /' | head -20 + FAILED_LINT=$((FAILED_LINT + file_count)) + fi + fi + fi +done # ============================================================================ # SECTION 2: MCP Metadata Validation @@ -99,17 +106,19 @@ if $RUN_METADATA; then fi if $RUN_METADATA; then - for file in *.yaml; do - if [[ -f "$file" ]]; then - echo -n -e " ${BLUE}$file${NC}... " - - # Check if .meta.mcp exists - if $use_yq; then - mcp_exists=$(yq eval '.meta.mcp' "$file" 2>/dev/null) - enabled=$(yq eval '.meta.mcp.enabled' "$file" 2>/dev/null) - description=$(yq eval '.meta.mcp.description' "$file" 2>/dev/null) - else - mcp_exists=$(python3 -c " + for dir in "${COMPONENT_DIRS[@]}"; do + if [[ -d "$dir" ]]; then + for file in "$dir"/*.yaml; do + if [[ -f "$file" ]]; then + echo -n -e " ${BLUE}$file${NC}... " + + # Check if .meta.mcp exists + if $use_yq; then + mcp_exists=$(yq eval '.meta.mcp' "$file" 2>/dev/null) + enabled=$(yq eval '.meta.mcp.enabled' "$file" 2>/dev/null) + description=$(yq eval '.meta.mcp.description' "$file" 2>/dev/null) + else + mcp_exists=$(python3 -c " import yaml try: with open('$file') as f: @@ -120,7 +129,7 @@ try: except: print('null') " 2>/dev/null) - enabled=$(python3 -c " + enabled=$(python3 -c " import yaml try: with open('$file') as f: @@ -130,7 +139,7 @@ try: except: print('null') " 2>/dev/null) - description=$(python3 -c " + description=$(python3 -c " import yaml try: with open('$file') as f: @@ -140,22 +149,24 @@ try: except: print('null') " 2>/dev/null) - fi - - # Validate - if [[ "$mcp_exists" == "null" || -z "$mcp_exists" ]]; then - echo -e "${YELLOW}SKIPPED${NC} (no MCP metadata)" - SKIPPED=$((SKIPPED + 1)) - elif [[ "$enabled" != "true" ]]; then - echo -e "${YELLOW}WARNING${NC} (mcp.enabled not true)" - SKIPPED=$((SKIPPED + 1)) - elif [[ "$description" == "null" || -z "$description" ]]; then - echo -e "${RED}FAILED${NC} (missing description)" - FAILED_METADATA=$((FAILED_METADATA + 1)) - else - echo -e "${GREEN}PASSED${NC}" - PASSED_METADATA=$((PASSED_METADATA + 1)) - fi + fi + + # Validate + if [[ "$mcp_exists" == "null" || -z "$mcp_exists" ]]; then + echo -e "${YELLOW}SKIPPED${NC} (no MCP metadata)" + SKIPPED=$((SKIPPED + 1)) + elif [[ "$enabled" != "true" ]]; then + echo -e "${YELLOW}WARNING${NC} (mcp.enabled not true)" + SKIPPED=$((SKIPPED + 1)) + elif [[ "$description" == "null" || -z "$description" ]]; then + echo -e "${RED}FAILED${NC} (missing description)" + FAILED_METADATA=$((FAILED_METADATA + 1)) + else + echo -e "${GREEN}PASSED${NC}" + PASSED_METADATA=$((PASSED_METADATA + 1)) + fi + fi + done fi done fi @@ -173,16 +184,20 @@ echo "━━━━━━━━━━━━━━━━━━━━━━━━ echo "" secrets_issues=0 -for file in *.yaml; do - if [[ -f "$file" ]]; then - # Check for non-Cloud secrets patterns (${VAR} without secrets. prefix) - # Exclude: - # - ${! ... } which is Bloblang interpolation - # - ${REDPANDA_BROKERS} which is platform-injected - if grep -E '\$\{[A-Z_]+\}' "$file" | grep -v '\${secrets\.' | grep -v '\${!' | grep -v '\${REDPANDA_BROKERS}' > /dev/null 2>&1; then - echo -e " ${BLUE}$file${NC}... ${YELLOW}WARNING${NC} (uses env vars instead of \${secrets.X})" - secrets_issues=$((secrets_issues + 1)) - fi +for dir in "${COMPONENT_DIRS[@]}"; do + if [[ -d "$dir" ]]; then + for file in "$dir"/*.yaml; do + if [[ -f "$file" ]]; then + # Check for non-Cloud secrets patterns (${VAR} without secrets. prefix) + # Exclude: + # - ${! ... } which is Bloblang interpolation + # - ${REDPANDA_BROKERS} which is platform-injected + if grep -E '\$\{[A-Z_]+\}' "$file" | grep -v '\${secrets\.' | grep -v '\${!' | grep -v '\${REDPANDA_BROKERS}' > /dev/null 2>&1; then + echo -e " ${BLUE}$file${NC}... ${YELLOW}WARNING${NC} (uses env vars instead of \${secrets.X})" + secrets_issues=$((secrets_issues + 1)) + fi + fi + done fi done diff --git a/modules/ROOT/examples/pipelines/agent-transformation.yaml b/modules/ROOT/examples/pipelines/agent-transformation.yaml new file mode 100644 index 0000000..b4c1460 --- /dev/null +++ b/modules/ROOT/examples/pipelines/agent-transformation.yaml @@ -0,0 +1,32 @@ +# Agent as transformation node +# Uses agent reasoning for complex transformations (natural language to SQL) +input: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: [nl-queries] + consumer_group: query-converter + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + +pipeline: + # tag::processors[] + processors: + - a2a_message: + agent_card_url: "${AGENT_CARD_URL}" + prompt: "Convert to SQL: ${!this.natural_language_query}" + # end::processors[] + +output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: sql-queries + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/async-workflows.yaml b/modules/ROOT/examples/pipelines/async-workflows.yaml new file mode 100644 index 0000000..38b0daf --- /dev/null +++ b/modules/ROOT/examples/pipelines/async-workflows.yaml @@ -0,0 +1,32 @@ +# Asynchronous workflow pipeline +# Processes events in the background with acceptable latency +# tag::pipeline[] +input: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: [daily-reports] + consumer_group: report-analyzer + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + +pipeline: + processors: + - a2a_message: + agent_card_url: "${AGENT_CARD_URL}" + prompt: "Summarize this report: ${!content()}" +# end::pipeline[] + +output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: report-summaries + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/dispute-pipeline.yaml b/modules/ROOT/examples/pipelines/dispute-pipeline.yaml new file mode 100644 index 0000000..ef312a5 --- /dev/null +++ b/modules/ROOT/examples/pipelines/dispute-pipeline.yaml @@ -0,0 +1,157 @@ +# Event-driven transaction dispute processing pipeline +# Automatically flags high-risk transactions and routes them to dispute agent + +input: + kafka: + addresses: ["${REDPANDA_BROKERS}"] + topics: ["bank.transactions"] + consumer_group: dispute-processor + tls: + enabled: true + sasl: + mechanism: SCRAM-SHA-256 + user: "${secrets.DISPUTE_PIPELINE_USERNAME}" + password: "${secrets.DISPUTE_PIPELINE_PASSWORD}" + +pipeline: + processors: + # Filter for high-value or suspicious transactions + - branch: + request_map: | + # Only process transactions above $500 or flagged by upstream systems + root = if this.amount > 500 || this.preliminary_flag == true { + this + } else { + deleted() + } + + processors: + # Calculate preliminary risk score based on transaction attributes + - mapping: | + # Preserve original transaction + root = this + + # Location risk: international transactions get higher score + let location_risk = if this.merchant.country != this.card.billing_country { 40 } else { 0 } + + # Amount risk: large amounts relative to account averages + let amount_risk = if this.amount > 1000 { 30 } else if this.amount > 500 { 15 } else { 0 } + + # Velocity risk: check for multiple recent transactions + let velocity_risk = if this.recent_transaction_count > 5 { 20 } else { 0 } + + # Category risk: luxury goods and high-risk categories + let category_risk = match this.merchant.mcc { + "5944" => 20, # Jewelry + "5094" => 25, # Precious stones + _ => 0 + } + + # Calculate total score + let total_score = $location_risk + $amount_risk + $velocity_risk + $category_risk + + root.preliminary_risk_score = $total_score + root.risk_level = if $total_score > 70 { + "high" + } else if $total_score > 40 { + "medium" + } else { + "low" + } + + # Route high and medium risk transactions to dispute agent for investigation + - branch: + request_map: | + # Only send to agent if risk is medium or higher + root = if this.preliminary_risk_score >= 40 { this } else { deleted() } + + processors: + # Invoke dispute resolution agent via A2A protocol + - a2a_message: + agent_card_url: "${secrets.DISPUTE_AGENT_CARD_URL}" + prompt: | + Investigate this potentially fraudulent transaction and respond with ONLY a JSON object (no additional text): + + Transaction ID: ${! this.transaction_id } + Customer ID: ${! this.customer_id } + Amount: $${! this.amount } ${! this.currency } + Merchant: ${! this.merchant.name } + Location: ${! this.merchant.city }, ${! this.merchant.country } + Date: ${! this.transaction_date } + Preliminary Risk Score: ${! this.preliminary_risk_score }/100 + Risk Level: ${! this.risk_level } + + Return ONLY this JSON format with no other text: + { + "recommendation": "block_and_investigate" | "hold_for_review" | "approve", + "fraud_score": , + "confidence": "high" | "medium" | "low", + "reasoning": "" + } + + # Map agent response back to transaction record + result_map: | + # By default, result_map preserves the original message that entered the branch + # Just add the agent investigation field + root.agent_investigation = if content().string().parse_json().catch(null) != null { + content().string().parse_json() + } else { + { + "recommendation": "manual_review_required", + "fraud_score": 50, + "confidence": "low", + "reasoning": "Agent returned unparseable response: " + content().string().slice(0, 100) + } + } + + # Merge risk scoring and agent results back to original transaction + result_map: | + root = content() + + # Enrich with final decision and tracing metadata + - mapping: | + # Preserve original transaction and all computed fields + root = this + + # Only set final_decision and alert_level if agent investigation occurred + root.final_decision = if this.agent_investigation.exists("recommendation") { + match { + this.agent_investigation.recommendation == "block_and_investigate" => "blocked", + this.agent_investigation.recommendation == "hold_for_review" => "pending_review", + this.agent_investigation.recommendation == "approve" => "approved", + _ => "manual_review_required" + } + } else { + "low_risk_no_investigation" + } + + root.alert_level = if this.agent_investigation.exists("fraud_score") { + match { + this.agent_investigation.fraud_score >= 80 => "critical", + this.agent_investigation.fraud_score >= 60 => "high", + this.agent_investigation.fraud_score >= 40 => "medium", + _ => "low" + } + } else { + "low" + } + + # Add execution metadata for tracing back to agent transcripts + root.pipeline_metadata = { + "processed_at": now().ts_format("2006-01-02T15:04:05.000Z"), + "transaction_id": this.transaction_id, + "customer_id": this.customer_id, + "agent_invoked": this.agent_investigation.exists("fraud_score") + } + +output: + kafka: + addresses: ["${REDPANDA_BROKERS}"] + topic: bank.dispute_results + key: "${! this.transaction_id }" + tls: + enabled: true + sasl: + mechanism: SCRAM-SHA-256 + user: "${secrets.DISPUTE_PIPELINE_USERNAME}" + password: "${secrets.DISPUTE_PIPELINE_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/event-driven-invocation.yaml b/modules/ROOT/examples/pipelines/event-driven-invocation.yaml new file mode 100644 index 0000000..677beb9 --- /dev/null +++ b/modules/ROOT/examples/pipelines/event-driven-invocation.yaml @@ -0,0 +1,30 @@ +# Event-driven agent invocation pipeline +# Invokes an agent for each event in a stream +input: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: [transactions] + consumer_group: fraud-detector + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + +pipeline: + processors: + - a2a_message: + agent_card_url: "${AGENT_CARD_URL}" + prompt: "Analyze this transaction: ${!content()}" + +output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: fraud-alerts + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/fraud-detection-routing.yaml b/modules/ROOT/examples/pipelines/fraud-detection-routing.yaml new file mode 100644 index 0000000..ea5f3f9 --- /dev/null +++ b/modules/ROOT/examples/pipelines/fraud-detection-routing.yaml @@ -0,0 +1,75 @@ +# Fraud detection pipeline with score-based routing +# Analyzes every transaction and routes to different topics based on fraud score +input: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: [transactions] + consumer_group: fraud-detector + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + +pipeline: + processors: + - branch: + request_map: | + root.transaction_id = this.id + root.amount = this.amount + root.merchant = this.merchant + root.user_id = this.user_id + processors: + - a2a_message: + agent_card_url: "${AGENT_CARD_URL}" + prompt: | + Analyze this transaction for fraud: + Amount: ${! json("amount") } + Merchant: ${! json("merchant") } + User: ${! json("user_id") } + + Return JSON: { "fraud_score": 0-100, "reason": "explanation", "recommend_block": true/false } + result_map: | + root = this + root.fraud_analysis = content().parse_json().catch({}) + + - mapping: | + root = this + meta fraud_score = this.fraud_analysis.fraud_score + +output: + switch: + cases: + - check: 'meta("fraud_score") >= 80' + output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: fraud-alerts-high + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + - check: 'meta("fraud_score") >= 50' + output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: fraud-alerts-medium + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + - output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: transactions-cleared + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/fraud-detection-simple.yaml b/modules/ROOT/examples/pipelines/fraud-detection-simple.yaml new file mode 100644 index 0000000..debb8ba --- /dev/null +++ b/modules/ROOT/examples/pipelines/fraud-detection-simple.yaml @@ -0,0 +1,30 @@ +# Fraud detection pipeline that invokes an agent for every transaction +# Replace AGENT_CARD_URL with your actual agent card URL +input: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: [transactions] + consumer_group: fraud-detector + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + +pipeline: + processors: + - a2a_message: + agent_card_url: "${AGENT_CARD_URL}" + prompt: "Analyze this transaction: ${!content()}" + +output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: fraud-alerts + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/multi-agent-orchestration.yaml b/modules/ROOT/examples/pipelines/multi-agent-orchestration.yaml new file mode 100644 index 0000000..934d168 --- /dev/null +++ b/modules/ROOT/examples/pipelines/multi-agent-orchestration.yaml @@ -0,0 +1,35 @@ +# Multi-agent pipeline orchestration +# Chains multiple agents in sequence: translate -> analyze sentiment -> route +input: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: [international-feedback] + consumer_group: feedback-processor + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + +pipeline: + # tag::processors[] + processors: + - a2a_message: + agent_card_url: "${TRANSLATOR_AGENT_URL}" + - a2a_message: + agent_card_url: "${SENTIMENT_AGENT_URL}" + - a2a_message: + agent_card_url: "${ROUTER_AGENT_URL}" + # end::processors[] + +output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: processed-feedback + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/streaming-enrichment.yaml b/modules/ROOT/examples/pipelines/streaming-enrichment.yaml new file mode 100644 index 0000000..3f544d5 --- /dev/null +++ b/modules/ROOT/examples/pipelines/streaming-enrichment.yaml @@ -0,0 +1,35 @@ +# Streaming data enrichment pipeline +# Adds AI-generated metadata (sentiment) to events +input: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topics: [customer-feedback] + consumer_group: sentiment-enricher + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" + +pipeline: + # tag::processors[] + processors: + - branch: + request_map: 'root = this.text' + processors: + - a2a_message: + agent_card_url: "${AGENT_CARD_URL}" + result_map: 'root.sentiment = content()' + # end::processors[] + +output: + redpanda: + seed_brokers: ["${REDPANDA_BROKERS}"] + topic: enriched-feedback + tls: + enabled: true + sasl: + - mechanism: SCRAM-SHA-256 + username: "${REDPANDA_USERNAME}" + password: "${REDPANDA_PASSWORD}" diff --git a/modules/ROOT/examples/pipelines/test-pipelines.sh b/modules/ROOT/examples/pipelines/test-pipelines.sh new file mode 100755 index 0000000..b8bfd49 --- /dev/null +++ b/modules/ROOT/examples/pipelines/test-pipelines.sh @@ -0,0 +1,114 @@ +#!/usr/bin/env bash +# +# Test script for Redpanda Cloud pipeline examples +# +# This script uses rpk connect lint to validate pipeline configurations. +# Cloud-specific processors (like a2a_message) are not available in the local +# CLI, so those errors are expected and noted. +# +# Usage: +# ./test-pipelines.sh +# +# Exit codes: +# 0 - All files have valid YAML structure (Cloud processor errors are expected) +# 1 - YAML syntax errors or unexpected failures + +set -euo pipefail + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +CYAN='\033[0;36m' +NC='\033[0m' + +# Get script directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$SCRIPT_DIR" + +# Counters +TOTAL=0 +PASSED=0 +CLOUD_PROCESSOR_ERRORS=0 +FAILED=0 + +echo "🧪 Redpanda Cloud Pipeline Examples - Test Suite" +echo "=================================================" +echo "" + +# Check for rpk +if ! command -v rpk &> /dev/null; then + echo -e "${RED}Error: rpk is required${NC}" + echo "Install rpk: https://docs.redpanda.com/current/get-started/rpk-install/" + exit 1 +fi + +echo -e "${CYAN}Using:${NC} $(rpk version 2>/dev/null | head -1 || echo 'rpk')" +echo "" + +# ============================================================================ +# Lint each pipeline file +# ============================================================================ + +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo -e "📦 ${CYAN}Pipeline Linting${NC}" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +for file in *.yaml; do + if [[ -f "$file" ]]; then + TOTAL=$((TOTAL + 1)) + echo -n -e " ${BLUE}$file${NC}... " + + # Run rpk connect lint + output=$(rpk connect lint --skip-env-var-check "$file" 2>&1) || true + + if [[ -z "$output" ]]; then + # No output means success + echo -e "${GREEN}PASSED${NC}" + PASSED=$((PASSED + 1)) + elif echo "$output" | grep -q "a2a_message\|unable to infer.*a2a"; then + # Cloud-specific processor error (expected) + echo -e "${YELLOW}OK${NC} (Cloud processor - requires Redpanda Cloud)" + CLOUD_PROCESSOR_ERRORS=$((CLOUD_PROCESSOR_ERRORS + 1)) + elif echo "$output" | grep -qi "yaml\|parse\|syntax"; then + # YAML syntax error (unexpected) + echo -e "${RED}FAILED${NC}" + echo "$output" | sed 's/^/ /' + FAILED=$((FAILED + 1)) + else + # Other lint error (unexpected) + echo -e "${RED}FAILED${NC}" + echo "$output" | sed 's/^/ /' + FAILED=$((FAILED + 1)) + fi + fi +done + +# ============================================================================ +# Summary +# ============================================================================ + +echo "" +echo "=================================================" +echo "📊 Test Summary" +echo "=================================================" +echo -e "Total files: $TOTAL" +echo -e "Fully passed: $PASSED" +echo -e "Cloud processors: $CLOUD_PROCESSOR_ERRORS (expected - requires Cloud)" +echo -e "Failed: $FAILED" +echo "──────────────────────────────────────────────────" + +if [[ $FAILED -gt 0 ]]; then + echo -e "${RED}❌ $FAILED file(s) have YAML errors${NC}" + exit 1 +else + echo -e "${GREEN}✅ All files valid${NC}" + if [[ $CLOUD_PROCESSOR_ERRORS -gt 0 ]]; then + echo "" + echo -e "${YELLOW}Note: $CLOUD_PROCESSOR_ERRORS file(s) use Cloud-specific processors (a2a_message)${NC}" + echo -e "${YELLOW}These require deployment to Redpanda Cloud for full validation.${NC}" + fi + exit 0 +fi diff --git a/modules/ROOT/examples/testing.adoc b/modules/ROOT/examples/testing.adoc deleted file mode 100644 index 96d8525..0000000 --- a/modules/ROOT/examples/testing.adoc +++ /dev/null @@ -1,290 +0,0 @@ -= Test MCP Examples -:description: Automated testing strategies for Redpanda Cloud MCP server examples. - -This document describes the automated testing strategies for Redpanda Cloud MCP server examples. - -All MCP examples are automatically tested to ensure: - -. YAML syntax and structure are correct -. MCP metadata is complete and valid -. Component schemas match Redpanda Connect specifications -. Secrets syntax uses Cloud Secrets Store format (`${secrets.X}`) - -== Testing approaches - -=== Configuration linting - -Validate MCP tool configurations using `rpk connect lint`: - -[,bash] ----- -# Lint a single MCP tool -rpk connect lint weather_service.yaml - -# Lint all examples -rpk connect lint *.yaml - -# Lint with environment variable checking skipped (recommended for MCP) -rpk connect lint --skip-env-var-check *.yaml ----- - -This checks for common issues such as: - -* YAML syntax errors -* Unknown component types -* Invalid field names -* Type mismatches -* Missing required fields - -=== MCP metadata validation - -The test script validates MCP-specific metadata for all tool examples: - -[,bash] ----- -# Run all tests (includes linting + MCP validation) -./test-mcp-examples.sh - -# Test specific files -./test-mcp-examples.sh weather_*.yaml ----- - -MCP metadata validation checks: - -* Presence of `meta.mcp` section -* `enabled: true` is set -* `description` field exists and is non-empty -* `properties` are properly structured (if present) - -=== Unit testing limitations - -MCP tool examples are standalone component definitions (`label:`, `processors:`, `meta:`), not full pipelines with `input:`, `pipeline:`, `output:` sections. This means they cannot use inline `tests:` sections like cookbook examples do. - -The `rpk connect test` command requires full pipeline structure with paths like `/pipeline/processors/0`, which don't exist in MCP tool definitions. - -For testing MCP tools: - -- Ensure syntax and schema correctness. -- Verify MCP metadata has proper description and properties. -- Perform manual testing using the Cloud Console MCP Server interface to test tools end-to-end. - -== MCP tool structure - -MCP tools are structured as standalone components: - -[,yaml] ----- -label: weather-service -processors: - - label: fetch_weather_data - http: - url: 'https://wttr.in/${! @city }?format=j1' - verb: GET - - - label: format_response - mutation: | - root = { - "city": @city, - "temperature": this.current_condition.0.temp_C.number() - } - -meta: - mcp: - enabled: true - description: "Get current weather conditions for any city worldwide" - properties: - - name: city - type: string - description: "Name of the city" - required: true ----- - -== Test script usage - -The `test-mcp-examples.sh` script provides automated validation: - -[,bash] ----- -# Test all examples -./test-mcp-examples.sh - -# Test specific files -./test-mcp-examples.sh weather_*.yaml -./test-mcp-examples.sh customer_*.yaml ----- - -The script provides color-coded output: - -[,console] ----- -🧪 Redpanda Connect MCP Examples Test Suite (Cloud) -==================================================== - -📄 Testing: weather_service.yaml - Linting weather_service.yaml... PASSED - Validating MCP metadata... PASSED - -==================================================== -📊 Test Summary -==================================================== -Total configs tested: 10 -Passed: 10 -Failed: 0 - -✅ All tests passed! ----- - -== Manual end-to-end testing - -For comprehensive validation, test MCP tools using the Cloud Console: - -. Navigate to your Cloud cluster's MCP Server configuration -. Add or update your MCP tool configuration -. Use the Cloud Console's MCP Inspector to locate your tool -. Verify the tool executes correctly and returns expected results - -This validates: - -* Tool loads correctly in the MCP server -* Tool executes with provided parameters -* Responses are formatted correctly -* Secrets are properly resolved from Cloud Secrets Store - -== GitHub Actions CI/CD - -Automated tests run on every push and pull request using GitHub Actions. - -The workflow tests all examples whenever: - -* Any `.yaml` file in `modules/ai-agents/examples/` changes -* The test script itself is modified - -See `.github/workflows/test-mcp-examples.yaml` for the complete workflow. - -== Best practices - -=== Use descriptive tool names - -[,yaml] ----- -# Good -label: fetch-customer-orders - -# Bad -label: tool1 ----- - -=== Write clear MCP descriptions - -[,yaml] ----- -# Good -meta: - mcp: - description: "Fetch a customer's order history and calculate spending metrics over the last 30 days" - -# Bad -meta: - mcp: - description: "Get orders" ----- - -=== Document all properties - -[,yaml] ----- -# Good -properties: - - name: customer_id - type: string - description: "Unique identifier for the customer" - required: true - - name: days - type: number - description: "Number of days to look back (default: 30)" - required: false - -# Bad -properties: - - name: id - type: string - required: true ----- - -=== Use Cloud Secrets Store for sensitive data - -[,yaml] ----- -# Cloud format - uses Secrets Store -sql_select: - driver: "postgres" - dsn: "${secrets.POSTGRES_DSN}" - table: "customers" ----- - -=== Tag your examples - -[,yaml] ----- -meta: - tags: [ example, weather, api ] # Helps organize and filter - mcp: - enabled: true ----- - -== Adding new examples - -When adding new MCP tool examples: - -. **Create your YAML file** in `modules/ai-agents/examples/`: -+ -[,bash] ----- -cd modules/ai-agents/examples -touch my-new-tool.yaml ----- - -. **Include complete MCP metadata:** -+ -[,yaml] ----- -label: my-new-tool -processors: - # Your processor configuration - -meta: - mcp: - enabled: true - description: "Clear, task-oriented description" - properties: - - name: param_name - type: string - description: "Parameter purpose and constraints" - required: true ----- - -. **Lint your example:** -+ -[,bash] ----- -rpk connect lint --skip-env-var-check my-new-tool.yaml ----- - -. **Run automated tests:** -+ -[,bash] ----- -./test-mcp-examples.sh my-new-tool.yaml ----- - -. **Test in Cloud Console (recommended):** -+ -Deploy your MCP server configuration and test the tool through the Cloud Console AI interface. - -. **Commit your example:** -+ -[,bash] ----- -git add modules/ai-agents/examples/my-new-tool.yaml -git commit -m "Add my-new-tool MCP example" ----- diff --git a/modules/ROOT/images/agent-exit-conditions.png b/modules/ROOT/images/agent-exit-conditions.png new file mode 100644 index 0000000000000000000000000000000000000000..5d14a08a4d8df8eee538b1daefef68fc21622b7d GIT binary patch literal 3894398 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

S!S`ffTq3w4>oqpdcMPl;g6+ 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%0A0uLy+{GRWjNn(TJ>}I#-Ss^4-kXz#3|?nV}8p~ zs|sUXo6YW39qNWB>bGS0Z?c-#llyww$i=h;KGT)2<7!_^^8vIMaMX%J(FWSmgkAfd zkFW&ZY&zdu=iV@^v3I5YxUWju6kUJFQt=P!nke7G+A$4r zyS(n(ea3OL$FiQ~6yqwxZ}49#$icX$8`qGys)0$aM1(&0R5a7KeKR-4S@3U}2LGI0 zCjWizNT8+-;XHmG!_7au#R5#cVIE_>OCC+SVti@*vpMy#>#!ejG2U-{K>5{(*DXn8 zI;X();>$CI^mZKZ~sm@m8UUV_MuYQPp za>Um`U-5GL`MAI4-7{X(V~$gu%0D567;1wyp2PpR_-}6W;68^8xtvbI*G)gV>2QO0 zEwq2Tl$T(A^&RjY9iNVy?ailmfzO<8p>yK#X)Fa z@|U0Mx}I}x`#Qdz@%P*OexuXLgHBl8;^kW#gD0szw)pGE@APxGI1sqPkBv%=(kEB$ z0)c~#tfA~_*>-(x3%%@qaYP64aZ*#PDsd=4LrIwl|T<(LGlmZAg&f4orQ$9>uKHh ztNqKvw<7TfJpuOC_eNuzjO01$csHF*{W7a=EA4FlYkv2MKkC>NSNQ$G=SXh`9J!s} z)}!nb{8oSX`$xxyGQTwR-?Nxc`AF=YDq#2-1s*EDMT<9mzkL4v>)%<$*&nsLyp7zj z{&LRG>|yA0uwmamEKxQp)&BYO?ml~eKkYE9W^3Qri7bAmMd}3J{@Xv^#@~OxUfw@m zU*6v=kM+~r{^y^6YGbp%^Y`z|>(`g7VY#@KU(kse6V?rMYc!QZEVb?W+ zNOEa}h@+H(AtphN4C4f#AGh?+Kwe`AZfL)qiE(gP8353iPbL$ZSRqhHjlC0NvZUTf zD8j-5|E*sHrhpuElzp|sJJs)r4a|sREPPz|BwAH$)nUX0u_ZJGoaS-h1Cgw-ur%1*QlH!e%*2iJ8t#AS*1(DW?fbBow#AMGkBoO3p9J zg*y6_iHCsAalGG|B?KYE;b|NUCwAyYbqpjG!;v-n+!Rc9WWnKcu3hhN#JhlPv=?;N z-?jn53TQh9B)|Z@^AnDdP6(U^;8Z5L0uRFm2@Q5dBJxbg$M+a6?*!6I>0nd1C#=MI zn+c_uKjXGKGPo`N&DB#`2(xqUrkHLHb;XG%9Md@~Zk#x|1j6aqF0HJ}WB4ujR}SGz zA}He~77fa#5Om$`;mvzfr#__^F`G=S^&*E* z1jW*MJ}P#1MIktVt8&TZNFzI|73ZKd1*j-TVIvAijNB4aAp}jzts_& zt_S4KQ-8-D43KBJUI+*u6?6ABWQRBKo@sGgUxvYxUd8+lu)}W+Sg9U&@LQ>@?iFzS z#dHwKkSf2i{96t%;<7l4%MApA_+$~% zJGV+5tef!Vw22^fws-1jF*evN(61otH3^XM=LQ%4eG3@qSok^L+hlppI@|tu9*5&p z(~^(rGmiweIU&GhMH6!4F~g5}pRTFWio#xL?Iuh0xwfhF#cQ$YRP2gHQ*NXJIk*kkrWLWmq6=Ya{QGKv0 z-lm+%lO8Go0g0x$F@yt!H(lueiF{!H0?WrInR>f!^f>7$|Miosk2wpWC#xzJJ4 zUbUnGW39Kx{KB?DAi{jNtY_(%H@x2PAOEr+fuA*g;r*V>K4ru~G4keK$c{ z)9%yt$9h74Ha@Nul%S8>W$_O5rM4A+*EF2#nf#!Rlo#6F{CLXu@VEK{+0Fx>L1+i- ztO)|T!58bIb}1^?m^~Kqz+e?K0^St;(urp(^QR0vla94;DW@ZI1;=;!n&#N2W$ zi7N$%TL0F|IS+vOGSdogfMC5xWs1tXO)naJ|3BDDb6yjVYJ7`+y~&_k8;tincIbbM zPu?#1i#I)6$FmgzxXn}LB+v5(TU|SbiOO888^0gp_t6NP&g9l@3|x3a$E9$=dw}`S zzcj|0KevQe)&+0Z23zfq?U(wF{AWCl8dt((8`svi{>^-bW80_f=*>El2lse4`GWh< z0S>qdU;K@R6bIoOD0@a>Z2US4uZ{76ePUzo5*yR;Kgm>V$YQ-qYfDSvGpXBMPV{#hpzWPH}mY{3-vS{o5Ed~wc4Lt03(wB@dR>&d#tAPm}(Xv>UDk(hT} z1TbfXq(Y*iv#Hqk0>lxPxV8!hH)M@IX3`-H$pc~6pj0LzIn%j2U@@;bmgz`WII&}p z`+gMWwSRmb$T<$}iMNhDp0&iDZD->0UuIj))ci^o`4+Zvhe%t!;eC$HjI+#9o zpq4?m7&bRX%7XggwQgK-FCBl13q>ZS}H0(MDAV0d&p_P38TaRf)$1><$m zE{<5GBgIF>5d?;m;Z6K#r$62Yoy6$oj%%IInTV|wrGftwx0TjPx&A?bITa475Hy8j z8xnk!QeTsCZvhuxqu(49TLoy)g(hk$J}NvIj>=~?J_&ejIK^wK^V)a|Kj-$ejiO^} z7LLF1T)y9M-dAG@VBh$sD&9Bx<7b6aWGF$N!5I@yo>mxH!C}Mn#>aT<8!z6JLSA1s z5Eb{>VR!}%$bkySuO%2@_n9RU(~)0_>pCtT`$ij^41j*Y4)DT@h5w@>MSp)L9Bv7l z{*FDD3hcZibntmO;ymEjmB4X)jPtXE6XO}+z2WcXz^Wq;M9%O#H`-Gg4Ojwy&V(y% zgV#d&5Yr*Qr~IStlVRcfy&tYPqK;f$|4k>N!q()PK`A^tP< zfEKs*6u;7JJrjRj$=Re0b_B_CenZGLAz_kb+ROO+XV zj~#A~C#Z}^iCmBeo9?v9gpFVG+D`cF!2*7^*_=uPoH&5{+xW_Xi3AY}r27~gXI$Wy z{;%+@V=V^}JF172`c-_`+RxbaP$+a{lREl$3RK<0^$ z=z9cK$#y|P0C;oonORYa+hjaeKDN;S|NCF~2gBqhd)1Gz!G~cV-&zG7=sC%k{B$VB z>sf(CPawEepuN*tCon0WRR<{ApY!Sjfw>-?q%(DnnV`%1%dlU{K2APkHXJ#AYs1T; zSKV~j8*k9R6@M{LhOhD)yr+ppDrdNV{-(#2r)!XWQ2lSn&rHZx`KT41xk_-X<*Y=^ z`pYdSuW(XaVt>`<^Vu%Lzcx)ypHR&4ta7#SAH2^=zlz70pU!9MLc9HeKKQ+j|0%E0 z_IDku;c)Y{aQho?;r2TK2cJ~yIGj*~L=ZpXFL8}ex;XW2llL|*-tayHVXEJ%o}u&~ zbDI9Xs#t~qBlJ(E=R6Wn*N*k>{@n@d{tWKq#XeX1XJ0JS{f4KiLj}J8Y&wyd6QnV& zIc_BE?)rWObZA2h!+n$U(9`0_`_=#Zl$68xxZx@LKv5a0=N)+B@|Y^%`uCKShIQF+ z9VZf?0#0mLp>@C^dI#1vLo+ z`jp5Swu^6Tsd_Tce+%5lOXtRWjw^LRBKROOVO8GOaq;-IqW2~{F@B3dGtO=J>)+%C zKpsDz5`(qIsW_Y<%KYB(k?846G&tqUrf2dP)qg(V1^)>pTH#yfC)FpNBoq8q_&qil zqr$CJVBX+2@b6N|pDW`r{%L#(?eGaj{66=M3-9~iw%+u&C$G`wmTFHb8?)^md?6F% z>jd3f{CM(%TE9$K>kX7BM6~!7L-Ahu=Vs^Qoh?qHIwoJrGe#^$=#|@0 zd_dnwpiI#G#cZqmPrq-p2XAHh#^d98Ft5GY0C*Q;W}bP2o$5`xHa=Cd$GeTm zPj7yG=;^^br(bhhpPOvuHexihkP+kN%?{rD{`{QznBr0WopJoKe^YMNH)*f1-&N&; zj$`9ZLpHDZ7SnIoaP77k&v;F?`RX^kK8$yp-dMj)UjV&QHFAbG^fv&IV<&7QbGs^Q z6^E6+p;!1lh&{3Ya8=$x`c1bJc{W;7*zxa}3%)&bZ+MP~Z|T^2gXXzm{HAwc?s{#0 z^jiYAuBjGN+ykpTWrIYuU-4;^iuw!^3Cu4%y$|0CS37vZ+P}GAs&%Mp>*S3Z>Yt5W*^-5jrS@a z>b0BxO^;_Fzba2;dvSb;el4?qtk}luTjtYzHr+d3eY|JE$DgksIQBM$j+HAQ zej~>BP^fKJcLn|+RI0*I06cam_l{Is5Z?(&M@8GW!SMeSp_bx|N>)^

FRS41Np4 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�f?*nvkzMt2*fbDjPAF7MJrwSlbh9^Jq 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

B=e{DyJJAxZ$8JJ)h@B=R$P) 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 z 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

b6q$7S+BUiIS|W0tZv|b6*i50?>zpj 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

Kswc!$z;lSafv%YuR=By9}dzk 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

V9TP21mRX^A8&bmbxVp0-8O!?XG=k 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%0D=8FZR%EJEZ!)1y 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

${J)&AW*ElU}ENc|ViV?Vs@<-;Zr8PrYegyYKbv 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

E~ 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 z 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%0DUBcV*99I?>*mut+%!4;} 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

7dVD=p5mo9 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

  • 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