Skip to content

Conversation

@JakeSCahill
Copy link
Contributor

@JakeSCahill JakeSCahill commented Dec 8, 2025

Description

Resolves https://redpandadata.atlassian.net/browse/DOC-1846
Review deadline: December 10

This pull request introduces automated testing for Redpanda Cloud MCP server examples, improves documentation and navigation for MCP server management, and removes beta labels.

Automated Testing & Documentation

  • Added .github/workflows/test-mcp-examples.yaml workflow to automatically test MCP example YAML files and the test script on every push and pull request.
  • Introduced modules/ai-agents/examples/test-mcp-examples.sh, a Bash script that lints example configs and validates MCP metadata, with color-coded output and summary.
  • Added modules/ai-agents/examples/testing.adoc documentation describing automated and manual testing strategies, script usage, and best practices for MCP examples.

MCP Server Management Documentation

  • Refactored and expanded modules/ai-agents/pages/mcp/remote/admin-guide.adoc to overview administrative tasks for Remote MCP servers, and split details into new guides for server management, scaling, and monitoring.
  • Updated navigation in modules/ROOT/nav.adoc to include new guides: manage-servers.adoc, scale-resources.adoc, and monitor-activity.adoc for Remote MCP server administration.

Minor Documentation & UI Improvements

  • Added beta badges to local MCP server references in documentation for clarity. [1] [2]
  • Changed external Antora playbook reference to use the single-source branch for documentation builds (temporary - do not merge)

These changes collectively improve MCP example quality assurance, clarify server management, and keep CI/CD tooling up to date.

Page previews

Checks

  • New feature
  • Content gap
  • Support Follow-up
  • Small fix (typos, links, copyedits, etc)

- 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
- 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.
- 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.
Prevent environment files from being committed to repository.
AsciiDoc formatting: escape curly braces in inline code blocks
to prevent them from being interpreted as attribute references.
- 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)
@JakeSCahill JakeSCahill requested a review from a team as a code owner December 8, 2025 14:22
@netlify
Copy link

netlify bot commented Dec 8, 2025

Deploy Preview for rp-cloud ready!

Name Link
🔨 Latest commit 0403bd7
🔍 Latest deploy log https://app.netlify.com/projects/rp-cloud/deploys/6942bb1ac806f2000823e67a
😎 Deploy Preview https://deploy-preview-472--rp-cloud.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

- 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
- 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.
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (1)
modules/ai-agents/pages/index.adoc (1)

10-10: Verify badge attribute consistency across pages.

Line 10 uses the same {page-beta-text} attribute as overview.adoc. Ensure this attribute is globally available so both pages render consistently.

The verification requested in the overview.adoc review comment will cover this attribute as well.

🧹 Nitpick comments (2)
modules/ai-agents/examples/test-mcp-examples.sh (2)

65-66: Separate variable declaration and assignment to improve error detection.

Combining local with command substitution masks the return value of grep. Shellcheck recommends declaring the variable first, then assigning it separately.

Apply this diff:

-    local has_enabled=$(grep -c "enabled: true" "$file" || echo 0)
-    local has_description=$(grep -c "description:" "$file" || echo 0)
+    local has_enabled
+    has_enabled=$(grep -c "enabled: true" "$file" || echo 0)
+    local has_description
+    has_description=$(grep -c "description:" "$file" || echo 0)

32-49: Add pre-flight checks to improve script robustness.

The script assumes rpk connect lint is available and that files exist before attempting to validate them. Consider adding defensive checks.

Add these checks near the beginning of the script, after the shebang and color definitions:

+# Check for required tools
+if ! command -v rpk &> /dev/null; then
+    echo -e "${RED}Error: rpk command not found. Please ensure Redpanda CLI is installed.${NC}"
+    exit 1
+fi
+
+# Validate that at least one file matches the pattern
+if ! ls $PATTERN 1> /dev/null 2>&1; then
+    echo -e "${YELLOW}Warning: No files matching pattern '$PATTERN' found${NC}"
+    exit 0
+fi
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6f64e23 and 19fcd2e.

