mcp-confluent
Officialmcp-confluent
AI 어시스턴트가 Confluent Cloud REST API와 상호 작용할 수 있도록 하는 MCP 서버 구현입니다. 이 서버를 통해 Claude Desktop 및 Goose CLI와 같은 AI 도구가 자연어 상호 작용을 통해 Kafka 토픽, 커넥터 및 Flink SQL 문을 관리할 수 있습니다.
데모
구스 CLI

클로드 데스크탑

Related MCP server: Kafka MCP Server
목차
사용자 가이드
시작하기
.env파일을 만듭니다. 아래에 표시된 예제.env파일 구조를 프로젝트 루트에 있는.env라는 새 파일에 복사합니다..env파일을 채웁니다. Confluent Cloud 환경에 필요한 값을 입력합니다. 각 변수에 대한 자세한 내용은 구성 섹션을 참조하세요.Node.js를 설치하세요 (아직 설치되지 않은 경우)
Node.js 버전을 관리하려면 NVM (Node Version Manager)을 사용하는 것이 좋습니다.
Node.js를 설치하고 사용하세요.
지엑스피1
구성
다음 구성으로 프로젝트의 루트 디렉토리에 .env 파일을 만듭니다.
# .env file
BOOTSTRAP_SERVERS="pkc-v12gj.us-east4.gcp.confluent.cloud:9092"
KAFKA_API_KEY="..."
KAFKA_API_SECRET="..."
KAFKA_REST_ENDPOINT="https://pkc-v12gj.us-east4.gcp.confluent.cloud:443"
KAFKA_CLUSTER_ID=""
KAFKA_ENV_ID="env-..."
FLINK_ENV_ID="env-..."
FLINK_ORG_ID=""
FLINK_REST_ENDPOINT="https://flink.us-east4.gcp.confluent.cloud"
FLINK_ENV_NAME=""
FLINK_DATABASE_NAME=""
FLINK_API_KEY=""
FLINK_API_SECRET=""
FLINK_COMPUTE_POOL_ID="lfcp-..."
CONFLUENT_CLOUD_API_KEY=""
CONFLUENT_CLOUD_API_SECRET=""
CONFLUENT_CLOUD_REST_ENDPOINT="https://api.confluent.cloud"
SCHEMA_REGISTRY_API_KEY="..."
SCHEMA_REGISTRY_API_SECRET="..."
SCHEMA_REGISTRY_ENDPOINT="https://psrc-zv01y.northamerica-northeast2.gcp.confluent.cloud"환경 변수 참조
변하기 쉬운 | 설명 | 기본값 | 필수의 |
HTTP_호스트 | HTTP 전송을 위해 바인딩할 호스트(문자열) | "로컬호스트" | 예 |
HTTP_포트 | HTTP 전송에 사용할 포트(숫자(최소: 0)) | 3000 | 예 |
부트스트랩 서버 | Kafka 클러스터에 대한 초기 연결을 설정하는 데 사용되는 host1:port1,host2:port2 형식의 Kafka 브로커 주소 목록(문자열) | 아니요 | |
컨플루언트 클라우드 API 키 | Confluent Cloud 플랫폼 관리를 위한 마스터 API 키로, 조직 전반의 리소스 관리를 지원합니다(문자열(최소: 1)) | 아니요 | |
CONFLUENT_CLOUD_API_SECRET | Confluent Cloud 플랫폼의 포괄적인 관리를 위해 CONFLUENT_CLOUD_API_KEY와 함께 사용되는 마스터 API 비밀(문자열(최소: 1)) | 아니요 | |
CONFLUENT_CLOUD_REST_ENDPOINT | Confluent Cloud의 REST API 서비스에 대한 기본 URL(기본값) | 아니요 | |
FLINK_API_KEY | Confluent Cloud의 Flink 서비스(컴퓨트 풀 및 SQL 문 관리 포함)에 액세스하기 위한 인증 키(문자열(최소: 1)) | 아니요 | |
FLINK_API_SECRET | Confluent Cloud의 Flink 서비스에 대한 인증된 액세스를 위해 FLINK_API_KEY와 쌍을 이루는 비밀 토큰(문자열(최소: 1)) | 아니요 | |
FLINK_COMPUTE_POOL_ID | Flink 컴퓨트 풀의 고유 식별자는 'lfcp-' 접두사로 시작해야 합니다(문자열) | 아니요 | |
FLINK_DATABASE_NAME | Flink SQL 작업에서 데이터베이스 참조로 사용되는 연관된 Kafka 클러스터의 이름(문자열(최소: 1)) | 아니요 | |
FLINK_ENV_ID | Flink 환경에 대한 고유 식별자는 'env-' 접두사로 시작해야 합니다(문자열) | 아니요 | |
FLINK_ENV_NAME | 식별 및 표시 목적으로 사용되는 Flink 환경에 대한 사람이 읽을 수 있는 이름(문자열(최소: 1)) | 아니요 | |
FLINK_ORG_ID | Flink 리소스 관리를 위한 Confluent Cloud 내 조직 식별자(문자열(최소: 1)) | 아니요 | |
FLINK_REST_ENDPOINT | SQL 문 및 컴퓨팅 풀 관리에 사용되는 Confluent Cloud의 Flink REST API 엔드포인트에 대한 기본 URL(문자열) | 아니요 | |
카프카_API_키 | Kafka 클러스터와 보안 연결을 설정하는 데 필요한 인증 자격 증명(사용자 이름)(문자열(최소: 1)) | 아니요 | |
카프카 API 비밀 | 안전한 Kafka 클러스터 액세스를 위해 KAFKA_API_KEY와 함께 사용되는 인증 자격 증명(비밀번호)(문자열(최소: 1)) | 아니요 | |
카프카 클러스터 ID | Confluent Cloud 생태계 내 Kafka 클러스터에 대한 고유 식별자(문자열(최소: 1)) | 아니요 | |
카프카_환경_ID | Kafka 클러스터의 환경 식별자는 'env-' 접두사로 시작해야 합니다(문자열) | 아니요 | |
카프카_휴식_엔드포인트 | Kafka 클러스터 관리 및 운영을 위한 REST API 엔드포인트(문자열) | 아니요 | |
스키마 레지스트리 API 키 | 데이터 스키마를 관리하고 검증하기 위해 스키마 레지스트리 서비스에 액세스하기 위한 인증 키(문자열(최소: 1)) | 아니요 | |
스키마 레지스트리 API 보안 | 보안 스키마 레지스트리 액세스를 위해 SCHEMA_REGISTRY_API_KEY와 쌍을 이루는 인증 비밀번호(문자열(최소: 1)) | 아니요 | |
스키마 레지스트리 종료점 | 데이터 스키마를 관리하기 위해 스키마 레지스트리 서비스에 액세스하기 위한 URL 엔드포인트(문자열) | 아니요 |
용법
이 MCP 서버는 Claude Desktop이나 Goose CLI/Desktop 등 다양한 MCP 클라이언트와 함께 사용하도록 설계되었습니다. 구체적인 구성 및 상호작용은 사용 중인 클라이언트에 따라 다릅니다. 일반적인 단계는 다음과 같습니다.
서버 시작: 다음 두 가지 방법 중 하나로 MCP 서버를 실행할 수 있습니다.
소스에서: 개발자 가이드 의 지침에 따라 소스에서 서버를 빌드하고 실행합니다. 일반적으로 다음이 포함됩니다.
종속성 설치(
npm install)프로젝트 빌드(
npm run build또는npm run dev)
npx를 사용하면 npx를 사용하여 서버를 직접 시작할 수 있습니다(빌드 필요 없음):
npx -y @confluentinc/mcp-confluent -e /path/to/confluent-mcp-server/.env
MCP 클라이언트 구성: 각 클라이언트는 MCP 서버 주소와 필요한 자격 증명을 지정하는 고유한 방식을 가지고 있습니다. 클라이언트(예: Claude, Goose)가 해당 서버가 실행 중인 주소(특정 포트를 사용하는
localhost등)에 연결되도록 구성해야 합니다. 서버가 실행되는 포트는 환경 변수를 통해 설정할 수 있습니다.MCP 클라이언트 시작: 클라이언트가 MCP 서버에 연결되도록 구성되면 MCP 클라이언트를 시작할 수 있습니다. 시작 시 로컬에 이 MCP 서버 인스턴스가 생성됩니다. 이 인스턴스는 데이터 스키마를 관리하고 사용자를 대신하여 Confluent Cloud와 상호 작용하는 역할을 합니다.
클라이언트를 통해 Confluent와 상호 작용: 클라이언트가 연결되면 클라이언트 인터페이스를 사용하여 Confluent Cloud 리소스와 상호 작용할 수 있습니다. 클라이언트가 이 MCP 서버로 요청을 보내면 MCP 서버가 사용자를 대신하여 Confluent Cloud와 상호 작용합니다.
Claude Desktop 구성
Claude Desktop 및 MCP 서버 설치에 대한 자세한 내용은 여기를 참조하세요.
이 MCP 서버를 사용하도록 Claude Desktop을 구성하려면:
Open Claude Desktop 구성
Mac의 경우:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows의 경우:
%APPDATA%\Claude\claude_desktop_config.json
구성 파일 편집
원하는 텍스트 편집기에서 구성 파일을 엽니다.
다음 방법 중 하나를 사용하여 구성을 추가하거나 수정하세요.
{ "mcpServers": { "confluent": { "command": "node", "args": [ "/path/to/confluent-mcp-server/dist/index.js", "--env-file", "/path/to/confluent-mcp-server/.env", ] } } }{ "mcpServers": { "confluent": { "command": "npx", "args": [ "-y" "@confluentinc/mcp-confluent", "-e", "/path/to/confluent-mcp-server/.env" ] } } }/path/to/confluent-mcp-server/이 MCP 서버를 설치한 실제 경로로 바꾸세요.Claude Desktop을 다시 시작하세요
변경 사항을 적용하려면 Claude Desktop을 닫았다가 다시 여세요.
Claude Desktop이 실행되면 MCP 서버가 자동으로 시작됩니다.
이제 Claude Desktop은 Confluent 상호 작용을 위해 로컬 MCP 서버를 사용하도록 구성됩니다.

