by aywengo
Provides Model Context Protocol tools for interacting with Apache Kafka Schema Registry, enabling schema browsing, registration, evolution, migration, and export via JSON‑RPC, with Docker images and multi‑registry support.
A Model Context Protocol server that exposes a rich set of tools for managing Kafka Schema Registry instances. It supports read‑only browsing, schema registration/evolution, and full administrative actions such as migration, bulk operations, and disaster‑recovery, all accessible through JSON‑RPC (stdio) and integrated directly with Claude Desktop and other MCP clients.
docker pull aywengo/kafka-schema-reg-mcp:stable
docker run -e MCP_EDITION=viewer -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
# editor edition
docker run -e MCP_EDITION=editor -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
# admin edition
docker run -e MCP_EDITION=admin -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
config-examples/ to the Claude Desktop configuration directory (macOS or Linux paths provided).git clone https://github.com/aywengo/kafka-schema-reg-mcp
cd kafka-schema-reg-mcp
pip install -r requirements.txt
python kafka_schema_registry_unified_mcp.py
helm install kafka-schema-mcp ./helm/kafka-schema-reg-mcp.viewer (39 tools), editor (42 tools), admin (66 tools) selectable via MCP_EDITION./schema‑generate, /schema‑evolve).viewer (read‑only), editor (adds registration/evolution), admin (full administrative surface). Default is viewer.MCP_EDITION=editor or admin when launching the container.SCHEMA_REGISTRY_NAME_n, SCHEMA_REGISTRY_URL_n, and VIEWONLY_n environment variables (up to 8).ENABLE_AUTH=true and the appropriate OAuth environment variables.config-examples/ – copy the one matching your deployment to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or ~/.config/claude-desktop/config.json (Linux).docs/v3-migration-guide.md; note the new edition model and deprecated SLIM_MODE alias.A comprehensive Model Context Protocol (MCP) server that provides Claude Desktop and other MCP clients with tools for Kafka Schema Registry operations. Features advanced schema context support, multi-registry management, and comprehensive schema export capabilities.
🎯 True MCP Implementation: Uses FastMCP 4.1+ on MCP Python SDK 2 with MCP 2026-07-28 compliance. The same process negotiates
2025-11-25with older clients. Fully compatible with Claude Desktop and other MCP clients using JSON-RPC overstdio.
Latest Version: v3.0.0 | Docker: aywengo/kafka-schema-reg-mcp:stable
🎛️ v3.0 editions. The server runs as
viewer(read-only: browse, export, compare, compatibility),editor(viewer + schema registration and evolution) oradmin(full access: configuration, deletion, migration, bulk operations, disaster recovery). Plain:latest/:stableimages areviewer;-editorand-admintags and the Helmeditionvalue opt into more.SLIM_MODEis a deprecated alias foreditor. See docs/editions.md and docs/v3-migration-guide.md.
# Latest stable release
docker pull aywengo/kafka-schema-reg-mcp:stable
# Viewer is the default; choose editor or admin explicitly when you need writes
docker run -e MCP_EDITION=editor -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
# OR run with the full admin surface for administrators/SRE
docker run -e MCP_EDITION=admin -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
Copy a ready-to-use configuration from config-examples/:
# macOS
cp config-examples/claude_desktop_stable_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Linux
cp config-examples/claude_desktop_stable_config.json ~/.config/claude-desktop/config.json
Restart Claude Desktop and try these prompts:
2025-11-25 clientsviewer (39 tools), editor (42) and admin (66) from one codebase📖 See detailed feature descriptions: docs/api-reference.md
This project includes 5 specialized Claude Code skills – 4 for automated schema development workflows plus 1 for schema context comparison (/context-compare, documented below):
/schema-generate - Generate production-ready Avro schemas from natural language
/schema-generate event UserRegistered "user registration with userId, email, timestamp"
/schema-evolve - Safely evolve schemas with automatic compatibility checking
/schema-evolve user-profile "add optional phoneNumber field"
/migration-plan - Create detailed migration plans between environments
/migration-plan development staging
/lint-and-test - Automated quality assurance workflows
/lint-and-test quick # Before commit (2-3s)
/lint-and-test fix # Auto-fix issues (20-30s)
/lint-and-test pre-push # Before push (10-15s)
Quick Start: Read .claude-code/SKILLS_GUIDE.md - 5-minute tutorial
Complete Reference: .claude-code/skills/README.md - Full documentation
Setup Summary: .claude-code/skills/README.md - Configuration details
Try it now: /schema-generate event TestEvent "test with id and timestamp"
# Viewer (default, 39 tools)
docker pull aywengo/kafka-schema-reg-mcp:stable
# Editor (42 tools) and admin (66 tools)
docker pull aywengo/kafka-schema-reg-mcp:stable-editor
docker pull aywengo/kafka-schema-reg-mcp:stable-admin
# Pin the release candidate and edition
docker pull aywengo/kafka-schema-reg-mcp:3.0.0-admin
MCP_EDITION selects the tool surface at startup. Plain tags run viewer.
# Read-only browsing
docker run -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
# Schema registration and evolution
docker run -e MCP_EDITION=editor -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
# Full surface, including deletion and migration
docker run -e MCP_EDITION=admin -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
⚠️
SLIM_MODEis deprecated. It is an alias forMCP_EDITION=editorand will be removed in 4.0.0. Do not set both variables.See docs/editions.md for the complete per-edition tool list and docs/v3-migration-guide.md for the upgrade path.
git clone https://github.com/aywengo/kafka-schema-reg-mcp
cd kafka-schema-reg-mcp
pip install -r requirements.txt
python kafka_schema_registry_unified_mcp.py
docker-compose up -d # Includes Schema Registry for testing
📖 Detailed installation guide: docs/deployment.md
export SCHEMA_REGISTRY_URL="http://localhost:8081"
export SCHEMA_REGISTRY_USER="" # Optional
export SCHEMA_REGISTRY_PASSWORD="" # Optional
export VIEWONLY="false" # Production safety
export MCP_EDITION="viewer" # viewer | editor | admin (default: viewer)
# Development Registry
export SCHEMA_REGISTRY_NAME_1="development"
export SCHEMA_REGISTRY_URL_1="http://dev-registry:8081"
export VIEWONLY_1="false"
# Production Registry (with safety)
export SCHEMA_REGISTRY_NAME_2="production"
export SCHEMA_REGISTRY_URL_2="http://prod-registry:8081"
export VIEWONLY_2="true" # Read-only protection
Pre-configured examples available in config-examples/:
| Configuration | Use Case | File |
|---|---|---|
| Production | Stable Docker deployment | claude_desktop_stable_config.json |
| Multi-Environment | DEV/STAGING/PROD registries | claude_desktop_multi_registry_docker.json |
| Local Development | Python local execution | claude_desktop_config.json |
| View-Only Safety | Production with safety | claude_desktop_viewonly_config.json |
📖 Complete configuration guide: config-examples/README.md
An edition decides which tools are registered. Tools outside the active edition are not listed and cannot be called, so they cost no context and cannot be invoked by mistake.
| Edition | Tools | Use case |
|---|---|---|
viewer (default) |
39 | Browse, export, compare, compatibility checks |
editor |
42 | Viewer plus schema registration and evolution |
admin |
66 | Full surface: configuration, deletion, migration, bulk operations |
export MCP_EDITION="admin"
Precedence: MCP_EDITION > SLIM_MODE alias > MCP_EDITION_DEFAULT >
viewer. Setting MCP_EDITION and SLIM_MODE together is a startup error.
Resources are shared by every edition. Read-only access stays available in
viewer through the registry://, schema:// and subject:// resources.
VIEWONLY is enforced at the HTTP session boundary. A read-only registry
rejects PUT, DELETE and non-read POST requests even if a write tool is
exposed by the edition.
The tool surface is generated from tool_catalog.py; the tables in
docs/editions.md are generated from the same catalog.
| Edition | Tools | Highlights |
|---|---|---|
viewer |
39 | Registry info, subjects, schemas, compatibility, export, comparison, statistics, resources |
editor |
+3 | register_schema, check_compatibility, interactive schema registration |
admin |
+26 | Configuration, deletion, contexts, migration, bulk operations, workflows |
The server also exposes 10 prompts, 4 concrete resources and 17 resource templates. See docs/mcp-tools-reference.md for parameter details.
# In Claude Desktop, use natural language:
"Register a user schema with id, name, email fields"
"Check if my updated schema is compatible"
"Export all schemas from staging context"
"List subjects in production context"
"Compare development and production registries"
"Migrate user-events schema from staging to production"
"Test connections to all registries"
"Show me registry statistics"
"Clear all schemas from test context"
"Export global schemas for backup"
"Count schemas across all contexts"
📖 More examples: examples/ | 📖 Use cases: docs/use-cases.md
# Enable authentication
export ENABLE_AUTH=true
export AUTH_ISSUER_URL="https://your-oauth-provider.com"
export AUTH_AUDIENCE="your-client-id"
Supported Providers: Azure AD, Google OAuth, Keycloak, Okta, GitHub
Permission Scopes:
read - View schemas, configurationswrite - Register schemas, update configs (includes read)admin - Delete subjects, full control (includes write + read)📖 Security guide: docs/deployment.md#security
| Guide | Description |
|---|---|
| API Reference | Complete tool documentation with examples |
| Subject Aliasing | How to add and remove subject aliases |
| Use Cases | Real-world scenarios and implementation patterns |
| Deployment Guide | Docker, Kubernetes, cloud platforms, CI/CD |
| IDE Integration | VS Code, Claude Code, Cursor setup |
| Configuration Examples | Ready-to-use Claude Desktop configs |
| Testing Guide | Comprehensive testing setup |
| Changelog | Version history and migration notes |
| v2.0.0 Highlights | Major version features |
cd tests/
./run_all_tests.sh --quick # Essential tests
./run_all_tests.sh # Complete test suite
python tests/test_docker_mcp.py
# From repository root
cd inspector-tests
# Single registry (DEV)
./run-inspector-tests.sh stable
# Multi-registry (DEV + PROD)
./run-inspector-tests.sh multi
# Test a specific Docker tag
DOCKER_VERSION=latest ./run-inspector-tests.sh stable
📖 Testing guide: TESTING_SETUP_GUIDE.md
# With docker-compose
docker-compose up -d
# Direct Docker
docker run -d -p 38000:8000 \
-e SCHEMA_REGISTRY_URL=http://registry:8081 \
aywengo/kafka-schema-reg-mcp:stable
# Using Helm charts
helm install kafka-schema-mcp ./helm/kafka-schema-reg-mcp
📖 Deployment guide: docs/deployment.md
We welcome contributions. Open an issue or pull request on GitHub, and see:
git clone https://github.com/aywengo/kafka-schema-reg-mcp
cd kafka-schema-reg-mcp
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python kafka_schema_registry_unified_mcp.py
viewer (39 tools), editor (42) and admin (66) from one image; SLIM_MODE is a deprecated alias for editoradd_subject_alias and delete_subject_alias📖 Full changelog: CHANGELOG.md | 📖 v2.0.0 features: README-v2.0.0-HIGHLIGHTS.md
🐳 Glama.ai:
🐳 Docker Hub: aywengo/kafka-schema-reg-mcp | 📊 Stats: 39 / 42 / 66 tools by edition, 4 resources + 17 templates, 8 registries, OAuth 2.1, multi-platform
License: MIT | Maintainer: @aywengo | Issues: GitHub Issues
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by headroomlabs-ai
Compress tool outputs, logs, files, RAG chunks, and conversation history before they reach the LLM, keeping answers identical while saving up to 95% of tokens for JSON payloads.
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.