📒 Files selected for processing (20)
  • .github/workflows/test-mcp-examples.yaml (1 hunks)
  • .github/workflows/update-extensions.yml (1 hunks)
  • .gitignore (1 hunks)
  • local-antora-playbook.yml (1 hunks)
  • modules/ROOT/nav.adoc (1 hunks)
  • modules/ai-agents/examples/test-mcp-examples.sh (1 hunks)
  • modules/ai-agents/examples/testing.adoc (1 hunks)
  • modules/ai-agents/pages/index.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/overview.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/admin-guide.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/developer-guide.adoc (3 hunks)
  • modules/ai-agents/pages/mcp/remote/index.adoc (0 hunks)
  • modules/ai-agents/pages/mcp/remote/manage-servers.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/monitor-activity.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/overview.adoc (2 hunks)
  • modules/ai-agents/pages/mcp/remote/pipeline-patterns.adoc (3 hunks)
  • modules/ai-agents/pages/mcp/remote/quickstart.adoc (6 hunks)
  • modules/ai-agents/pages/mcp/remote/scale-resources.adoc (1 hunks)
  • modules/billing/pages/billing.adoc (1 hunks)
  • modules/get-started/pages/whats-new-cloud.adoc (1 hunks)
💤 Files with no reviewable changes (1)
  • modules/ai-agents/pages/mcp/remote/index.adoc
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 377
File: modules/networking/pages/dedicated/gcp/configure-psc-in-ui.adoc:35-71
Timestamp: 2025-08-07T16:36:45.111Z
Learning: In Redpanda Cloud documentation, NAT subnet and firewall rule creation commands for GCP Private Service Connect are producer-side infrastructure steps that only BYOC (Bring Your Own Cloud) customers need to perform, since they manage their own VPC. Dedicated cluster customers don't need these steps because Redpanda manages the infrastructure for them. The ifdef::env-byoc[] guard correctly hides these commands from Dedicated users.
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 390
File: modules/manage/pages/schema-reg/schema-reg-authorization.adoc:4-4
Timestamp: 2025-08-15T02:29:34.901Z
Learning: In Redpanda Cloud documentation PRs, when CodeRabbit flags missing Asciidoctor tag markers for include directives, the fix may be implemented in the corresponding ROOT module file that contains the actual content being included, rather than in the file where the include directive appears.
📚 Learning: 2025-08-15T04:45:28.695Z
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 390
File: modules/manage/pages/schema-reg/schema-reg-authorization.adoc:4-4
Timestamp: 2025-08-15T04:45:28.695Z
Learning: In the Redpanda documentation system, content is single-sourced across multiple repositories (cloud-docs and docs repos). Include directives in the cloud-docs repo may reference files that exist in separate PRs in the docs repo. These PRs are linked via local-antora-playbook.yml for preview rendering, and the includes resolve correctly during the Antora build process when repositories are merged. The playbook is reverted to main before merging. This cross-repository single sourcing pattern is commonly used, so missing include targets should be verified against linked PRs in other repositories before flagging as errors.

Applied to files:

  • local-antora-playbook.yml
📚 Learning: 2025-04-25T01:42:09.318Z
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 267
File: modules/manage/pages/maintenance.adoc:63-64
Timestamp: 2025-04-25T01:42:09.318Z
Learning: The timeline for major upgrade notifications (180 days in advance) was intentionally removed from the Redpanda Cloud maintenance documentation, even though it was mentioned in the PR objectives.

Applied to files:

  • modules/get-started/pages/whats-new-cloud.adoc
📚 Learning: 2025-08-07T16:36:45.111Z
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 377
File: modules/networking/pages/dedicated/gcp/configure-psc-in-ui.adoc:35-71
Timestamp: 2025-08-07T16:36:45.111Z
Learning: In Redpanda Cloud documentation, NAT subnet and firewall rule creation commands for GCP Private Service Connect are producer-side infrastructure steps that only BYOC (Bring Your Own Cloud) customers need to perform, since they manage their own VPC. Dedicated cluster customers don't need these steps because Redpanda manages the infrastructure for them. The ifdef::env-byoc[] guard correctly hides these commands from Dedicated users.

Applied to files:

  • modules/ai-agents/pages/mcp/remote/developer-guide.adoc
🪛 Shellcheck (0.11.0)
modules/ai-agents/examples/test-mcp-examples.sh

[warning] 65-65: Declare and assign separately to avoid masking return values.

(SC2155)


[warning] 66-66: Declare and assign separately to avoid masking return values.

(SC2155)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Redirect rules - rp-cloud
  • GitHub Check: Header rules - rp-cloud
  • GitHub Check: Pages changed - rp-cloud
