README
🚀 🌊🔍 Lenses MCP Server 🔎🌊
Lenses MCP Server 是 Lenses 的 MCP(模型上下文协议)服务器。Lenses 是一款自助式 DataOps 工具,供工程师跨多个集群使用不同版本的 Apache Kafka 构建实时应用程序。借助它,你可以使用 SQL 探索、转换和连接来自不同集群主题的数据,无需额外的数据库。
你可以使用免费的 Lenses 社区版 进行尝试(受用户数量和企业功能限制,如 OAuth)。需要 Lenses v6 或更高版本。
🚀 快速开始
以下是启动 Lenses MCP Server 的详细步骤:
📦 安装指南
1. 安装 uv 和 Python
我们使用 uv 进行依赖管理和项目设置。如果你尚未安装 uv,请遵循 官方安装指南 进行安装。
本项目使用 Python 3.12 构建,为确保 Python 已正确安装,请运行以下命令检查版本:
uv run python --version
2. 配置环境变量
复制示例环境文件:
cp .env.example .env
打开 .env 文件,并填写所需的值,如你的 Lenses 实例详细信息和 Lenses API 密钥。
3. 添加 Lenses API 密钥
通过创建 IAM 服务账户 来创建 Lenses API 密钥。将 API 密钥以变量名 LENSES_API_KEY 添加到 .env 文件中。
4. 安装依赖项并运行服务器
使用 uv 创建虚拟环境,在其中安装项目依赖项,然后使用 FastMCP CLI 以默认的 stdio 传输方式运行 MCP 服务器:
uv sync
uv run src/lenses_mcp/server.py
若要作为远程服务器运行,请使用 http 传输方式:
uv run fastmcp run src/lenses_mcp/server.py --transport=http --port=8000
若要在 Claude Desktop、Gemini CLI、Cursor 等中运行,请使用以下 JSON 配置:
{
"mcpServers": {
"Lenses.io": {
"command": "uv",
"args": [
"run",
"--project", "<ABSOLUTE_PATH_TO_THIS_REPO>",
"--with", "fastmcp",
"fastmcp",
"run",
"<ABSOLUTE_PATH_TO_THIS_REPO>/src/lenses_mcp/server.py"
],
"env": {
"LENSES_API_KEY": "<YOUR_LENSES_API_KEY>"
},
"transport": "stdio"
}
}
}
注意:某些客户端可能需要命令中 uv 的绝对路径。
5. 可选:Context7 MCP 服务器
Lenses 文档可在 Context7 上获取。虽然可选,但强烈建议使用 Context7 MCP 服务器,并在提示中添加 use context7 以确保大语言模型(LLM)可访问的文档是最新的。
6. 使用 Docker 运行
Lenses MCP 服务器可作为 Docker 镜像 lensesio/mcp 使用。你可以根据用例以不同的传输模式运行它。
快速启动
以 stdio 传输方式(默认)运行服务器:
docker run \
-e LENSES_API_KEY=<YOUR_API_KEY> \
-e LENSES_URL=http://localhost:9991 \
lensesio/mcp
以 HTTP 传输方式运行服务器(监听 http://0.0.0.0:8000/mcp):
docker run -p 8000:8000 \
-e LENSES_API_KEY=<YOUR_API_KEY> \
-e LENSES_URL=http://localhost:9991 \
-e TRANSPORT=http \
lensesio/mcp
以 SSE 传输方式运行服务器(监听 http://0.0.0.0:8000/sse):
docker run -p 8000:8000 \
-e LENSES_API_KEY=<YOUR_API_KEY> \
-e LENSES_URL=http://localhost:9991 \
-e TRANSPORT=sse \
lensesio/mcp
环境变量
| 属性 | 详情 |
|------|------|
| LENSES_API_KEY | 必需。你的 Lenses API 密钥(通过 IAM 服务账户 创建) |
| LENSES_URL | 可选。默认值为 http://localhost:9991。Lenses 实例的 URL,格式为 [scheme]://[host]:[port]。对于安全连接,请使用 https://(WebSocket 会自动使用 wss://) |
| TRANSPORT | 可选。默认值为 stdio。传输模式:stdio、http 或 sse |
| PORT | 可选。默认值为 8000。监听端口(仅在 http 或 sse 传输方式下使用) |
旧版环境变量(用于向后兼容):
LENSES_API_HTTP_URL、LENSES_API_HTTP_PORTLENSES_API_WEBSOCKET_URL、LENSES_API_WEBSOCKET_PORT
这些变量会自动从 LENSES_URL 派生,但可以显式设置以覆盖默认值。
传输端点
- stdio:标准输入/输出(无网络端点)
- http:
/mcp处的 HTTP 端点 - sse:
/sse处的服务器发送事件(Server-Sent Events)端点
构建 Docker 镜像
若要在本地构建 Docker 镜像,请运行以下命令:
docker build -t lensesio/mcp .
Scan to join WeChat group