Skip to content
This repository was archived by the owner on Sep 2, 2026. It is now read-only.

Commit 3284b80

Browse files
committed
fix(mcp-kafka-connect,mcp-schema-registry): correct structuredContent claims for tools without an outputSchema
structuredContent always carries the raw upstream JSON response, whether or not schemas.output is declared -- the schema only adds validation and pruning. The initial pass incorrectly said several tools returned "content text summary only", implying structuredContent was withheld; it isn't.
1 parent 8bddb2b commit 3284b80

2 files changed

Lines changed: 33 additions & 17 deletions

File tree

  • src/reference/config/bindings

‎src/reference/config/bindings/mcp-kafka-connect/.partials/tools.md‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
The `mcp-kafka-connect` client exposes a fixed set of intrinsic tools, derived from a bundled Kafka Connect REST API specification — there is no `options.tools` to author, and no upstream server or spec to select. Each tool's `inputSchema` validates `tools/call` `arguments` before Zilla dispatches the matching request to `options.server`; a tool with no fixed `outputSchema` still returns a result, either as `structuredContent` mirroring the raw upstream JSON response or as `content` text only.
1+
The `mcp-kafka-connect` client exposes a fixed set of intrinsic tools, derived from a bundled Kafka Connect REST API specification — there is no `options.tools` to author, and no upstream server or spec to select. Each tool's `inputSchema` validates `tools/call` `arguments` before Zilla dispatches the matching request to `options.server`. Every tool's `structuredContent` carries the upstream JSON response — validated and pruned to a declared `outputSchema` where one exists, or the raw body unchanged where none is declared — and `content` carries the tool's `summary` text, which may itself interpolate fields out of that same response via `${result.x}`.
22

33
### list_connectors
44

@@ -8,7 +8,7 @@ Lists the names of every connector on the worker.
88

99
No arguments.
1010

11-
No `outputSchema` is declared; the result is a `content` text summary only.
11+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response — an array of connector names — with no fixed property list.
1212

1313
### create_connector
1414

@@ -21,7 +21,7 @@ Creates a new connector.
2121
| `name` | `string` | Yes | Connector name. |
2222
| `config` | `object` as map of named `string` | Yes | Connector configuration properties. |
2323

24-
No `outputSchema` is declared; the result is a `content` text summary only.
24+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
2525

2626
### describe_connector
2727

@@ -33,7 +33,7 @@ Reads one connector's configuration and task list by name.
3333
| --- | --- | --- | --- |
3434
| `connector` | `string` | Yes | Connector to describe. |
3535

36-
No `outputSchema` is declared; the result is a `content` text summary only.
36+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
3737

3838
### delete_connector
3939

@@ -45,7 +45,7 @@ Deletes a connector.
4545
| --- | --- | --- | --- |
4646
| `connector` | `string` | Yes | Connector to delete. |
4747

48-
No `outputSchema` is declared; the result is a `content` text summary only.
48+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
4949

5050
### describe_connector_config
5151

@@ -71,7 +71,7 @@ Creates or updates a connector by setting its full configuration.
7171
| `connector.class` | `string` | Yes | Connector class to instantiate. |
7272
| `tasks.max` | `string` | Yes | Maximum number of tasks to run. |
7373

74-
No `outputSchema` is declared; the result is a `content` text summary only.
74+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
7575

7676
### validate_connector_config
7777

@@ -85,7 +85,7 @@ Validates a connector configuration against a plugin's configuration definition,
8585
| `connector.class` | `string` | Yes | Connector class to validate. |
8686
| `tasks.max` | `string` | Yes | Maximum number of tasks to validate. |
8787