🔇 Additional comments (33)
.gitignore (1)

11-11: LGTM!

Adding .env to .gitignore is appropriate for environment variable files, especially given the new CI workflows and example testing infrastructure.

.github/workflows/update-extensions.yml (1)

35-35: Consistent Node.js version bump across CI workflows.

The update to Node.js 22 aligns with the same change in test-mcp-examples.yaml. The verification requested for test-mcp-examples.yaml regarding Node.js 22 stability will apply here as well.

modules/ai-agents/pages/mcp/remote/overview.adoc (2)

32-38: LGTM: Authentication section with MCP proxy guidance is clear.

The authentication section correctly recommends the MCP proxy approach for Claude Code and provides practical rpk command guidance. The direct connection option is also documented for custom implementations.


19-19: Verify cross-repository includes are available before playbook revert.

This file includes three partials from redpanda-connect:ai-agents:partial$mcp/ on lines 19, 28, and 43 (use-cases-table.adoc, customer-analytics-example.adoc, specification-support.adoc). These includes depend on the local-antora-playbook.yml configuration and must resolve after the playbook is reverted to main.

Coordinate with rp-connect-docs maintainers to confirm these partials are available in the target branch before merging, or ensure a linked PR in rp-connect-docs addresses these files.

modules/ai-agents/pages/mcp/remote/scale-resources.adoc (2)

4-4: Verify cross-reference links to billing and quickstart pages.

Lines 4, 8, and 62 reference:

  • xref:billing:billing.adoc#remote-mcp-billing-metrics (lines 4, 62)
  • xref:ai-agents:mcp/remote/quickstart.adoc (line 8)

Confirm these pages exist and the anchors/paths are correct.


36-57: Verify Data Plane API endpoint operations and field names.

Lines 36-38 reference specific Data Plane API operations and field names. The curl example uses memory_shares and cpu_shares — these field names are valid in the Redpanda Cloud API for resource configuration. However, the specific operation IDs (operation-mcpserverservice_getmcpserver, operation-mcpserverservice_updatemcpserver) and whether the PATCH method is correct for the /v1/redpanda-connect/mcp-servers/{mcp_server_id} endpoint could not be conclusively verified from available sources.

Confirm against the official Redpanda Cloud Data Plane API documentation that:

  • The exact operation IDs match those in the API reference
  • The endpoint paths and HTTP methods (GET and PATCH) are accurate for the mcp-servers resource
  • The update_mask field and resource object structure align with the API schema
.github/workflows/test-mcp-examples.yaml (3)

37-40: Verify test script exists and is executable in target directory.

Lines 37-40 change directory to modules/ai-agents/examples and execute ./test-mcp-examples.sh. Ensure this script is present in the repository and properly implements MCP example validation.


26-29: Verify Node.js 22 LTS status and project compatibility.

Node.js 22 is specified in both test-mcp-examples.yaml (line 29) and update-extensions.yml, confirming version consistency across workflows. The package.json contains no explicit Node.js engine constraints, allowing flexible version support. Confirm that Node.js 22 is production-ready and compatible with project dependencies, particularly @redpanda-data/docs-extensions-and-macros (^4.0.0).


32-32: The code snippet and line reference in this review comment are incorrect. Line 32 contains run: npm install, while the doc-tools install-test-dependencies command is actually on line 35 with run: npx --no-install doc-tools install-test-dependencies.

The actual implementation is correct: doc-tools is properly available as a transitive dependency through @redpanda-data/docs-extensions-and-macros (v4.12.5), and the --no-install flag ensures npx uses the already-installed package from the prior npm install step. No action is required.

Likely an incorrect or invalid review comment.

modules/ai-agents/pages/mcp/overview.adoc (1)

17-17: The {page-beta-text} attribute is provided by the @redpanda-data/docs-extensions-and-macros extension (specifically the add-global-attributes extension loaded in the Antora playbook). This syntax is already in use elsewhere in the repository (modules/ai-agents/pages/index.adoc) and works correctly, confirming the attribute is properly defined in the build context.

local-antora-playbook.yml (1)

26-26: The single-source branch reference for rp-connect-docs is part of Redpanda's cross-repository single-sourcing pattern and will be reverted to main per the standard workflow before this PR merges. The includes in overview.adoc and pipeline-patterns.adoc (such as redpanda-connect:ai-agents:partial$mcp/use-cases-table.adoc) are correctly configured for the coordinated multi-repo build process.

