使用说明
卡夫卡历史
带有FastMCP API的Kafka-to-Redis Ingestor
该项目演示了一个模型上下文协议(MCP)服务器,该服务器将从Kafka主题获取的数据暴露到Redis中。消息使用Avro序列化并存储在本地模式注册表中。
建筑
- Kafka集群: 本地Kafka代理+模式注册表(通过Docker Compose运行)。
- Redis: 用于聚合消息指标的内存数据存储(通过Docker Compose运行)。
- 英格斯托(
mcp_kafka/kafka_to_redis.py): 使用来自Kafka的消息,反序列化Avro有效载荷,并在Redis中聚合计数。 - FastMCP API(
mcp_kafka/mcp_server.py): 提供MCP工具(get_usage_metrics,count_action)以便AI代理查询聚合数据。
先决条件
- Docker和Docker Compose
- Python 3.14+
uv(建议用于依赖关系管理)
设置
-
启动基础设施 启动Kafka、模式注册表、Kafka UI、Redis和RedisInsight:
docker-compose up -d- Kafka用户界面: 通过以下方式访问 http://localhost:8080
- RedisInsight用户界面: 通过以下方式访问 http://localhost:8001
- 要将RedisInsight连接到数据存储,请单击“添加Redis数据库”并使用
redis作为主持人和6379作为端口。停止/将用户名和密码留空。
- 要将RedisInsight连接到数据存储,请单击“添加Redis数据库”并使用
-
再进行 如果你有
uv安装:uv sync否则,使用
pip:pip install . -
准备主题和模式 您可以轻松创建主题,注册模式,并可选地向其提供虚拟数据:
uv run mcp-kafka create-topic my-history uv run mcp-kafka schema uv run mcp-kafka feed my-history -
运行Ingestor 启动Kafka消费者来处理消息:
uv run mcp-kafka ingest -
运行MCP服务器 启动FastMCP API,通过stdio将数据暴露给外部工具(AI代理):
uv run mcp-kafka start-server -
使用MCP检查器(GUI)进行测试 如果你想在浏览器中手动测试和查看你的MCP工具,你可以使用官方的MCP检查器:
npx -y @modelcontextprotocol/inspector uv run mcp-kafka start-server注意:如果您在Windows上使用PowerShell
npx如果被阻止,您可以运行:cmd.exe /c npx -y @modelcontextprotocol/inspector uv run mcp-kafka start-server
配置
设置通过中的Pydantic设置进行管理 config.py。您可以使用环境变量或 .env 文件。