Skip to content

Commit fdb6ccc

Browse files
committed
feat: split MCP tools for Claude connector
1 parent f805e8f commit fdb6ccc

72 files changed

Lines changed: 1898 additions & 404 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

PLAN.md

Lines changed: 503 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,8 @@ The StreamNative MCP Server allows you to enable or disable specific groups of f
240240

241241
---
242242

243+
Claude connector compatibility: admin tools that previously mixed read and write operations behind one `operation` parameter are exposed as separate read/write MCP tools, for example `kafka_admin_topics_read` and `kafka_admin_topics_write`. Read tools include `annotations.readOnlyHint=true`; write or side-effectful tools include `annotations.destructiveHint=true`. In `--read-only` mode, write/destructive tools are not registered.
244+
243245
#### Kafka Features
244246

245247
| Feature | Description | Docs |

docs/tools/functions_as_tools.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
**Claude connector safety:** Safety annotation: dynamically generated Pulsar Functions-as-Tools are destructive and are not registered in read-only mode.
2+
13
# Functions as Tools
24

35
The "Functions as Tools" feature allows the StreamNative MCP Server to dynamically discover Apache Pulsar Functions deployed in your cluster and expose them as invokable MCP tools for AI agents. This significantly enhances the capabilities of AI agents by allowing them to interact with custom business logic encapsulated in Pulsar Functions without manual tool registration for each function.
@@ -93,7 +95,7 @@ Beyond customizing individual tool properties at the function deployment level,
9395
* **Example**: `public/default,my-tenant/app-functions`
9496
* **Default**: Empty (meaning discover from all accessible namespaces (only on StreamNative Cloud)).
9597
* `FUNCTIONS_AS_TOOLS_STRICT_EXPORT`
96-
* **Description**: Only export functions with `MCP_TOOL_NAME` and `MCP_TOOL_DESCRIPTION` defined.
98+
* **Description**: Only export functions with `MCP_TOOL_NAME` and `MCP_TOOL_DESCRIPTION` defined.
9799
* **Format**: `true` or `false`
98100
* **Example**: `false`
99101
* **Default**: `true`

docs/tools/kafka_admin_connect.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#### kafka-admin-connect
22

3+
**Claude connector safety:** Actual MCP tools: `kafka_admin_connect_read` (`list`, `get`) and `kafka_admin_connect_write` (`create`, `update`, `delete`, `restart`, `pause`, `resume`).
4+
5+
36
Kafka Connect is a framework for integrating Kafka with external systems. The following resources and operations are supported:
47

58
- **kafka-connect-cluster**
@@ -31,4 +34,4 @@ Kafka Connect is a framework for integrating Kafka with external systems. The fo
3134

3235
- **connector-plugins**
3336
- **list**: List all available connector plugins
34-
- _Parameters_: None
37+
- _Parameters_: None

docs/tools/kafka_admin_groups.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#### kafka-admin-groups
22

3+
**Claude connector safety:** Actual MCP tools: `kafka_admin_groups_read` (`list`, `describe`, `offsets`) and `kafka_admin_groups_write` (`remove-members`, `delete-offset`, `set-offset`).
4+
5+
36
This tool provides access to Kafka consumer group operations including listing, describing, and managing group membership.
47

58
- **groups**
@@ -21,4 +24,4 @@ This tool provides access to Kafka consumer group operations including listing,
2124
- `group` (string, required): The name of the Kafka Consumer Group
2225
- `topic` (string, required): The name of the Kafka topic
2326
- `partition` (number, required): The partition number
24-
- `offset` (number, required): The offset value to set (use -1 for earliest, -2 for latest, or a specific value)
27+
- `offset` (number, required): The offset value to set (use -1 for earliest, -2 for latest, or a specific value)
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
#### kafka-admin-partitions
22

3+
**Claude connector safety:** Actual MCP tool: `kafka_admin_partitions_write` (`update`). This write-only tool is not registered in read-only mode.
4+
5+
36
This tool provides access to Kafka partition operations, particularly adding partitions to existing topics.
47

58
- **partition**
69
- **update**: Update the number of partitions for an existing Kafka topic (can only increase, not decrease)
710
- `topic` (string, required): The name of the Kafka topic
8-
- `new-total` (number, required): The new total number of partitions (must be greater than current)
11+
- `new-total` (number, required): The new total number of partitions (must be greater than current)

docs/tools/kafka_admin_schema_registry.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#### kafka-admin-schema-registry
22

3+
**Claude connector safety:** Actual MCP tools: `kafka_admin_sr_read` (`list`, `get`) and `kafka_admin_sr_write` (`set`, `create`, `delete`).
4+
5+
36
This tool provides access to Kafka Schema Registry operations, including managing subjects, versions, and compatibility settings.
47

58
- **subjects**
@@ -35,4 +38,4 @@ This tool provides access to Kafka Schema Registry operations, including managin
3538

3639
- **types**
3740
- **list**: List supported schema types (e.g. AVRO, JSON, PROTOBUF)
38-
- _Parameters_: None
41+
- _Parameters_: None

docs/tools/kafka_admin_topics.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#### kafka-admin-topics
22

3+
**Claude connector safety:** Actual MCP tools: `kafka_admin_topics_read` (`list`, `get`, `metadata`) and `kafka_admin_topics_write` (`create`, `delete`).
4+
5+
36
This tool provides access to various Kafka topic operations, including creation, deletion, listing, and configuration retrieval.
47

58
- **topics**
@@ -15,4 +18,4 @@ This tool provides access to various Kafka topic operations, including creation,
1518
- `replication-factor` (number, optional): Replication factor. Default: 1
1619
- `configs` (array of string, optional): Topic configuration overrides as key-value strings, e.g. ["cleanup.policy=compact", "retention.ms=604800000"]
1720
- **delete**: Delete an existing topic
18-
- `name` (string, required): The name of the Kafka topic
21+
- `name` (string, required): The name of the Kafka topic

docs/tools/kafka_client_consume.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#### kafka-client-consume
22

3+
**Claude connector safety:** Safety annotation: `kafka_client_consume` is destructive and is not registered in read-only mode because it can commit consumer offsets.
4+
5+
36
Consume messages from a Kafka topic. This tool allows you to read messages from Kafka topics with various consumption options.
47

58
- **kafka_client_consume**
@@ -12,4 +15,4 @@ Consume messages from a Kafka topic. This tool allows you to read messages from
1215
- 'atend': Begin from the next message after the consumer starts
1316
- 'atcommitted': Begin from the last committed offset (only works with specified 'group')
1417
- `max-messages` (number, optional): Maximum number of messages to consume in this request. Default: 10
15-
- `timeout` (number, optional): Maximum time in seconds to wait for messages. Default: 10
18+
- `timeout` (number, optional): Maximum time in seconds to wait for messages. Default: 10

docs/tools/kafka_client_produce.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ Produce messages to a Kafka topic. This tool allows you to send single or multip
99
- `key` (string, optional): The key for the message. Used for partition assignment and ordering.
1010
- `value` (string, required if 'messages' is not provided): The value/content of the message to send.
1111
- `headers` (array, optional): Message headers in the format of [{"key": "header-key", "value": "header-value"}].
12-
- `sync` (boolean, optional): Whether to wait for server acknowledgment before returning. Default: true.
12+
- `sync` (boolean, optional): Whether to wait for server acknowledgment before returning. Default: true.

0 commit comments

Comments
 (0)