modules/ai-agents/pages/mcp/remote/manage-servers.adoc (1)

1-8: Excellent lifecycle management documentation.

The structure is clear, with well-organized tabs for both Cloud UI and API approaches. Prerequisites are properly stated, and the cross-references to related guides are appropriate.

modules/ai-agents/examples/testing.adoc (2)

61-66: Excellent clarification on unit testing limitations.

The IMPORTANT note correctly explains why MCP tool examples cannot use inline tests: sections—they are standalone component definitions, not full pipelines with input/pipeline/output structure. This is an important distinction for users who may be familiar with cookbook examples.


168-237: Best practices section is comprehensive and actionable.

The guidance on naming, descriptions, properties, secrets management, tagging, and adding new examples provides clear direction for contributors. Examples effectively demonstrate good vs. bad patterns.

modules/billing/pages/billing.adoc (1)

113-141: Clear and consistent compute unit pricing definition.

The addition of compute unit metrics for both Redpanda Connect and Remote MCP is well-structured. The definition (1 compute unit = 0.1 CPU + 400 MB memory) is consistent across both sections, and the NOTE on line 141 properly clarifies that MCP uses the same units and rates as Connect.

modules/ai-agents/pages/mcp/remote/admin-guide.adoc (2)

1-4: Strong refactoring from task-oriented to navigation-focused guide.

The shift from providing step-by-step instructions inline to directing users to dedicated guides (manage-servers, scale-resources, monitor-activity) reduces duplication and improves content organization. The high-level overview approach is well-suited for an admin guide.


47-69: No action needed. The Data Plane API endpoint references in this section are current and correctly documented. The operation identifiers and link format follow Redpanda's established conventions and are consistently used across multiple MCP documentation files.

modules/ai-agents/pages/mcp/remote/monitor-activity.adoc (2)

1-23: Excellent comprehensive monitoring documentation.

This guide provides clear guidance on consuming and analyzing OpenTelemetry traces from Remote MCP servers. The structure flows logically from trace topic overview, to consumption methods, to data structure details, and finally to monitoring scenarios and platform integrations.


104-163: Real trace examples effectively demonstrate parent-child relationships.

The actual trace examples for successful execution and error scenarios are realistic and well-annotated. The explanation of traceId, spanId, and parentSpanId relationships (lines 160-163) helps readers understand distributed tracing concepts. The duration calculation example is particularly useful for performance analysis.

modules/ROOT/nav.adoc (1)

83-85: Navigation structure properly organizes new admin guides.

The three new sub-items (Manage Servers, Scale Resources, Monitor Activity) are correctly placed as children of the Admin Guide with proper indentation and xref syntax. This creates a logical navigation hierarchy for Remote MCP administrative tasks.

However, note that scale-resources.adoc is referenced here but not included in the provided files. Please confirm this file is included in the full PR.

modules/ai-agents/pages/mcp/remote/pipeline-patterns.adoc (3)

11-22: Pattern selection guide provides excellent user navigation.

The new "Pattern selection guide" with bullet-point linking to pattern anchors helps users quickly find the right pattern for their use case. This is a significant usability improvement over the previous organization.


207-215: Verify external partial includes are properly configured in documentation build.

Lines 209, 212, and 215 use include::redpanda-connect:ai-agents:partial$ syntax to source content from the redpanda-connect module documentation. This is a single-source reuse pattern that depends on proper Antora configuration.

Please verify:

  1. The redpanda-connect component is properly defined in the Antora playbook
  2. The partial paths exist in the redpanda-connect documentation:
    • modules/ai-agents/partials/mcp/production-workflows-before-secrets.adoc
    • modules/ai-agents/partials/mcp/secrets-cloud.adoc
    • modules/ai-agents/partials/mcp/production-workflows-after-secrets.adoc

This may be addressed by other files in the full PR, but the include statements should be verified against the actual file structure.


36-36: All referenced example YAML files exist in modules/ai-agents/examples/ and will resolve correctly with the include::ai-agents:example$ syntax.

modules/get-started/pages/whats-new-cloud.adoc (1)

11-13: New Remote MCP GA entry is well-placed and clearly written.

