pingLABSCO SUMMARY
`VIEWONLY` per registry is the setting that makes this safe to point at production.
Registering an incompatible schema is the kind of mistake that takes a pipeline down, and per-registry read-only means an assistant can inspect production while only staging accepts writes. Turn on SLIM_MODE too unless you specifically need migration and administration: 50+ tool schemas is a lot of context to carry for what is usually a register-and-check-compatibility loop.
What it is
An MCP server for Confluent-style Schema Registry, built around multi-registry work. It groups subjects into contexts so production and staging stay logically separated, migrates schemas and whole contexts between registries with backup and verification, exports in JSON and Avro IDL, and can mark any registry read-only. A SLIM_MODE cuts the exposed tool count when a full surface overwhelms the model.
What you get
- Schemas registered and compatibility checked before anything lands, with contexts created and selected around them —
register_schema,check_compatibility,create_context,list_contexts,list_subjects,get_schema,get_schema_versions - Migration between registries and across contexts, with batch clearing for the cleanup afterwards —
migrate_schema,migrate_context,clear_context_batch,clear_multiple_contexts_batch - Export for backup and documentation at subject, context and global scope —
export_schema,export_subject,export_context,export_global - Multi-registry operation: list the configured registries, test one or all connections, set the default, and compare registries or the same context across two of them —
list_registries,get_registry_info,test_registry_connection,test_all_registries,set_default_registry,get_default_registry,compare_registries,compare_contexts_across_registries,find_missing_schemas - Configuration and mode read and written at global and subject level, plus counts and statistics —
get_global_config,update_global_config,get_subject_config,update_subject_config,get_mode,update_mode,get_subject_mode,update_subject_mode,count_contexts,count_schemas,count_schema_versions,get_registry_statistics - Subject aliases and deletions —
add_subject_alias,delete_subject_alias,delete_subject,delete_context - Guided multi-step workflows for the operations that go wrong when improvised —
guided_schema_migration,guided_context_reorganization,guided_disaster_recovery,list_available_workflows,get_workflow_status - Interactive variants that ask for the fields they are missing rather than failing —
register_schema_interactive,check_compatibility_interactive,create_context_interactive,migrate_context_interactive,export_global_interactive
Requirements
Access to a Schema Registry. The recommended path is Docker: aywengo/kafka-schema-reg-mcp:stable with SCHEMA_REGISTRY_URL set. VIEWONLY makes a registry read-only and is the production safety switch; with multiple registries the settings are numbered — SCHEMA_REGISTRY_URL_1, VIEWONLY_1, SCHEMA_REGISTRY_URL_2, VIEWONLY_2 and so on, up to 8 instances. SLIM_MODE=true reduces the exposed surface from 50+ tools to around 9 essential ones, which the README recommends for most use cases. OAuth 2.1 with scope-based permissions is available for enterprise deployments. Ready-made client configurations live in the repository's config-examples/ directory.
Setup effort
One command — docker run -e SCHEMA_REGISTRY_URL=http://localhost:8081 -e SLIM_MODE=true aywengo/kafka-schema-reg-mcp:stable
USE CASES
Adding a field without breaking consumers
Check compatibility against the current version first, then register the new schema in the right context.
Promoting schemas from staging to production
Compare the two registries to see what is missing, then migrate the context with the guided workflow rather than one subject at a time.
Letting an assistant look at production safely
Mark the production registry read-only per registry, so inspection and comparison work while writes are refused.
Taking a backup you can read later
Export a subject, a context or the whole registry as JSON or Avro IDL for documentation and disaster recovery.
55 tools
Listed in project docs. Your client may show a different list.
set_default_registryget_default_registryregister_schemacheck_compatibilitycreate_contextdelete_contextdelete_subjectupdate_global_configupdate_subject_configadd_subject_aliasdelete_subject_aliasupdate_modeupdate_subject_modecount_contextscount_schemascount_schema_versionsget_registry_statisticsexport_schemaexport_subjectexport_contextexport_globalmigrate_schemamigrate_contextcompare_registriescompare_contexts_across_registriesfind_missing_schemasclear_context_batchclear_multiple_contexts_batchlist_available_resourcessuggest_resource_for_toolgenerate_resource_templatessubmit_elicitation_responselist_elicitation_requestsget_elicitation_requestcancel_elicitation_requestget_elicitation_statuslist_available_workflowsget_workflow_statusguided_schema_migrationguided_context_reorganizationguided_disaster_recoverycheck_viewonly_modelist_registriesget_registry_infotest_registry_connectiontest_all_registrieslist_subjectsget_schemaget_schema_versionsget_global_configget_modelist_contextsget_subject_configget_subject_modeBEFORE YOU INSTALL
What to know first
Tools you get
55 tools named in the project's documentation.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
docker run -e SCHEMA_REGISTRY_URL=http://localhost:8081 -e SLIM_MODE=true aywengo/kafka-schema-reg-mcp:stableMCP Clients
Claude Desktop
{
"mcpServers": {
"kafka-schema-registry": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--network",
"host",
"-e",
"SCHEMA_REGISTRY_URL",
"aywengo/kafka-schema-reg-mcp:stable"
],
"env": {
"SCHEMA_REGISTRY_URL": "http://localhost:8081"
}
}
}
}