88-
No `outputSchema` is declared; the result is a `content` text summary only, such as `Validated connector config with 0 errors`.
88+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.error_count}`, such as `Validated connector config with 0 errors`.
8989

9090
### describe_connector_status
9191

@@ -97,7 +97,7 @@ Reads a connector's current state and the state of each of its tasks.
9797
| --- | --- | --- | --- |
9898
| `connector` | `string` | Yes | Connector to check the status of. |
9999

100-
No `outputSchema` is declared; the result is a `content` text summary only, such as `Connector my-connector is RUNNING`.
100+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}` and `${result.connector.state}`, such as `Connector my-connector is RUNNING`.
101101

102102
### restart_connector
103103

@@ -109,7 +109,7 @@ Restarts a connector.
109109
| --- | --- | --- | --- |
110110
| `connector` | `string` | Yes | Connector to restart. |
111111

112-
No `outputSchema` is declared; the result is a `content` text summary only.
112+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
113113

114114
### pause_connector
115115

@@ -121,7 +121,7 @@ Pauses a connector and all of its tasks.
121121
| --- | --- | --- | --- |
122122
| `connector` | `string` | Yes | Connector to pause. |
123123

124-
No `outputSchema` is declared; the result is a `content` text summary only.
124+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
125125

126126
### resume_connector
127127

@@ -133,7 +133,7 @@ Resumes a paused connector and all of its tasks.
133133
| --- | --- | --- | --- |
134134
| `connector` | `string` | Yes | Connector to resume. |
135135

136-
No `outputSchema` is declared; the result is a `content` text summary only.
136+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
137137

138138
### stop_connector
139139

@@ -145,7 +145,7 @@ Stops a connector and shuts down all of its tasks, without deleting the connecto
145145
| --- | --- | --- | --- |
146146
| `connector` | `string` | Yes | Connector to stop. |
147147

148-
No `outputSchema` is declared; the result is a `content` text summary only.
148+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.name}`.
149149

150150
### list_connector_tasks
151151

@@ -157,7 +157,7 @@ Lists every task belonging to a connector.
157157
| --- | --- | --- | --- |
158158
| `connector` | `string` | Yes | Connector whose tasks to list. |
159159

160-
No `outputSchema` is declared; the result is a `content` text summary only.
160+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list.
161161

162162
### restart_connector_task
163163

@@ -197,7 +197,7 @@ Overwrites a connector's source or sink offsets. The connector must be stopped f
197197
| `offsets[].partition` | `object` | Yes | Source partition or sink topic-partition identifying the offset. |
198198
| `offsets[].offset` | `object` | Yes | New offset value for the identified partition. |
199199

200-
No `outputSchema` is declared; the result is a `content` text summary only, interpolated from the upstream response, such as `${result.message}`.
200+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.message}`.
201201

202202
### reset_connector_offsets
203203

@@ -209,7 +209,7 @@ Resets a connector's source or sink offsets to their initial state. The connecto
209209
| --- | --- | --- | --- |
210210
| `connector` | `string` | Yes | Connector whose offsets to reset. |
211211

212-
No `outputSchema` is declared; the result is a `content` text summary only, interpolated from the upstream response, such as `${result.message}`.
212+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response, with no fixed property list. The summary interpolates `${result.message}`.
213213

214214
### list_connector_plugins
215215

@@ -219,4 +219,4 @@ Lists every connector plugin installed on the worker.
219219

220220
No arguments.
221221

222-
No `outputSchema` is declared; the result is a `content` text summary only.
222+
No fixed `outputSchema` is declared; the result's `structuredContent` mirrors the raw upstream JSON response — an array of installed plugins — with no fixed property list.

‎src/reference/config/bindings/mcp-schema-registry/.partials/tools.md‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
The `mcp-schema-registry` client exposes a fixed set of intrinsic tools, derived from a bundled schema registry API specification — there is no `options.tools` to author, and no upstream server or spec to select. Each tool's `inputSchema` validates `tools/call` `arguments` before Zilla dispatches the matching request to `options.server`. None of these tools declare a fixed `outputSchema`; each returns a `content` text summary, though the summary may interpolate fields of the raw upstream JSON response, such as `${result.id}`.
1+
The `mcp-schema-registry` client exposes a fixed set of intrinsic tools, derived from a bundled schema registry API specification — there is no `options.tools` to author, and no upstream server or spec to select. Each tool's `inputSchema` validates `tools/call` `arguments` before Zilla dispatches the matching request to `options.server`. None of these tools declare a fixed `outputSchema`, so each tool's `structuredContent` mirrors the raw upstream JSON response with no fixed property list, and its `summary` text may interpolate fields out of that same response, such as `${result.id}`.
22