The Remote MCP GA announcement in December 2025 appropriately supersedes the beta announcement from October. The description concisely conveys the value proposition and the xref link structure is sound.

Ensure the xref target xref:ai-agents:mcp/remote/overview.adoc exists and is included in this PR.

modules/ai-agents/pages/mcp/remote/developer-guide.adoc (4)

28-96: Well-structured workflow and comprehensive tags guidance.

The reordered development workflow places metadata configuration first (more intuitive for GA), and the new "Organize servers with tags" section provides practical tagging strategies and clearly documents reserved tag names. The section anchors are properly set for cross-referencing.

Verify that the Server Metadata fields listed at lines 47–51 (Display Name, Description, Tags, Resources, Service Account) match the actual Redpanda Cloud UI for GA release, and confirm that the reserved tag names at lines 87–88 are enforced by the backend.


97-166: Contract design and secrets management sections are thorough and security-focused.

The MCP metadata YAML example with annotations is clear, property guidance addresses component-type restrictions, and the secrets section emphasizes best practices (no hardcoding, rotation, least privilege). The inline secret creation workflow balances convenience with the manual Secrets Store option.

Verify that the xref target xref:ai-agents:mcp/remote/pipeline-patterns.adoc#secrets exists and contains a secrets example, and confirm that the component-type restrictions described at line 138 (e.g., input components only support count property) match the actual Redpanda Connect behavior.


169-282: Comprehensive tool building guidance with clear examples and best practices.

The "Build your MCP tool" section provides solid best-practices guidance (single responsibility, input validation, error handling), clear YAML configuration rules, and helpful correct/incorrect examples. The property restrictions table by component type is well-structured.

Verify that the included example file modules/ai-agents/examples/weather_service.yaml exists and is a valid Redpanda Connect tool, and confirm that the component-type property restrictions in the table (lines 201–220) accurately reflect current Redpanda Connect behavior (e.g., input components only supporting count property, cache components having no custom properties).


284-392: Clear deployment, testing, and authentication workflows.

The "Lint and deploy" section provides a comprehensive checklist (YAML syntax, component schema, MCP metadata, secrets formatting), and the "Authenticate and connect" section properly distinguishes between BYOC/Dedicated (cluster-id) and Serverless (serverless-cluster-id) command variants. The note about building a custom agent is helpful context.

Ensure the placeholder syntax for <cluster-id> and <server-id> in the commands at lines 355–368 is clear to users. Consider adding role=no-placeholders to the code block to help users distinguish between literal command text and values they need to substitute.

modules/ai-agents/pages/mcp/remote/quickstart.adoc (5)

38-133: Comprehensive cluster prep with both rpk and API approaches; good practical notes on API latency.

The two-tab structure provides both quick (rpk) and programmatic (API) paths. The Data Plane API tab includes helpful notes about token expiry (line 71) and dataplane_api.url latency (lines 114–115), which reflect real operational pain points. The JSON payload for topic creation is clear.

Verify that the API endpoint links at lines 80, 94, and 117 resolve correctly (e.g., link:/api/doc/cloud-controlplane/operation/operation-clusterservice_getcluster), and confirm that the API response structure shown at lines 102–110 (with dataplane_api.url field) matches the actual Control Plane API response for both BYOC/Dedicated and Serverless clusters.


135-185: Clear Cloud UI walkthrough with proper field guidance and service account explanation.

The Cloud UI tab provides step-by-step guidance with proper descriptions of Server Metadata fields and a helpful note about automatic service account creation (lines 156–159). The template dropdown approach is practical, and MCP Inspector testing guidance is clear.


233-308: Clear client connection workflow with good example requests and verification.

The "Connect an AI client" section properly explains MCP discovery and tool invocation (lines 237–242), provides distinct command variants for cluster types (lines 259–274), includes practical example requests showing variety of use cases, and concludes with a verification step (consume from topic). Token validity notes are consistent.


314-352: Practical troubleshooting and clear next steps.

The troubleshooting subsections address common scenarios (server not starting, connection issues, publishing failures) with specific diagnostic commands. Next steps appropriately point to the developer guide and list concrete use case categories for exploration.


1-36: Content is well-structured, but the beta flag is appropriate for the current product status.

