Token导航 LogoToken导航

MCP Server · 开发工具

Asyncapi MCP Gen

基于AsyncAPI规范自动生成Python Kafka MCP服务器的工具,支持多种安全协议集成。

stdio官方级别未说明来源级核验工具 0
安全协议PythonClaude代码生成Cursor

快速开始

作者 / 组织
cdev-76
提供方
cdev-76
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Asyncapi MCP Gen 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

开发工具

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

uv run fastmcp dev mcp_server.py # development mode (MCP Inspector)

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

AsyncAPI MCP Kafka生成器

自定义AsyncAPI生成器模板,自动生成 模型上下文协议(MCP) Python中的服务器,来自AsyncAPI v3规范。

目标是让LLM(Claude、Cursor等)使用AsyncAPI规范作为唯一的真实来源,与基于Kafka的事件架构进行交互。

______________________________________________________________________

运作原理

AsyncAPI spec (.yaml)
        │
        ▼
AsyncAPI Generator + template/
        │
        ▼
generated-code/
  ├── mcp_server.py     ← FastMCP server with one @mcp.tool per send operation
  └── kafka_producer.py ← Confluent Kafka producer with Schema Registry

对于每一个 send 在规范中定义的操作中,生成器创建了一个类型化的Python函数,用 @mcp.tool该函数根据从规范中提取的JSON模式验证和序列化有效载荷,然后将消息生成到相应的Kafka主题。

从读取安全配置(代理主机、身份验证方案) servers[] 规范的一部分,并直接嵌入到生成的代码中。

______________________________________________________________________

项目结构

.
├── template/
│   ├── mcp_server.js              # Dynamic template (AsyncAPI React SDK) → generates mcp_server.py
│   └── kafka_producer.py          # Static file — copied as-is to generated-code/
├── yaml/                          # AsyncAPI v3 spec examples
│   ├── streets-lights.yaml        # PLAINTEXT + SCRAM-SHA-256 servers
│   ├── streets-lights-oauth.yaml  # OAuth2 client_credentials server
│   └── temperature.yaml           # IoT temperature sensors, PLAINTEXT
├── generated-code/                # Output of the generator (gitignored — regenerate as needed)
│   ├── mcp_server.py
│   └── kafka_producer.py
├── consumer/                      # Standalone Kafka consumer for testing/observability
│   ├── kafka_consumer.py
│   └── run_consumer.py
├── docker/                        # Local dev environment
│   ├── docker-compose.yml         # Kafka SASL_SSL (SCRAM) + Schema Registry (Basic Auth) + nginx
│   ├── docker-compose-plain.yml   # Kafka PLAINTEXT only — for quick local testing
│   ├── docker-compose-oauth.yml   # Kafka SASL_SSL (OAUTHBEARER) + Schema Registry (Basic Auth) + Keycloak
│   ├── keycloak-realm.example.json  # Keycloak realm config template (copy to keycloak-realm.json)
│   ├── gen-certs.sh               # Generates SSL certs for SASL_SSL listeners (run once)
│   ├── kafka-init.sh              # Creates SCRAM users at broker startup
│   └── launch.sh                  # Interactive launcher — choose which stack to bring up
├── api/                           # FastAPI service that wraps the generator (REST interface)
│   └── app.py
├── scripts/
│   ├── run_asyncapi_generator.sh  # Wrapper around asyncapi generate
│   └── run_mcp_inspector.sh       # Launches the MCP Inspector UI
├── package.json                   # AsyncAPI generator template config
└── pyproject.toml                 # Python dependencies (uv)

______________________________________________________________________

先决条件

  • Node.js (用于AsyncAPI生成器)
  • Python≥3.13 + 紫外线
  • Docker+Docker组合 (适用于本地Kafka堆栈)

安装AsyncAPI生成器和Python依赖项:

npm install
uv sync

______________________________________________________________________

生成MCP服务器

使用提供的脚本,传递规范文件和服务器名称(可选):