33
### list_subjects
44

55
Lists every subject registered in the schema registry.
66

77
No arguments.
88

9+
The result's `structuredContent` mirrors the raw upstream JSON response — an array of subject names.
10+
911
### describe_subject
1012

1113
Lists the schema version numbers registered for a subject.
@@ -14,6 +16,8 @@ Lists the schema version numbers registered for a subject.
1416
| --- | --- | --- | --- |
1517
| `subject` | `string` | Yes | Subject to list versions for. |
1618

19+
The result's `structuredContent` mirrors the raw upstream JSON response — an array of version numbers.
20+
1721
### register_schema
1822

1923
Registers a new schema version under a subject.
@@ -24,6 +28,8 @@ Registers a new schema version under a subject.
2428
| `schema` | `string` | Yes | Schema document to register. |
2529
| `schemaType` | `string` | No | Schema format, such as `AVRO`, `JSON`, or `PROTOBUF`. Defaults to `AVRO` when omitted. |
2630

31+
The summary interpolates `${result.id}`, such as `Registered schema with id 1`.
32+
2733
### get_schema
2834

2935
Retrieves a specific registered schema version for a subject.
@@ -33,6 +39,8 @@ Retrieves a specific registered schema version for a subject.
3339
| `subject` | `string` | Yes | Subject to read from. |
3440
| `version` | `string` | Yes | Schema version number, or `latest`. |
3541

42+
The summary interpolates `${result.id}` and `${result.version}`, such as `Retrieved schema id 1, version 1`.
43+
3644
### delete_schema_version
3745

3846
Deletes a specific registered schema version for a subject.
@@ -50,6 +58,8 @@ Deletes a subject and every schema version registered under it.
5058
| --- | --- | --- | --- |
5159
| `subject` | `string` | Yes | Subject to delete. |
5260

61+
The result's `structuredContent` mirrors the raw upstream JSON response — an array of the deleted subject's version numbers.
62+
5363
### check_compatibility
5464

5565
Checks whether a schema is compatible with a specific already-registered version of a subject.
@@ -61,6 +71,8 @@ Checks whether a schema is compatible with a specific already-registered version
6171
| `schema` | `string` | Yes | Schema document to check. |
6272
| `schemaType` | `string` | No | Schema format, such as `AVRO`, `JSON`, or `PROTOBUF`. Defaults to `AVRO` when omitted. |
6373

74+
The summary interpolates `${result.is_compatible}`, such as `Compatibility check result: true`.
75+
6476
### get_compatibility
6577

6678
Reads the compatibility level configured for a subject.
@@ -69,6 +81,8 @@ Reads the compatibility level configured for a subject.
6981
| --- | --- | --- | --- |
7082
| `subject` | `string` | Yes | Subject to read the compatibility level of. |
7183

84+
The summary interpolates `${result.compatibilityLevel}`, such as `Compatibility level is FULL`.
85+
7286
### set_compatibility
7387

7488
Sets the compatibility level for a subject.
@@ -77,3 +91,5 @@ Sets the compatibility level for a subject.
7791
| --- | --- | --- | --- |
7892
| `subject` | `string` | Yes | Subject to set the compatibility level of. |
7993
| `compatibility` | `string` | Yes | Compatibility level, such as `BACKWARD`, `FORWARD`, `FULL`, or `NONE`. |
94+
95+
The summary interpolates `${result.compatibility}`, such as `Compatibility level set to FULL`.

0 commit comments

Comments
 (0)