The "What you'll learn" and "How MCP works" sections clearly introduce MCP concepts, and the prerequisites are comprehensive with the correct rpk version 25.2.5 specification. The :page-beta: true attribute on line 2 should remain, as Remote MCP Server is still in beta according to Redpanda's official documentation—not a GA release yet. The page structure and content are accurate and ready for publication.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
modules/ai-agents/pages/mcp/remote/pipeline-patterns.adoc (2)

1-5: Remove :page-beta: true attribute to align with GA objectives.

The file still declares :page-beta: true on line 3, but PR objectives explicitly state: "Remove any beta labels from Remote MCP documentation." This attribute must be removed for the Remote MCP GA release.

Apply this diff to remove the beta attribute:

 = Patterns for Remote MCP Servers
 :description: Catalog of patterns for Remote MCP server tools in Redpanda Cloud.
-:page-beta: true

30-36: Add missing #secrets anchor to pipeline-patterns.adoc.

The file developer-guide.adoc line 166 references xref:ai-agents:mcp/remote/pipeline-patterns.adoc#secrets[MCP patterns], but the #secrets anchor does not exist in pipeline-patterns.adoc. All example YAML includes (generate_input.yaml, http_processor.yaml, etc.) are correctly present and will resolve. However, the broken cross-reference to the missing anchor will cause documentation build failures.

🧹 Nitpick comments (2)
modules/ai-agents/examples/test-mcp-examples.sh (2)

65-66: Fix SC2155: Declare and assign separately for proper error capture.

Shellcheck warns that combining local declaration and assignment masks the return value of the command. Separate these into two statements to allow proper error handling.

-    local has_enabled=$(grep -c "enabled: true" "$file" || echo 0)
-    local has_description=$(grep -c "description:" "$file" || echo 0)
+    local has_enabled
+    has_enabled=$(grep -c "enabled: true" "$file" || echo 0)
+    local has_description
+    has_description=$(grep -c "description:" "$file" || echo 0)

39-41: Consider checking exit codes directly instead of parsing output.

The current approach greps for "error" in rpk output and then repeats the lint command. This is fragile and redundant. Consider capturing the exit code directly:

-    if rpk connect lint --skip-env-var-check "$file" 2>&1 | grep -q "error"; then
+    if ! rpk connect lint --skip-env-var-check "$file" > /tmp/lint-out.txt 2>&1; then
         echo -e "${RED}FAILED${NC}"
-        rpk connect lint --skip-env-var-check "$file" 2>&1 | sed 's/^/    /'
+        cat /tmp/lint-out.txt | sed 's/^/    /'
         FAILED=$((FAILED + 1))
         return 1

This avoids:

  • Redundant lint invocation
  • Output parsing brittleness
  • Reliance on specific error message format

Verify that rpk connect lint returns non-zero exit code on validation errors, as this change assumes.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6f64e23 and e98b2d9.

📒 Files selected for processing (20)
  • .github/workflows/test-mcp-examples.yaml (1 hunks)
  • .github/workflows/update-extensions.yml (1 hunks)
  • .gitignore (1 hunks)
  • local-antora-playbook.yml (1 hunks)
  • modules/ROOT/nav.adoc (1 hunks)
  • modules/ai-agents/examples/test-mcp-examples.sh (1 hunks)
  • modules/ai-agents/examples/testing.adoc (1 hunks)
  • modules/ai-agents/pages/index.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/overview.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/admin-guide.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/developer-guide.adoc (3 hunks)
  • modules/ai-agents/pages/mcp/remote/index.adoc (0 hunks)
  • modules/ai-agents/pages/mcp/remote/manage-servers.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/monitor-activity.adoc (1 hunks)
  • modules/ai-agents/pages/mcp/remote/overview.adoc (2 hunks)
  • modules/ai-agents/pages/mcp/remote/pipeline-patterns.adoc (3 hunks)
  • modules/ai-agents/pages/mcp/remote/quickstart.adoc (6 hunks)
  • modules/ai-agents/pages/mcp/remote/scale-resources.adoc (1 hunks)
  • modules/billing/pages/billing.adoc (1 hunks)
  • modules/get-started/pages/whats-new-cloud.adoc (1 hunks)
💤 Files with no reviewable changes (1)
  • modules/ai-agents/pages/mcp/remote/index.adoc
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-08-01T16:52:49.111Z
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 370
File: modules/security/pages/cloud-authentication.adoc:68-70
Timestamp: 2025-08-01T16:52:49.111Z
Learning: In the Redpanda Cloud documentation using Antora, the badge macro with double colon syntax `badge::[label=beta, tooltip={page-beta-text}]` works correctly when used inline within AsciiDoc section headings and displays the beta badge in the right-side navigation along with the heading title.

