cursorrules — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cursorrules (Rules) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
<table width="100%"> <tr> <td width="33%" style="vertical-align: top;"> <div style="background-color: white; padding: 20px; border-radius: 10px;"> <img src="docs/logo_400_mcp_kafka_schema_reg.png" alt="Kafka Schema Registry MCP Logo" width="100%"> </div> </td> <td width="67%" style="vertical-align: top; padding-left: 20px;">
🎯 True MCP Implementation: Uses FastMCP 4.1+ on MCP Python SDK 2 with MCP 2026-07-28 compliance. The same process negotiates2025-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 </td> </tr> </table>
🎛️ v3.0 editions. The server runs asviewer(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:stableCopy 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.jsonRestart 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 event UserRegistered "user registration with userId, email, timestamp" /schema-evolve user-profile "add optional phoneNumber field" /migration-plan development staging /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#### Choosing an edition 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_MODE` is deprecated. It is an alias for MCP_EDITION=editor and 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.pydocker-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 protectionPre-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](docs/api-reference.md) | Complete tool documentation with examples |
| [Subject Aliasing](docs/subject-alias.md) | How to add and remove subject aliases |
| [Use Cases](docs/use-cases.md) | Real-world scenarios and implementation patterns |
| [Deployment Guide](docs/deployment.md) | Docker, Kubernetes, cloud platforms, CI/CD |
| [IDE Integration](docs/ide-integration.md) | VS Code, Claude Code, Cursor setup |
| [Configuration Examples](config-examples/) | Ready-to-use Claude Desktop configs |
| [Testing Guide](TESTING_SETUP_GUIDE.md) | Comprehensive testing setup |
| [Changelog](CHANGELOG.md) | Version history and migration notes |
| [v2.0.0 Highlights](README-v2.0.0-HIGHLIGHTS.md) | Major version features |
cd tests/
./run_all_tests.sh --quick # Essential tests
./run_all_tests.sh # Complete test suitepython 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.pyviewer (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:
<a href="https://glama.ai/mcp/servers/@aywengo/kafka-schema-reg-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@aywengo/kafka-schema-reg-mcp/badge" /> </a>
🐳 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
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.