MCP Directory

Kafka Schema Registry MCP Server

Manage Kafka Schema Registry from Claude — register, evolve, compare, migrate, and export Avro schemas in plain language.

Unverified
stdio (local)
OAuth
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
docker pull aywengo/kafka-schema-reg-mcp:stable

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "kafka-schema-registry-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--network",
        "host",
        "-e",
        "SCHEMA_REGISTRY_URL",
        "-e",
        "SCHEMA_REGISTRY_USER",
        "-e",
        "SCHEMA_REGISTRY_PASSWORD",
        "aywengo/kafka-schema-reg-mcp:stable"
      ],
      "env": {
        "SCHEMA_REGISTRY_URL": "http://localhost:38081",
        "SCHEMA_REGISTRY_USER": "",
        "SCHEMA_REGISTRY_PASSWORD": ""
      }
    }
  }
}

Requires Docker to be installed and running.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Docker (recommended) or Python 3.10+
  • A reachable Kafka Schema Registry instance (SCHEMA_REGISTRY_URL)
  • Optional: OAuth 2.1 provider (Azure AD, Google, Keycloak, Okta, or GitHub) for authentication

About Kafka Schema Registry MCP Server

Connects MCP clients like Claude Desktop, Cursor, and VS Code to one or more Kafka Schema Registry instances, letting you manage Avro schemas, contexts, compatibility, migrations, and exports through natural language. Runs as a Docker container or local Python process, speaking JSON-RPC over stdio.

Tools & capabilities (46)

ping

MCP ping/pong server health check.

set_default_registry

Set the default registry (admin scope).

get_default_registry

Get the current default registry.

register_schema

Register a new schema version (write scope).

check_compatibility

Check schema compatibility (BACKWARD, FORWARD, FULL).

create_context

Create a new schema context for environment isolation.

delete_context

Delete a context (admin scope).

delete_subject

Delete a subject and all its versions (admin scope).

update_global_config

Update global registry configuration (admin scope).

update_subject_config

Update subject-level configuration (admin scope).

add_subject_alias

Create an alias subject pointing to an existing subject.

delete_subject_alias

Remove an alias subject.

update_mode

Update registry mode (admin scope).

update_subject_mode

Update subject mode (admin scope).

count_contexts

Count contexts.

count_schemas

Count schemas.

count_schema_versions

Count schema versions.

get_registry_statistics

Get comprehensive registry statistics.

export_schema

Export a single schema.

export_subject

Export all versions of a subject.

export_context

Export all subjects in a context.

export_global

Export all contexts and schemas.

migrate_schema

Migrate a schema between registries (admin scope).

migrate_context

Migrate a context between registries (admin scope).

compare_registries

Compare two registries.

compare_contexts_across_registries

Compare contexts across registries.

find_missing_schemas

Find schemas missing between registries.

clear_context_batch

Clear a context with batch operations (admin scope).

clear_multiple_contexts_batch

Clear multiple contexts in batch (admin scope).

list_registries

List all configured registries (resource: registry://names).

get_registry_info

Get registry information (resource: registry://info/{name}).

test_registry_connection

Test a registry connection (resource: registry://status/{name}).

test_all_registries

Test all registry connections (resource: registry://status).

list_subjects

List all subjects (resource: registry://{name}/subjects).

get_schema

Get schema content (resource: schema://{name}/{context}/{subject}).

get_schema_versions

Get schema versions (resource: schema://{name}/{context}/{subject}/versions).

get_global_config

Get global configuration (resource: registry://{name}/config).

get_mode

Get registry mode (resource: registry://mode).

list_contexts

List all contexts (resource: registry://{name}/contexts).

get_subject_config

Get subject configuration.

get_subject_mode

Get subject mode.

list_available_resources

List all available MCP resources.

guided_schema_migration

Start an interactive schema migration wizard (admin scope).

guided_context_reorganization

Start an interactive context reorganization wizard (admin scope).

guided_disaster_recovery

Start an interactive disaster recovery wizard (admin scope).

check_viewonly_mode

Check whether a registry is in viewonly mode.

What this server can do

Kafka Schema Registry MCP Server provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Register and evolve Avro schemas from Claude using natural language with automatic compatibility checking.
  • Manage multiple Schema Registry environments (dev/staging/prod) as separate contexts or registries with per-registry view-only safety.
  • Migrate schemas and contexts between registries with pre-migration backups and post-migration verification.
  • Compare registries to find missing or divergent schemas before promoting changes.
  • Export schemas (JSON, Avro IDL) for backup, documentation, or disaster-recovery workflows.

Security notes

Supports optional OAuth 2.1 authentication (ENABLE_AUTH=true with AUTH_ISSUER_URL and AUTH_AUDIENCE) with read/write/admin scope-based authorization. Production safety features include VIEWONLY mode (per-registry), SSRF protection via URL validation with configurable localhost access, and per-registry access controls. The config-examples block runs the server via Docker with --network host; restrict SCHEMA_REGISTRY_URL and credentials appropriately for production registries.

Kafka Schema Registry MCP Server FAQ

What is SLIM_MODE and when should I use it?

SLIM_MODE (SLIM_MODE=true) reduces the exposed tool set from 50+ to ~9 essential tools, lowering token usage and speeding up LLM responses. It is recommended for most day-to-day and read-only operations; disable it (SLIM_MODE=false) when you need migrations, batch cleanup, or guided workflows.

Does it support multiple Schema Registry instances?

Yes. It supports up to 8 registries simultaneously via numbered environment variables (e.g. SCHEMA_REGISTRY_NAME_1 / SCHEMA_REGISTRY_URL_1), each with independent VIEWONLY settings.

How do I run it?

Pull and run the Docker image aywengo/kafka-schema-reg-mcp:stable, or clone the repo and run python kafka_schema_registry_unified_mcp.py with requirements installed. Configure Claude Desktop with the provided config-examples mcpServers block.

Is authentication supported?

Yes, optionally. Set ENABLE_AUTH=true with AUTH_ISSUER_URL and AUTH_AUDIENCE for OAuth 2.1, supporting Azure AD, Google, Keycloak, Okta, and GitHub with read/write/admin scopes.

Alternatives to Kafka Schema Registry MCP Server

Compare all alternatives →

Official MCP server providing persistent, file-backed knowledge-graph memory across sessions.

Verified
stdio (local)
No auth
TypeScript
9 tools
Updated 5 months agoRepo

Structured step-by-step reasoning tool for breaking problems into revisable thought sequences.

Verified
stdio (local)
No auth
TypeScript
1 tool
Updated 6 months agoRepo

Fully managed remote server for AWS docs, blogs, What's-New and Well-Architected guidance — no key.

Verified
HTTP (remote)
No auth
Hosted
6 tools
Updated 5 months agoRepo