./scripts/run_asyncapi_generator.sh yaml/streets-lights.yaml plain-connections

这 server 参数选择在生成的代码中嵌入哪个代理主机和安全方案。如果省略,则使用规范中的第一个服务器。

符合规范的可用服务器:

规格服务器名称安全性
streets-lights.yamlplain-connections无(PLAINTEXT)
streets-lights.yamlscram-connectionsSCRAM-SHA-256
streets-lights-oauth.yamloauth-connectionsOAuth2客户端_凭据

______________________________________________________________________

当地发展环境

以交互方式启动堆栈:

cd docker/
bash launch.sh

有三种堆栈可供选择:

堆栈编写文件端口服务
明文docker-compose-plain.yml9092Kafka+模式注册表(打开)+Kafka-ui
紧急停堆docker-compose.yml9095Kafka(SASL_SSL+SCRAM-SHA-256)+模式注册表(基本认证)+Kafka-ui+nginx
OAuth2docker-compose-oauth.yml9095Kafka(SASL_SSL+OAUTHBEARER)+模式注册表(基本认证)+Kafka-ui+Keycloak

对于SCRAM和OAuth2堆栈,首先生成SSL证书(只需要一次):

cd docker/
bash gen-certs.sh

OAuth2/钥匙斗篷设置

OAuth2堆栈需要 docker/keycloak-realm.json 文件(gitignored)。复制示例并设置您的客户端密码:

cp docker/keycloak-realm.example.json docker/keycloak-realm.json
# Edit keycloak-realm.json and replace "CHANGE_ME" with a real secret

王国(masorange)和客户(mcp-app)在首次启动时自动导入。不需要手动Keycloak配置。

______________________________________________________________________

运行生成的MCP服务器

配置 generated-code/.env 为您的安全方案设置适当的变量:

SCHEMA_REGISTRY_URL=http://localhost:8081

# PLAINTEXT — no extra config needed

# SCRAM-SHA-256
KAFKA_USERNAME=testuser
KAFKA_PASSWORD=testpassword
KAFKA_SSL_CA_LOCATION=../docker/certs/ca.crt

# OAuth2 client_credentials
OAUTH_CLIENT_ID=mcp-app
OAUTH_CLIENT_SECRET=your-secret
OAUTH_TOKEN_URL=http://localhost:9090/realms/masorange/protocol/openid-connect/token

# Schema Registry Basic Auth (SCRAM and OAuth2 stacks only — not needed for PLAINTEXT)
SCHEMA_REGISTRY_USERNAME=admin
SCHEMA_REGISTRY_PASSWORD=testpassword

运行服务器:

cd generated-code/
uv run fastmcp dev mcp_server.py   # development mode (MCP Inspector)
uv run mcp_server.py               # production mode

______________________________________________________________________

通过安全方案快速启动

明文

不需要证书或凭据。

# 1. Start the stack
cd docker && bash launch.sh   # option 1

# 2. Generate the MCP server
./scripts/run_asyncapi_generator.sh yaml/streets-lights.yaml plain-connections

# 3. Run
cd generated-code && uv run mcp_server.py

______________________________________________________________________

SCRAM-SHA-256

# 1. Generate SSL certificates (broker only — run once)
cd docker && bash gen-certs.sh

# 2. Start the stack
bash launch.sh   # option 2

# 3. Generate the MCP server
./scripts/run_asyncapi_generator.sh yaml/streets-lights.yaml scram-connections

# 4. Configure generated-code/.env
KAFKA_USERNAME=testuser
KAFKA_PASSWORD=testpassword
KAFKA_SSL_CA_LOCATION=../docker/certs/ca.crt
SCHEMA_REGISTRY_URL=http://localhost:8081
SCHEMA_REGISTRY_USERNAME=admin
SCHEMA_REGISTRY_PASSWORD=testpassword

# 5. Run
cd generated-code && uv run mcp_server.py

______________________________________________________________________

OAuth2(客户端证书)

# 1. Set up the Keycloak realm
cp docker/keycloak-realm.example.json docker/keycloak-realm.json
# Edit keycloak-realm.json and replace "CHANGE_ME" with a real client secret

# 2. Generate SSL certificates (broker only — run once)
cd docker && bash gen-certs.sh

# 3. Start the stack
bash launch.sh   # option 3

# 4. Generate the MCP server
./scripts/run_asyncapi_generator.sh yaml/streets-lights-oauth.yaml oauth-connections

# 5. Configure generated-code/.env
KAFKA_SSL_CA_LOCATION=../docker/certs/ca.crt
SCHEMA_REGISTRY_URL=http://localhost:8081
SCHEMA_REGISTRY_USERNAME=admin
SCHEMA_REGISTRY_PASSWORD=testpassword
OAUTH_CLIENT_ID=mcp-app
OAUTH_CLIENT_SECRET=
OAUTH_TOKEN_URL=http://localhost:9090/realms/masorange/protocol/openid-connect/token

# 6. Run
cd generated-code && uv run mcp_server.py

______________________________________________________________________

安全支持

从规范中读取安全配置 servers[].security 字段并嵌入生成的 mcp_server.py.

AsyncAPI方案Kafka协议身份验证
_(无)_PLAINTEXT无
scramSha256SASL_SSLSCRAM-SHA-256(用户名+密码)
oauth2 / clientCredentialsSASL_SSLOAUTHBEARER——通过客户端密钥获取M2M令牌

OAuth2客户端_凭证流

MCP服务器使用 client_id + client_secret无需人工干预——只要Kafka客户端需要,令牌就会在后台自动获取。Kafka代理根据Keycloak的JWKS端点验证JWT签名,并检查 iss 和 aud 声称。

这非常适合MCP服务器:生产者是一个具有自己的应用程序身份的自动化服务,而不是人类用户。

______________________________________________________________________

使用的AsyncAPI规范功能

路径参数

通道地址参数(例如。 {streetlightId})被提取并作为函数参数公开。默认情况下,第一个路径参数用作Kafka分区键。

自定义分区密钥(x-kafka-key)

用以下命令覆盖分区键字段 x-kafka-key 操作扩展:

operations:
  sendReading:
    action: send
    x-kafka-key: sensorId
    channel:
      $ref: '#/channels/readingsChannel'

可选字段

有效载荷属性未在以下列出 required 生成为 Optional[T] = None 并在发送前过滤掉。

文档字符串

生成的工具函数包括从以下内容构建的文档字符串 summary, description和财产 description 规范中的字段。

______________________________________________________________________

消耗事件(可观察性)

提供了一个简单的消费者进行测试。通过配置 consumer/.env:

KAFKA_BOOTSTRAP_SERVERS=localhost:9095
TOPICS=smartylighting.streetlights.1.0.action.home.turn.on
CONSUMER_GROUP_ID=streetlights-logger
KAFKA_USERNAME=testuser
KAFKA_PASSWORD=testpassword
KAFKA_SSL_CA_LOCATION=../docker/certs/ca.crt
cd consumer/
uv run run_consumer.py

______________________________________________________________________

示例规格

文件服务器描述
yaml/streets-lights.yamlplain-connections (9092), scram-connections (9095)路灯API-路径参数、PLAINTEXT和SCRAM
yaml/streets-lights-oauth.yamloauth-connections (9095)路灯API-OAuth2客户端_凭证
yaml/temperature.yaml_(普通)_物联网温度传感器——必填字段,无身份验证

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

KafkaPython本地部署AsyncAPI代码生成事件驱动架构安全协议

支持客户端

ClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Asyncapi MCP Gen

MCP World · 本页

0stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Asyncapi MCP Gen 怎么安装?

公开资料给出的安装命令是 uv run fastmcp dev mcp_server.py # development mode (MCP Inspector),运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Asyncapi MCP Gen 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Asyncapi MCP Gen 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Asyncapi MCP Gen 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Asyncapi MCP Gen 支持哪些客户端?

公开资料标注支持 Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP