You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -60,18 +57,27 @@ This command scaffolds your project with the necessary directories and template
60
57
└── example-processor.yaml
61
58
----
62
59
60
+
. Make sure your Redpanda Connect version is at least 4.66.1:
61
+
+
62
+
[,bash]
63
+
----
64
+
rpk connect --version
65
+
----
66
+
+
67
+
If you need to upgrade, see xref:install:rpk.adoc#upgrade[Upgrade Redpanda Connect].
68
+
63
69
== Create a tool definition
64
70
65
-
Save the following YAML to a file named `resources/processors/bluesky.yaml`.
71
+
In this step, you'll create a Redpanda Connect configuration that searches public link:https://bsky.app/[Bluesky^] posts using a customizable query. You'll define this configuration as a tool that Claude can discover and use.
66
72
67
-
This tool enables Claude to search public Bluesky posts using natural language.
73
+
Save the following YAML to a file named `bluesky.yaml` and save it in the `resources/processors/` directory:
68
74
69
75
[source,yaml]
70
76
----
71
77
label: search-bluesky-posts <1>
72
78
try: <2>
73
79
- mutation: |
74
-
root.limit = root.limit.number(25)
80
+
root.limit = root.limit.number(10)
75
81
root.limit = [ root.limit, 100 ].min()
76
82
root.limit = [ root.limit, 1 ].max()
77
83
meta query_string = "q=" + root.query.escape_url_query() + "&limit=%v".format(root.limit)
@@ -84,7 +90,7 @@ try: <2>
84
90
format: json_array
85
91
86
92
meta:
87
-
tags: [ example ] <3>
93
+
tags: [ bluesky ] <3>
88
94
mcp:
89
95
enabled: true
90
96
description: Search public Bluesky posts based on a query string. <4>
@@ -95,35 +101,42 @@ meta:
95
101
description: A Lucene-style query string to search posts.
96
102
- name: limit
97
103
type: number
98
-
description: Number of posts to return (1-100). Defaults to 25.
104
+
description: Number of posts to return (1-100). Defaults to 10.
99
105
----
100
106
101
107
This example defines a tool that searches public Bluesky posts based on a query string. Important parts of the configuration include:
102
108
103
109
<1> A unique label for identification. Claude uses this label to discover and call the tool.
104
110
<2> A series of processors to build the HTTP request, handle the response, and format the output.
105
-
<3> A unique tag (`example`) to control exposure. You can use tags to group related tools or isolate experiments.
111
+
<3> A unique tag (`bluesky`) to control exposure. You can use tags to group related tools or isolate experiments.
106
112
<4> A clear description for LLMs helps Claude understand what the tool does.
107
113
<5> Structured properties for inputs like `query` and `limit`.
108
114
109
115
== Start the MCP server
110
116
111
-
Start the MCP server to expose the tool over HTTP:
117
+
. Navigate to your MCP server project directory if you're not already there:
118
+
+
119
+
[,bash]
120
+
----
121
+
cd redpanda-connect-mcp
122
+
----
112
123
124
+
. Start the MCP server to expose the tool over HTTP:
125
+
+
113
126
[source,bash]
114
127
----
115
-
rpk connect mcp-server --address localhost:4195 --tag example
This command creates an MCP server listening on `localhost:4195`, and makes your tool discoverable to AI agents.
138
+
+
139
+
This command creates an MCP server listening on `localhost:4195`, and makes your tool discoverable to AI agents. Leave this terminal open while you interact with Claude Code.
127
140
128
141
:tip-caption: Limit exposure
129
142
@@ -140,9 +153,10 @@ Only tools with the specified `--tag` are exposed. This helps you:
140
153
141
154
== Connect Claude Code to your MCP server
142
155
143
-
144
156
To connect Claude Code to your MCP server, you need to expose a live event stream that Claude can consume. This is done using the link:https://www.npmjs.com/package/mcp-remote[`mcp-remote` utility^], which bridges your local service to Claude's MCP interface. `mcp-remote` is a lightweight bridge that turns any streaming HTTP endpoint into a source of MCP-compatible messages.
145
157
158
+
. Open a new terminal window.
159
+
146
160
. To install `mcp-remote`, run:
147
161
+
148
162
[,bash]
@@ -176,7 +190,6 @@ Tools for local (1 tools)
176
190
177
191
. Press *Esc* until you return to the main prompt.
178
192
179
-
180
193
== Write a prompt that uses the tool
181
194
182
195
To use the `search-bluesky-posts` tool in Claude, write a prompt that includes a natural language request.
@@ -254,6 +267,88 @@ To disconnect or stop the MCP server, press kbd:[Ctrl+C] in the terminal where t
254
267
255
268
You can also close the terminal window or kill the process using standard OS commands (such as `kill <pid>` on Linux/macOS).
256
269
270
+
== Troubleshoot
271
+
272
+
This section covers issues you might encounter when setting up and using the MCP server.
273
+
274
+
=== JSON schema errors
275
+
276
+
This error indicates you're using an outdated version of Redpanda Connect with an incompatible JSON schema format:
277
+
278
+
[source,json]
279
+
----
280
+
{
281
+
"type": "error",
282
+
"error": {
283
+
"type": "invalid_request_error",
284
+
"message": "tools.17.custom.input_schema: JSON schema is invalid. It must match JSON Schema draft 2020-12 (https://json-schema.org/draft/2020-12). Learn more about tool use at https://docs.claude.com/en/docs/tool-use."
285
+
},
286
+
"request_id": "req_011CTWPsqnC26DJVUhxnQnn6"
287
+
}
288
+
----
289
+
290
+
291
+
*Solution*: Upgrade to at least version 4.66.1 of Redpanda Connect.
292
+
293
+
[source,bash]
294
+
----
295
+
rpk connect --version
296
+
----
297
+
298
+
If you need to upgrade, see xref:install:rpk.adoc#upgrade[Upgrade Redpanda Connect].
299
+
300
+
=== Tool not found or not exposed
301
+
302
+
If Claude Code doesn't show your tool in the tools list, or shows "No tools available":
303
+
304
+
. Ensure your YAML files are in the correct directory structure. The expected structure is:
305
+
+
306
+
- Processors: `resources/processors/`
307
+
- Inputs: `resources/inputs/`
308
+
- Outputs: `resources/outputs/`
309
+
- Caches: `resources/caches/`
310
+
311
+
. Verify MCP metadata:
312
+
+
313
+
- Confirm your tool has the `meta.mcp.enabled: true` property
314
+
- Check that the `meta.tags` array includes the tag you specified when starting the server
315
+
+
316
+
.Example correct structure
317
+
[source,yaml]
318
+
----
319
+
label: my-tool
320
+
# ... processor configuration ...
321
+
meta:
322
+
tags: [ bluesky ] # Must match --tag argument
323
+
mcp:
324
+
enabled: true # Required for exposure
325
+
description: Tool description
326
+
----
327
+
328
+
=== Connection issues
329
+
330
+
If Claude Code can't connect to your MCP server:
331
+
332
+
- Server not running:
333
+
+
334
+
** Verify the MCP server is still running in your terminal.
335
+
** Check that you see the "Registering processor tool" log messages.
336
+
** Ensure the server is listening on the expected address (`localhost:4195` by default).
337
+
338
+
- If port 4195 is already in use, specify a different port:
Copy file name to clipboardExpand all lines: modules/configuration/pages/about.adoc
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -144,6 +144,7 @@ rate_limit_resources:
144
144
interval: 1m
145
145
----
146
146
147
+
ifndef::env-cloud[]
147
148
=== Pipelines (streams mode)
148
149
149
150
When running in xref:guides:streams_mode/about.adoc[streams mode] with the Streams API, labels serve as pipeline names. This enables you to create and reference pipelines by their label through the API.
@@ -158,6 +159,7 @@ curl -X POST http://localhost:4195/streams/data-processor \
0 commit comments