Goose CLI 구성
Goose CLI를 설치하는 방법에 대한 자세한 지침은 여기를 참조하세요.
설치가 완료되면 다음 단계를 따르세요.
구성 명령을 실행합니다.
goose configure대화형 프롬프트를 따르세요:
Add extension선택하세요Command-line Extension선택확장자 이름으로
mcp-confluent입력하세요.다음 구성 방법 중 하나를 선택하세요.
node /path/to/confluent-mcp-server/dist/index.js --env-file /path/to/confluent-mcp-server/.envnpx -y @confluentinc/mcp-confluent -e /path/to/confluent-mcp-server/.env
/path/to/confluent-mcp-server/ 이 MCP 서버를 설치한 실제 경로로 바꾸세요.

mcp-confluent CLI 사용법
MCP 서버는 고급 구성 및 제어를 위한 유연한 명령줄 인터페이스(CLI)를 제공합니다. CLI를 통해 환경 파일과 전송을 지정하고, 활성화 또는 차단할 도구를 세부적으로 조정할 수 있습니다.
기본 사용법
모든 CLI 옵션을 보고 다음 사항에 대한 도움을 받을 수 있습니다.
npx @confluentinc/mcp-confluent --help Usage: mcp-confluent [options]
Confluent MCP Server - Model Context Protocol implementation for Confluent Cloud
Options:
-V, --version output the version number
-e, --env-file <path> Load environment variables from file
-k, --kafka-config-file <file> Path to a properties file for configuring kafka clients
-t, --transport <types> Transport types (comma-separated list) (choices: "http", "sse", "stdio", default: "stdio")
--allow-tools <tools> Comma-separated list of tool names to allow. If provided, takes precedence over --allow-tools-file. Allow-list is applied before block-list.
--block-tools <tools> Comma-separated list of tool names to block. If provided, takes precedence over --block-tools-file. Block-list is applied after allow-list.
--allow-tools-file <file> File with tool names to allow (one per line). Used only if --allow-tools is not provided. Allow-list is applied before block-list.
--block-tools-file <file> File with tool names to block (one per line). Used only if --block-tools is not provided. Block-list is applied after allow-list.
--list-tools Print the final set of enabled tool names (with descriptions) after allow/block filtering and exit. Does not start the server.
--disable-confluent-cloud-tools Disable all tools that require Confluent Cloud REST APIs (cloud-only tools).
-h, --help display help for command예: 모든 운송 수단을 사용하여 배포
npx @confluentinc/mcp-confluent -e .env --transport http,sse,stdio...
{"level":"info","time":"2025-05-14T17:03:02.883Z","pid":47959,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Starting transports: http, sse, stdio"}
{"level":"info","time":"2025-05-14T17:03:02.971Z","pid":47959,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"HTTP transport routes registered"}
{"level":"info","time":"2025-05-14T17:03:02.972Z","pid":47959,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"SSE transport routes registered"}
{"level":"info","time":"2025-05-14T17:03:02.972Z","pid":47959,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"STDIO transport connected"}
{"level":"info","time":"2025-05-14T17:03:03.012Z","pid":47959,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Server listening at http://[::1]:3000"}
{"level":"info","time":"2025-05-14T17:03:03.013Z","pid":47959,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Server listening at http://127.0.0.1:3000"}
{"level":"info","time":"2025-05-14T17:03:03.013Z","pid":47959,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"All transports started successfully"}예: 특정 도구만 허용
npx @confluentinc/mcp-confluent -e .env --allow-tools produce-message,consume-messages{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-topics disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-topics disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-topics disabled due to allow/block list rules"}
{"level":"info","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool produce-message enabled"}
{"level":"info","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool consume-messages enabled"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-flink-statements disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-flink-statement disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-flink-statement disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-flink-statements disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-connectors disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-connector disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-connector disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-connector disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool search-topics-by-tag disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool search-topics-by-name disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-topic-tags disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-tag disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool remove-tag-from-entity disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool add-tags-to-topic disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-tags disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool alter-topic-config disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-clusters disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-environments disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-environment disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-schemas disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:52:34.923Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool get-topic-config disabled due to allow/block list rules"}
{"level":"info","time":"2025-05-14T16:52:34.924Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Starting transports: stdio on localhost:3000"}
{"level":"info","time":"2025-05-14T16:52:34.924Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"STDIO transport connected"}
{"level":"info","time":"2025-05-14T16:52:34.924Z","pid":46818,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"All transports started successfully"}예: 특정 도구 차단
npx @confluentinc/mcp-confluent -e .env --block-tools produce-message,consume-messages{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-topics enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-topics enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-topics enabled"}
{"level":"warn","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool produce-message disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool consume-messages disabled due to allow/block list rules"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-flink-statements enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-flink-statement enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-flink-statement enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-flink-statements enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-connectors enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-connector enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-connector enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-connector enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool search-topics-by-tag enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool search-topics-by-name enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-topic-tags enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-tag enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool remove-tag-from-entity enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool add-tags-to-topic enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-tags enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool alter-topic-config enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-clusters enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-environments enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-environment enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-schemas enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool get-topic-config enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Starting transports: stdio"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"STDIO transport connected"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"All transports started successfully"}예: 파일의 도구 목록 사용
npx -y @confluentinc/mcp-confluent -e .env --allow-tools-file allow.txt --block-tools-file block.txt{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-topics enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-topics enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-topics enabled"}
{"level":"warn","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool produce-message disabled due to allow/block list rules"}
{"level":"warn","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool consume-messages disabled due to allow/block list rules"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-flink-statements enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-flink-statement enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-flink-statement enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-flink-statements enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-connectors enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-connector enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-connector enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-connector enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool search-topics-by-tag enabled"}
{"level":"info","time":"2025-05-14T16:55:45.910Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool search-topics-by-name enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool create-topic-tags enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool delete-tag enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool remove-tag-from-entity enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool add-tags-to-topic enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-tags enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool alter-topic-config enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-clusters enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-environments enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool read-environment enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool list-schemas enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Tool get-topic-config enabled"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"Starting transports: stdio"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"STDIO transport connected"}
{"level":"info","time":"2025-05-14T16:55:45.911Z","pid":47344,"hostname":"G9PW1FJH64","name":"mcp-confluent","msg":"All transports started successfully"}예: 사용 가능한 모든 도구 나열
npx -y @confluentinc/mcp-confluent --list-toolsadd-tags-to-topic: Assign existing tags to Kafka topics in Confluent Cloud.
alter-topic-config: Alter topic configuration in Confluent Cloud.
consume-messages: Consumes messages from one or more Kafka topics. Supports automatic deserialization of Schema Registry encoded messag...
create-connector: Create a new connector. Returns the new connector information if successful.
create-flink-statement: Make a request to create a statement.
create-topic-tags: Create new tag definitions in Confluent Cloud.
create-topics: Create one or more Kafka topics.
delete-connector: Delete an existing connector. Returns success message if deletion was successful.
delete-flink-statements: Make a request to delete a statement.
delete-tag: Delete a tag definition from Confluent Cloud.
delete-topics: Delete the topic with the given names.
get-topic-config: Retrieve configuration details for a specific Kafka topic.
list-clusters: Get all clusters in the Confluent Cloud environment
list-connectors: Retrieve a list of "names" of the active connectors. You can then make a read request for a specific connector by name.
list-environments: Get all environments in Confluent Cloud with pagination support
list-flink-statements: Retrieve a sorted, filtered, paginated list of all statements.
list-schemas: List all schemas in the Schema Registry.
list-tags: Retrieve all tags with definitions from Confluent Cloud Schema Registry.
list-topics: List all topics in the Kafka cluster.
produce-message: Produce records to a Kafka topic. Supports Confluent Schema Registry serialization (AVRO, JSON, PROTOBUF) for both ke...
read-connector: Get information about the connector.
read-environment: Get details of a specific environment by ID
read-flink-statement: Make a request to read a statement and its results
remove-tag-from-entity: Remove tag from an entity in Confluent Cloud.
search-topics-by-name: List all topics in the Kafka cluster matching the specified name.
search-topics-by-tag: List all topics in the Kafka cluster with the specified tag.팁: 허용 목록은 차단 목록보다 먼저 적용됩니다. 둘 다 지정하지 않으면 모든 도구가 기본적으로 활성화됩니다.
개발자 가이드
프로젝트 구조
/
├── src/ # Source code
│ ├── confluent/ # Confluent integration (API clients, etc.)
│ │ └── tools/ # Tool implementations
│ ├── mcp/ # MCP protocol and transport logic
│ │ └── transports/
│ └── ... # Other server logic, utilities, etc.
├── dist/ # Compiled output
├── openapi.json # OpenAPI specification for Confluent Cloud
├── .env # Environment variables (example - should be copied and filled)
├── README.md # This file
└── package.json # Node.js project metadata and dependencies건물과 운영
종속성 설치:
npm install개발 모드(변경 사항을 살펴보세요):
npm run dev이 명령은 TypeScript 코드를 JavaScript로 컴파일하고
src/디렉토리에서 변경 사항이 감지되면 자동으로 다시 빌드합니다.프로덕션 빌드(일회성 컴파일):
npm run build서버를 시작합니다:
npm run start
테스트
MCP 검사관
MCP 서버를 테스트하려면 MCP 서버를 테스트하고 디버깅하는 대화형 개발자 도구인 MCP Inspector를 사용할 수 있습니다.
# make sure you've already built the project either in dev mode or by running npm run build
npx @modelcontextprotocol/inspector node $PATH_TO_PROJECT/dist/index.js --env-file $PATH_TO_PROJECT/.env새 도구 추가
열거형 클래스
ToolName에 새로운 열거형을 추가합니다.ToolFactory클래스의 핸들러 맵에 새 도구를 추가합니다.BaseToolHandler확장하는 클래스를 내보내는 새 파일을 만듭니다.기본 클래스의
handle메서드를 구현합니다.기본 클래스의
getToolConfig메서드를 구현합니다.
만족스러우면
index.ts의enabledTools세트에 추가합니다.
유형 생성
# as of v7.5.2 there is a bug when using allOf w/ required https://github.com/openapi-ts/openapi-typescript/issues/1474. need --empty-objects-unknown flag to avoid it
npx openapi-typescript ./openapi.json -o ./src/confluent/openapi-schema.d.ts --empty-objects-unknown기여하다
Github Issues 형식으로 버그 리포트와 피드백을 보내주시면 감사하겠습니다. 기여 관련 지침은 CONTRIBUTING.md를 참조하세요.
Available Tools
24 toolsadd-tags-to-topicC
Assign existing tags to Kafka topics in Confluent Cloud.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. | |
| tagAssignments | Yes | Array of tag assignments to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Assign existing tags', implying a mutation operation, but doesn't mention permissions required, whether tags must pre-exist, error handling, or what happens on conflicts. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, error conditions, or what the tool returns. Given the complexity of tag assignment operations and lack of structured data, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain tag assignment constraints or format details). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Assign existing tags') and target resource ('Kafka topics in Confluent Cloud'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'create-topic-tags' or 'remove-tag-from-entity', which would require more specific context about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create-topic-tags' or 'remove-tag-from-entity'. It mentions obtaining entity names from 'search-topics-by-name' in the schema, but this isn't part of the description itself, so it offers no explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alter-topic-configC
Alter topic configuration in Confluent Cloud.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Confluent Cloud Kafka REST API. | |
| clusterId | No | The unique identifier for the Kafka cluster. | |
| topicConfigs | Yes | ||
| topicName | Yes | Name of the topic to alter | |
| validateOnly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Alter' implying a mutation, but doesn't mention permissions required, whether changes are reversible, potential side effects, or rate limits. This leaves significant gaps for a tool that modifies configurations, making it inadequate for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero waste—it states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, mutation operation, no output schema), the description is insufficient. It lacks details on behavior, error handling, or output expectations, and with no annotations to fill gaps, it doesn't provide enough context for reliable use in a system like Confluent Cloud.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what's in the schema. With 60% schema description coverage, the schema documents most parameters well (e.g., 'topicName', 'topicConfigs'), but the description doesn't compensate for gaps or provide additional context like examples or constraints. This meets the baseline for moderate schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Alter') and resource ('topic configuration in Confluent Cloud'), making the purpose immediately understandable. However, it doesn't distinguish this tool from similar siblings like 'create-topics' or 'delete-topics' that also modify topics, missing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this is for updating existing topics versus creating new ones (contrasted with 'create-topics'), or how it relates to other configuration tools. The description offers only a basic statement without context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-connectorB
Create a new connector. Returns the new connector information if successful.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Kafka Connect REST API. | |
| clusterId | No | The unique identifier for the Kafka cluster. | |
| connectorConfig | Yes | ||
| connectorName | Yes | The name of the connector to create. | |
| environmentId | No | The unique identifier for the environment this resource belongs to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates something and returns information if successful, which implies mutation but doesn't specify permissions required, whether creation is idempotent, error conditions, or what 'successful' entails. For a creation tool with complex parameters, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise at two sentences that each earn their place. The first sentence states the core action, and the second adds important behavioral context about the return value. There's zero wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, nested objects, no output schema, no annotations), the description is minimally adequate. It states what the tool does and the success condition but lacks crucial context about authentication, error handling, connector types (managed vs. custom), or how the creation affects the system. The agent must rely heavily on the schema for operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 80%, providing good documentation for most parameters. The description adds no parameter-specific information beyond what's in the schema. It doesn't explain relationships between parameters (e.g., how connectorConfig interacts with clusterId) or provide usage examples. With high schema coverage, the baseline 3 is appropriate as the schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new connector') and resource ('connector'), making the purpose immediately understandable. It distinguishes from siblings like 'delete-connector' and 'list-connectors' by specifying creation rather than deletion or listing. However, it doesn't differentiate from other creation tools like 'create-topics' or 'create-flink-statement' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing cluster or environment IDs), when creation is appropriate versus using existing connectors, or how it differs from other creation tools like 'create-topics'. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-flink-statementC
Make a request to create a statement.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Flink REST API. | |
| catalogName | Yes | The catalog name to be used for the statement. Typically the confluent environment name. | |
| computePoolId | No | The id associated with the compute pool in context. | |
| databaseName | Yes | The database name to be used for the statement. Typically the Kafka cluster name. | |
| environmentId | No | The unique identifier for the environment. | |
| organizationId | No | The unique identifier for the organization. | |
| statement | Yes | The raw Flink SQL text statement. Create table statements may not be necessary as topics in confluent cloud will be detected as created schemas. Make sure to show and describe tables before creating new ones. | |
| statementName | Yes | The user provided name of the resource, unique within this environment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Make a request to create a statement', implying a write/mutation operation, but doesn't disclose any behavioral traits such as permissions required, side effects, error handling, or what happens upon success. This leaves significant gaps in understanding how the tool behaves beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence: 'Make a request to create a statement.' It's front-loaded and wastes no words, making it easy to parse quickly. However, this conciseness comes at the cost of completeness, as noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, 4 required, no annotations, no output schema), the description is incomplete. It doesn't explain what a 'statement' is in this context (Flink SQL), what the tool returns, or any behavioral aspects. For a creation tool with multiple parameters and no structured safety hints, this minimal description is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the input schema provides. Since schema description coverage is 100%, the baseline score is 3. The description doesn't explain parameter interactions, dependencies, or provide additional context about the 8 parameters, so it doesn't add value over the well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Make a request to create a statement' states a generic action but lacks specificity about what kind of statement (Flink SQL statement) and what resource it creates. It doesn't distinguish from siblings like 'create-connector' or 'create-topics', which also create resources in the same domain. The purpose is vague rather than clearly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or comparisons to sibling tools like 'list-flink-statements' or 'delete-flink-statements'. There's no indication of when this creation is appropriate or what alternatives might exist for similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-topicsC
Create new topic(s) in the Kafka cluster.
| Name | Required | Description | Default |
|---|---|---|---|
| topicNames | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates topics but doesn't mention critical behaviors like required permissions (e.g., admin rights), potential side effects (e.g., topic creation might affect cluster performance), error handling, or what happens if topics already exist. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly. Every part of the sentence earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of creating Kafka topics (a mutation operation), the lack of annotations, no output schema, and minimal parameter guidance, the description is incomplete. It doesn't cover behavioral aspects, usage context, or result expectations, leaving significant gaps for an agent to operate effectively in this domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the schema provides. The schema has 0% description coverage, but the description doesn't compensate by explaining the 'topicNames' parameter (e.g., naming conventions, constraints, or examples). Since there's only one parameter, the baseline is 4, but the lack of any additional context reduces this to 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new topic(s) in the Kafka cluster'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential alternatives like 'create-topic-tags' (which creates tags for topics rather than topics themselves) or 'alter-topic-config' (which modifies existing topics), so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing cluster), exclusions (e.g., not for updating topics), or direct comparisons to siblings like 'create-topic-tags' or 'alter-topic-config'. This leaves the agent with minimal context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-topic-tagsC
Create new tag definitions in Confluent Cloud.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. | |
| tags | Yes | Array of tag definitions to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation operation but doesn't mention authentication requirements, rate limits, whether tags are globally unique, what happens on duplicate tag names, or the response format. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place in conveying the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like permissions, error conditions, or response format, nor does it provide usage context relative to sibling tools. The 100% schema coverage helps but doesn't compensate for the missing operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (baseUrl and tags array). The description adds no additional parameter semantics beyond what's in the schema, such as explaining tag naming conventions or baseUrl construction. The baseline score of 3 reflects adequate but minimal value addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create new tag definitions') and resource ('in Confluent Cloud'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'add-tags-to-topic' or 'delete-tag', which would require mentioning this creates tag definitions rather than applying or removing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing existing topics or clusters), contrast with 'add-tags-to-topic' (which applies tags to entities) or 'delete-tag', or specify appropriate contexts for tag creation versus other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-connectorC
Delete an existing connector. Returns success message if deletion was successful.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Kafka Connect REST API. | |
| clusterId | No | The unique identifier for the Kafka cluster. | |
| connectorName | Yes | The name of the connector to delete. | |
| environmentId | No | The unique identifier for the environment this resource belongs to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that deletion returns a success message, which is helpful, but lacks critical behavioral details: it doesn't specify if deletion is permanent/reversible, what permissions are required, whether it affects related resources, or any rate limits/error conditions. For a destructive operation with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero waste: the first states the purpose, and the second adds behavioral context about the return value. It's front-loaded and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a destructive operation with no annotations and no output schema, the description is incomplete. It should explain more about the deletion's impact (e.g., permanence, side effects) and error handling, especially since siblings include similar tools like 'delete-topics' that might have different behaviors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no additional meaning about parameters beyond implying 'connectorName' is required (which is already in the schema). Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('an existing connector'), which is specific and unambiguous. It distinguishes from siblings like 'create-connector' and 'read-connector' by focusing on deletion, though it doesn't explicitly mention these alternatives in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the connector must exist), when not to use it, or how it differs from other deletion tools like 'delete-topics' or 'delete-flink-statements' in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-flink-statementsC
Make a request to delete a statement.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Flink REST API. | |
| environmentId | No | The unique identifier for the environment. | |
| organizationId | No | The unique identifier for the organization. | |
| statementName | Yes | The user provided name of the resource, unique within this environment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'delete a statement,' implying a destructive mutation, but fails to disclose critical traits such as whether deletion is permanent, requires specific permissions, has side effects (e.g., stopping associated jobs), or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, making it appropriately sized and front-loaded. It directly states the action without unnecessary elaboration, though this conciseness comes at the cost of completeness in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a destructive operation with 4 parameters) and lack of annotations and output schema, the description is incomplete. It does not cover behavioral aspects, usage context, or return values, leaving significant gaps for an AI agent to understand and invoke the tool correctly in a real-world scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters documented in the input schema (baseUrl, environmentId, organizationId, statementName). The description adds no meaning beyond the schema, as it does not explain parameter relationships, dependencies, or usage examples. Baseline 3 is appropriate when the schema does the heavy lifting, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Make a request to delete a statement' is a tautology that restates the tool name 'delete-flink-statements' without adding specificity. It mentions the verb 'delete' and resource 'statement' but lacks details about what type of statement (Flink SQL statement) or what system it operates on, making it vague compared to more specific sibling tools like 'delete-connector' or 'delete-topics'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing an existing statement to delete), exclusions, or related tools like 'list-flink-statements' for selection or 'create-flink-statement' for creation, leaving the agent without context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-tagC
Delete a tag definition from Confluent Cloud.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. | |
| tagName | Yes | Name of the tag to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool deletes a tag definition, implying a destructive, irreversible mutation, but doesn't elaborate on permissions required, side effects (e.g., if tag removal from entities occurs automatically), or error conditions. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as what 'delete' entails (e.g., permanent removal, cascading effects), expected return values, or error handling, leaving the agent with insufficient information for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('baseUrl' and 'tagName') clearly documented in the schema. The description adds no additional parameter semantics beyond what's in the schema, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a tag definition from Confluent Cloud'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'remove-tag-from-entity' or 'delete-topics', which would require explicit comparison to achieve a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'remove-tag-from-entity' (which removes a tag from an entity rather than deleting the tag definition itself) or 'delete-topics' (which deletes different resources). There's also no mention of prerequisites, such as whether the tag must be unused or if deletion is irreversible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-topicsB
Delete the topic with the given names.
| Name | Required | Description | Default |
|---|---|---|---|
| topicNames | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is 'Delete', implying a destructive mutation, but lacks details on permissions needed, whether deletion is reversible, effects on associated data, or error handling. This is inadequate for a destructive operation without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, efficiently conveying the core action and parameter. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, no annotations, no output schema, and minimal parameter documentation, the description is insufficient. It doesn't cover behavioral aspects like safety warnings, return values, or error conditions, leaving critical gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context by specifying that 'topicNames' refers to 'the given names', clarifying the parameter's role beyond the schema's basic type definition. With 0% schema description coverage and only 1 parameter, this compensates well, though it could detail format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('topic with the given names'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'delete-connector' or 'delete-flink-statements' beyond specifying the resource type, which slightly limits its distinctiveness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., topic existence), exclusions, or compare it to related tools like 'remove-tag-from-entity' or 'delete-tag', leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-clustersC
Get all clusters in the Confluent Cloud environment
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Confluent Cloud REST API. | |
| environmentId | No | The environment ID to filter clusters by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Get all clusters' but doesn't disclose behavioral traits like pagination, rate limits, authentication requirements, error handling, or what 'all' entails (e.g., scope, limits). This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration, earning its place fully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 2 parameters, the description is incomplete. It lacks details on behavioral aspects (e.g., response format, pagination), usage context, and doesn't compensate for the absence of structured data, making it inadequate for a listing tool in this environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional meaning beyond implying environment filtering with 'in the Confluent Cloud environment', but this is already covered by the schema's 'environmentId' parameter. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get all clusters') and resource ('in the Confluent Cloud environment'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'list-environments' or 'list-topics' beyond the resource name, missing explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are no explicit when/when-not instructions, no mention of prerequisites like authentication, and no comparison to sibling tools such as 'list-environments' for filtering or other listing operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-connectorsA
Retrieve a list of "names" of the active connectors. You can then make a read request for a specific connector by name.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Kafka Connect REST API. | |
| clusterId | No | The unique identifier for the Kafka cluster. | |
| environmentId | No | The unique identifier for the environment this resource belongs to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this retrieves a list of 'active' connectors, which implies a filter, but doesn't explain what 'active' means, whether there are pagination limits, authentication requirements, rate limits, or error conditions. The description is minimal and lacks important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences that both earn their place. The first sentence states the core purpose, and the second provides valuable usage guidance about the sibling tool. There is zero wasted text or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 100% schema coverage, no output schema, and no annotations, the description is adequate but minimal. It covers the basic purpose and points to the next logical tool, but lacks details about the return format, what 'active' means, or any behavioral constraints that would be important for an agent to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (baseUrl, clusterId, environmentId) with their descriptions. The tool description adds no additional parameter information beyond what's in the schema, meeting the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the resource 'list of names of active connectors', making the purpose understandable. It distinguishes from the sibling 'read-connector' by mentioning that tool for specific connector details, but doesn't explicitly differentiate from other list tools like 'list-clusters' or 'list-topics' beyond the connector focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('retrieve a list of names') and explicitly mentions the alternative 'read-connector' for getting details about a specific connector. However, it doesn't specify when NOT to use this tool or compare it to other list tools like 'list-clusters' or 'list-topics'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-environmentsB
Get all environments in Confluent Cloud with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Confluent Cloud REST API. | |
| pageToken | No | Token for the next page of environments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses pagination support, which is a key behavioral trait beyond basic functionality. However, it lacks details on permissions, rate limits, or error handling, leaving gaps for a tool that likely interacts with a cloud API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Get all environments') and includes essential context ('with pagination support'). There is no wasted verbiage, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete. It covers the main action and pagination but omits details like response format, error cases, or authentication needs. For a list operation in a cloud API context, this leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional meaning about parameters beyond implying pagination via 'pageToken', which is already clear in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('all environments in Confluent Cloud'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'read-environment' (which likely retrieves a single environment), missing an opportunity for full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'read-environment' for single environments or 'list-clusters' for related resources, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-flink-statementsB
Retrieve a sorted, filtered, paginated list of all statements.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Flink REST API. | |
| computePoolId | No | Filter the results by exact match for compute_pool. | |
| environmentId | No | The unique identifier for the environment. | |
| labelSelector | No | A comma-separated label selector to filter the statements. | |
| organizationId | No | The unique identifier for the organization. | |
| pageSize | No | A pagination size for collection requests. | |
| pageToken | No | An opaque pagination token for collection requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions sorting, filtering, and pagination traits, but lacks critical details: it doesn't specify default sort order, what happens when no filters are applied, whether results are cached, rate limits, authentication requirements, or error conditions. For a list operation with 7 parameters, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality ('retrieve...list of all statements') followed by key operational characteristics. Every word earns its place with zero redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with 7 parameters and no output schema, the description is minimally adequate. It covers the basic operation but lacks details about return format, error handling, and behavioral constraints that would be helpful given the parameter complexity. Without annotations or output schema, more context about what the tool returns would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema by implying that parameters enable filtering and pagination, but doesn't provide additional semantic context about parameter interactions or usage patterns. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('retrieve') and resource ('list of all statements') with specific operational characteristics ('sorted, filtered, paginated'). It distinguishes from siblings like 'read-flink-statement' (singular read) and 'create-flink-statement' (creation), but doesn't explicitly differentiate from other list tools like 'list-clusters' or 'list-connectors' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description mentions filtering capabilities but doesn't specify when filtering is appropriate or when other tools (like 'search-topics-by-name' for different resources) should be used instead. Usage context is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-schemasC
List all schemas in the Schema Registry.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. | |
| deleted | No | List deleted schemas. | |
| latestOnly | No | If true, only return the latest version of each schema. | |
| subjectPrefix | No | The prefix of the subject to list schemas for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't cover aspects like pagination, rate limits, authentication needs, or what 'all schemas' entails (e.g., scope, format). For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for a simple list operation, earning a top score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations and no output schema, the description is incomplete. It doesn't explain what 'list' returns (e.g., schema details, IDs, versions) or behavioral traits like error handling. For a 4-parameter tool in a registry context, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond the schema, which has 100% coverage with detailed descriptions for all 4 parameters. This meets the baseline of 3, as the schema adequately documents parameters like 'deleted' and 'latestOnly', but the description doesn't enhance understanding with examples or contextual usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all schemas in the Schema Registry'), making the purpose immediately understandable. It distinguishes itself from siblings like 'list-topics' or 'list-connectors' by specifying schemas. However, it doesn't explicitly differentiate from potential schema-related siblings not present in the list, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as whether it's for administrative tasks or general discovery. With no usage hints, it leaves the agent to infer based on tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-tagsC
Retrieve all tags with definitions from Confluent Cloud Schema Registry.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving tags but does not specify if this is a read-only operation, how results are returned (e.g., pagination, format), or any constraints like rate limits or authentication needs. This leaves significant gaps for a tool that likely interacts with a cloud service.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of interacting with Confluent Cloud Schema Registry, the lack of annotations and output schema, and incomplete behavioral details, the description is insufficient. It does not cover return values, error handling, or operational context, leaving the agent with inadequate information for proper use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'baseUrl' well-documented in the schema. The description does not add any additional meaning beyond the schema, such as explaining default behavior or usage context, but the schema adequately covers the parameter, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve all tags') and the resource ('tags with definitions from Confluent Cloud Schema Registry'), making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'list-topics' or 'list-schemas', which would require mentioning it's specifically for tags rather than other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'search-topics-by-tag' or 'list-topics', nor does it mention prerequisites or exclusions. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-topicsB
List all topics in the Kafka cluster.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'List all topics' implies a read-only operation, it doesn't disclose important behavioral traits like whether this returns all topics at once (vs paginated), what format the output takes, or any rate limits or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states exactly what the tool does with zero wasted words. It's appropriately sized for a simple list operation with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the output looks like (list format, topic details included), whether it's paginated, or any constraints on usage. Given the lack of structured information, the description should provide more context about the operation's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the parameter situation. The description appropriately doesn't mention parameters since none exist, earning a baseline 4 for not adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all topics') and the resource ('in the Kafka cluster'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'search-topics-by-name' or 'search-topics-by-tag' which also list topics with filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search-topics-by-name' or 'search-topics-by-tag'. It doesn't mention that this returns ALL topics without filtering, which would be important context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
produce-messageA
Produce records to a Kafka topic. For saving user messages/history they should be saved to a kafka topic named claude-conversations unless otherwise specified. If the topic does not exist, it will be created via the create-topics tool.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The content of the message to produce | |
| topicName | Yes | Name of the kafka topic to produce the message to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that topics are created automatically if they don't exist, which is a key behavioral trait. However, it lacks details on permissions, error handling, or rate limits. The description adds some context but doesn't fully cover all behavioral aspects expected for a mutation tool without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by specific guidelines. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides basic context but is incomplete. It covers the main action and a behavioral trait (topic creation), but lacks details on permissions, response format, or error scenarios. For a mutation tool with 2 parameters and no structured support, this is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('message' and 'topicName') with descriptions. The description doesn't add any meaning beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score is 3, as the description doesn't compensate with extra parameter insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Produce records to a Kafka topic.' It specifies the verb ('produce') and resource ('Kafka topic'), making the action explicit. However, it doesn't distinguish this tool from its siblings (e.g., create-topics, list-topics) beyond the core function, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: 'For saving user messages/history they should be saved to a kafka topic named claude-conversations unless otherwise specified.' This gives a specific context and default behavior. It also mentions an alternative tool ('create-topics') for topic creation if needed, but it doesn't explicitly state when not to use this tool or compare it to all siblings, keeping it from a score of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read-connectorC
Get information about the connector.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Kafka Connect REST API. | |
| clusterId | No | The unique identifier for the Kafka cluster. | |
| connectorName | Yes | The unique name of the connector. | |
| environmentId | No | The unique identifier for the environment this resource belongs to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action. It doesn't cover critical aspects like whether this is a read-only operation, if it requires specific permissions, potential rate limits, or what the output format might be, making it insufficient for a tool with multiple parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, straightforward sentence with no wasted words. It's appropriately sized for a simple tool, though its brevity contributes to gaps in other dimensions, but purely in terms of conciseness, it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return values, error conditions, or how parameters interact, leaving significant gaps for the agent to understand the tool's full context and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples, so it meets the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get information about the connector' restates the tool name 'read-connector' in slightly different words, making it tautological. It doesn't specify what type of information is retrieved or how this differs from sibling tools like 'list-connectors' or 'create-connector', leaving the purpose vague beyond the obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like needing a connector name, nor does it differentiate from sibling tools such as 'list-connectors' for broader queries or 'create-connector' for setup, leaving the agent with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read-environmentB
Get details of a specific environment by ID
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Confluent Cloud REST API. | |
| environmentId | Yes | The ID of the environment to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it retrieves details without disclosing behavioral traits. It doesn't mention if this is a read-only operation (implied but not explicit), authentication needs, rate limits, error handling, or what happens if the ID is invalid. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get details of a specific environment by ID') with zero wasted words. It's appropriately sized for a simple retrieval tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (simple read operation), 100% schema coverage, and no output schema, the description is minimally adequate. However, it lacks context on what 'details' include, which could be critical for an agent to understand the return value. With no annotations and no output schema, more completeness would be beneficial for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('baseUrl' and 'environmentId') fully documented in the schema. The description adds no additional meaning beyond implying 'environmentId' is used to identify the target, which is already clear from the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('a specific environment by ID'), making the purpose unambiguous. It distinguishes from the sibling 'list-environments' by focusing on a single environment rather than listing multiple. However, it doesn't specify what 'details' include (e.g., configuration, status, metadata), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need details of a known environment ID, contrasting with 'list-environments' for browsing. However, it lacks explicit guidance on when to use this versus alternatives like 'search-topics-by-tag' for related resources, or prerequisites such as needing the environment ID first. No exclusions or clear alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read-flink-statementC
Make a request to read a statement and its results
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Flink REST API. | |
| environmentId | No | The unique identifier for the environment. | |
| organizationId | No | The unique identifier for the organization. | |
| statementName | Yes | The user provided name of the resource, unique within this environment. | |
| timeoutInMilliseconds | No | The function implements pagination. It will continue to fetch results using the next page token until either there are no more results or the timeout is reached. Tables backed by kafka topics can be thought of as never-ending streams as data could be continuously produced in near real-time. Therefore, if you wish to sample values from a stream, you may want to set a timeout. If you are reading a statement after creating it, you may need to retry a couple times to ensure that the statement is ready and receiving data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It fails to disclose critical behavioral traits such as whether this is a read-only operation, potential side effects, authentication needs, rate limits, or error handling. The timeout parameter description hints at pagination and retries, but this is in the schema, not the tool description itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core action without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It lacks information on return values, error conditions, or operational context (e.g., how it relates to Flink statements). Without annotations or output schema, the description should provide more behavioral and result details to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed parameter documentation. The tool description adds no additional meaning beyond the schema, such as explaining parameter interactions or usage examples. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Make a request to read') and resource ('a statement and its results'), which clarifies the tool's purpose. However, it lacks specificity about what type of statement (e.g., Flink SQL statement) and doesn't differentiate from siblings like 'list-flink-statements' or 'read-connector', making it vague in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., after creating a statement with 'create-flink-statement') or exclusions, leaving the agent without context for tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove-tag-from-entityC
Remove tag from an entity in Confluent Cloud.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. | |
| qualifiedName | Yes | Qualified name of the entity. If not provided, you can obtain it from using the search-topics-by-tag tool. example: "lsrc-g2p81:lkc-xq8k7g:my-flights" | |
| tagName | Yes | Name of the tag to remove from the entity. | |
| typeName | No | Type of the entity | kafka_topic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool removes a tag from an entity, implying a mutation operation, but doesn't disclose critical behavioral traits such as required permissions, whether the operation is reversible, potential side effects, error conditions, or rate limits. This leaves significant gaps for an AI agent to understand the tool's behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words—it directly states the tool's purpose without unnecessary elaboration. It's appropriately sized and front-loaded, making it easy for an AI agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral aspects (e.g., permissions, reversibility), output format, error handling, and how it relates to sibling tools. While the input schema is well-documented, the description doesn't compensate for the missing context needed for safe and effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what's already in the input schema, which has 100% coverage with detailed descriptions for all four parameters. The baseline score of 3 reflects that the schema adequately documents parameters, so the description doesn't need to compensate, but it also doesn't provide additional context like examples or usage notes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove tag') and target ('from an entity in Confluent Cloud'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from sibling tools like 'delete-tag' or 'create-topic-tags', which handle related tag operations but with different scopes or actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it mentions obtaining 'qualifiedName' from 'search-topics-by-tag' in the input schema, this is not part of the description text itself. There's no explicit context, prerequisites, or comparison to sibling tools like 'delete-tag' (which might delete tags entirely rather than remove them from entities).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-topics-by-nameC
List all topics in the Kafka cluster matching the specified name.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. | |
| topicName | Yes | The topic name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation ('List') but doesn't specify whether it requires authentication, rate limits, pagination behavior, or error conditions. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, with every word contributing to understanding the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the output looks like (e.g., list format, fields returned), error handling, or behavioral constraints. The description alone leaves too many operational questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (baseUrl and topicName). The description mentions 'the specified name' which aligns with topicName but adds no additional semantic context beyond what the schema provides. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all topics') and resource ('in the Kafka cluster') with a specific filter ('matching the specified name'). It distinguishes from general listing tools like 'list-topics' by specifying search functionality, though it doesn't explicitly differentiate from 'search-topics-by-tag' which searches by a different attribute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list-topics' (for unfiltered listing) or 'search-topics-by-tag' (for tag-based search). It states what the tool does but offers no context about use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-topics-by-tagC
List all topics in the Kafka cluster with the specified tag.
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No | The base URL of the Schema Registry REST API. | |
| limit | No | The maximum number of topics to return. | |
| offset | No | The offset to start the search from. Used for pagination. | |
| topicTag | No | The tag we wish to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it's a listing operation. It doesn't disclose behavioral traits like whether it's read-only, pagination behavior beyond schema hints, rate limits, authentication needs, or what happens if no topics match the tag. The description is minimal and lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently conveys the essential action and filter. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the return format, error conditions, or how results are structured. While schema covers parameters well, the description lacks context about the operation's behavior and results, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value by mentioning 'tag' which aligns with 'topicTag' parameter, but doesn't provide additional semantics like tag format examples or search behavior details. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all topics') and resource ('in the Kafka cluster') with a specific filter ('with the specified tag'). It distinguishes from generic 'list-topics' by adding tag-based filtering, though it doesn't explicitly differentiate from 'search-topics-by-name' which uses a different filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list-topics' or 'search-topics-by-name'. It mentions the tag filter but doesn't explain when tag-based searching is appropriate or what prerequisites might be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
24 tool updates
v1.0.0- First observed
add-tags-to-topic - First observed
alter-topic-config - First observed
create-connector - First observed
create-flink-statement - First observed
create-topic-tags - First observed
create-topics - First observed
delete-connector - First observed
delete-flink-statements - First observed
delete-tag - First observed
delete-topics - First observed
list-clusters - First observed
list-connectors - First observed
list-environments - First observed
list-flink-statements - First observed
list-schemas - First observed
list-tags - First observed
list-topics - First observed
produce-message - First observed
read-connector - First observed
read-environment - First observed
read-flink-statement - First observed
remove-tag-from-entity - First observed
search-topics-by-name - First observed
search-topics-by-tag
TDQS
Most tools have distinct purposes targeting specific resources (e.g., topics, connectors, tags, Flink statements), but there is some overlap between list-topics, search-topics-by-name, and search-topics-by-tag which could cause confusion in selection. The descriptions help clarify the differences, but the boundaries between listing and searching topics are not perfectly clear.
The naming follows a consistent verb_noun pattern (e.g., create-topics, delete-connector, list-clusters) with minor deviations like add-tags-to-topic (which uses 'add' instead of 'create' or 'assign') and remove-tag-from-entity (using 'remove' instead of 'delete'). Overall, the pattern is predictable and readable, with only a few tools slightly deviating from the standard convention.
With 24 tools, the count is on the higher side for a single server, bordering on heavy, but it covers multiple domains within Confluent Cloud (Kafka, connectors, tags, Flink, schemas). While comprehensive, it might feel overwhelming or overly complex for agents, suggesting a slight mismatch in scope versus tool density.
The tool set provides complete CRUD/lifecycle coverage for the domains it addresses, including topics (create, alter, list, search, delete), connectors (create, list, read, delete), tags (create, list, add, remove, delete), and Flink statements (create, list, read, delete). There are no obvious gaps, and agents can perform full operations without dead ends in these areas.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
The official MCP Server for the Mux API
Related MCP Servers
- AlicenseCqualityAmaintenanceA comprehensive Message Control Protocol (MCP) server for Kafka Schema Registry.2832PythonMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with Kafka clusters to manage topics, monitor consumer groups, and stream messages. It provides a comprehensive suite of tools for broker metadata inspection and local Kafka user management.MIT
- AlicenseBqualityBmaintenanceMCP server for Apache Kafka that allows LLM agents to inspect topics, consumer groups, and safely manage offsets (reset, rewind).1913Apache 2.0
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI assistants to safely interact with Apache Kafka clusters, providing tools for topic management, message operations, consumer groups, and cluster information.3MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/confluentinc/mcp-confluent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server