Applied to files:

  • modules/ai-agents/pages/index.adoc
📚 Learning: 2025-08-15T04:45:28.695Z
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 390
File: modules/manage/pages/schema-reg/schema-reg-authorization.adoc:4-4
Timestamp: 2025-08-15T04:45:28.695Z
Learning: In the Redpanda documentation system, content is single-sourced across multiple repositories (cloud-docs and docs repos). Include directives in the cloud-docs repo may reference files that exist in separate PRs in the docs repo. These PRs are linked via local-antora-playbook.yml for preview rendering, and the includes resolve correctly during the Antora build process when repositories are merged. The playbook is reverted to main before merging. This cross-repository single sourcing pattern is commonly used, so missing include targets should be verified against linked PRs in other repositories before flagging as errors.

Applied to files:

  • local-antora-playbook.yml
📚 Learning: 2025-08-07T16:36:45.111Z
Learnt from: micheleRP
Repo: redpanda-data/cloud-docs PR: 377
File: modules/networking/pages/dedicated/gcp/configure-psc-in-ui.adoc:35-71
Timestamp: 2025-08-07T16:36:45.111Z
Learning: In Redpanda Cloud documentation, NAT subnet and firewall rule creation commands for GCP Private Service Connect are producer-side infrastructure steps that only BYOC (Bring Your Own Cloud) customers need to perform, since they manage their own VPC. Dedicated cluster customers don't need these steps because Redpanda manages the infrastructure for them. The ifdef::env-byoc[] guard correctly hides these commands from Dedicated users.

Applied to files:

  • modules/ai-agents/pages/mcp/remote/developer-guide.adoc
  • modules/get-started/pages/whats-new-cloud.adoc
🪛 Shellcheck (0.11.0)
modules/ai-agents/examples/test-mcp-examples.sh

[warning] 65-65: Declare and assign separately to avoid masking return values.

(SC2155)


[warning] 66-66: Declare and assign separately to avoid masking return values.

(SC2155)

🔇 Additional comments (16)
.gitignore (1)

11-11: Well-placed security improvement.

Adding .env to .gitignore is a sensible safeguard for the new test infrastructure introduced in this PR. This prevents accidental commits of environment-specific configuration and credentials, aligning with the addition of the test-mcp-examples.sh script and GitHub Actions workflows.

modules/ai-agents/pages/index.adoc (1)

10-10: LGTM: Badge macro migration is correct.

The inline badge macro correctly replaces the page-beta metadata and will render properly in the navigation and heading. This aligns with the documented pattern from previous PRs.

modules/ai-agents/pages/mcp/overview.adoc (1)

17-17: LGTM: Badge macro in table header is correct.

The inline badge macro in the table column header will render properly and clearly marks the MCP Server as beta. Consistent with the pattern used in other pages.

modules/get-started/pages/whats-new-cloud.adoc (1)

11-13: LGTM: Remote MCP GA announcement is clear and well-placed.

The announcement correctly describes the feature, includes the xref reference to the overview documentation, and acknowledges the shift from beta to GA. Chronologically appropriate placement in December 2025 section.

.github/workflows/update-extensions.yml (1)

35-35: LGTM: Node.js version update aligns with new tooling.

Updated to Node.js 22, which is consistent with the new MCP testing workflow and supports the latest docs-extensions-and-macros tooling. This change is necessary and appropriate.

modules/ROOT/nav.adoc (1)

83-85: Navigation references verified. All three target files exist in the repository:

  • modules/ai-agents/pages/mcp/remote/manage-servers.adoc
  • modules/ai-agents/pages/mcp/remote/scale-resources.adoc
  • modules/ai-agents/pages/mcp/remote/monitor-activity.adoc

No broken navigation references detected.

modules/ai-agents/pages/mcp/remote/developer-guide.adoc (6)

1-40: Workflow structure and prerequisites look solid.

Clear prerequisites, comprehensive workflow overview, and proper cross-references. Section anchors and xrefs are consistent.


38-96: Server creation and tagging sections are well-structured and actionable.

The metadata configuration flow is clear, automatic service account creation is explicitly stated (addressing PR objectives), and the tagging guidance with strategy examples and reserved names is practical and complete.


97-220: Tool contract design and YAML configuration guidance is thorough and well-exemplified.

The property guidance, component type restrictions table, and correct/incorrect examples are clear. The forward reference to component restrictions at line 138 could ideally be placed immediately before the detailed table (line 188+), but the content is discoverable and complete.


142-178: Secrets provisioning and tool building sections are clear and best-practice-focused.

Inline secret creation workflow and best practices are well-explained. The reference at line 166 to pipeline-patterns.adoc#secrets needs verification that the anchor exists in that file.


283-332: Deployment, testing, and management workflows are well-documented and actionable.

Linting checklist is comprehensive, status indicators are clear, MCP Inspector workflow is explained, and management operations are listed. Reference to admin-guide is consistent with PR scope.


335-392: Authentication workflow properly handles cluster-type variations.

Clear differentiation between BYOC/Dedicated and Serverless clusters with explicit commands, helpful context in TIP and NOTE boxes, and clear guidance that rpk is optional. Section is well-structured and complete.

modules/ai-agents/pages/mcp/remote/pipeline-patterns.adoc (4)

71-159: New data transformation and AI/LLM integration sections are well-structured and timely.

The data consumers section is clearly presented with Redpanda configuration details. Data transformation and AI/LLM integration patterns (including OpenAI chat completion and embeddings) are new, valuable additions for the GA release. Content is clear and examples are appropriately formatted.


160-205: Redpanda integration section consolidates publishers and caching logically.

New grouping of data publishers and caching systems under "Redpanda integration" makes architectural sense. Descriptions and use cases are clear. Multiple example includes need file existence verification.


207-215: Partials-based approach supports documentation reuse objective.

The three includes from redpanda-connect:ai-agents:partial$ promote single-source documentation reuse from self-managed Redpanda Connect docs, aligning with PR objectives. Comments clearly explain the intent (before-secrets, cloud-specific secrets, after-secrets). However, these partials must exist in the source repository for the build to succeed.

Verify that the following partial files exist in the redpanda-connect documentation source:

  • redpanda-connect:ai-agents:partial$mcp/production-workflows-before-secrets.adoc
  • redpanda-connect:ai-agents:partial$mcp/secrets-cloud.adoc
  • redpanda-connect:ai-agents:partial$mcp/production-workflows-after-secrets.adoc

If these partials do not yet exist, they must be created in the redpanda-connect repository, or the includes must be adjusted to point to existing partials. You can verify this by checking the redpanda-connect-docs repository or by running the documentation build.


217-221: Suggested reading references are appropriate and complete.

Cross-references to components, Bloblang guide, and secret management are standard and helpful for readers seeking deeper knowledge.

Separate variable declaration from assignment in validate_mcp_metadata
to avoid masking return values and resolve ShellCheck warnings.
@JakeSCahill JakeSCahill requested a review from rockwotj December 15, 2025 16:03
@@ -0,0 +1,19 @@
redpanda:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this work? in MCP there must be one component at the root IIRC

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah outputs and inputs can have individual processors too

Copy link

@birdayz birdayz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you looks very good ! left one other comment.

@JakeSCahill JakeSCahill requested a review from a team December 16, 2025 17:03
start_paths: [docs,'*/docs']
- url: https://github.com/redpanda-data/rp-connect-docs
branches: main
branches: single-source
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reminder

== See also

* xref:ai-agents:mcp-server/overview.adoc[]
* https://docs.redpanda.com/redpanda-connect/configuration/unit_testing[Unit Testing Guide^]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

external link?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s an internal doc. Doesn’t get published.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update the other links.

Comment on lines 12 to 10
== Why use a Remote MCP server?
== Why use an MCP server?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this change correct? page title still says remote

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah just standardizing on the terms. The feature is Remote MCP, but what you create is an MCP server.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that this heading should use the feature name.

: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.
Copy link
Contributor

@paulohtb6 paulohtb6 Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i feel like we should be more explicit that only claude is available at this time. People will probably ask if they can use this with gemini, grok, etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use other tools, we just choose to use Claude in the quickstart

@JakeSCahill JakeSCahill merged commit 3959f60 into main Dec 17, 2025
1 check passed
@JakeSCahill JakeSCahill deleted the DOC-1844 branch December 17, 2025 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants