Back to MCP directory
publicPublicdnsLocal runtime

lenses-mcp

Lenses MCP服务器是一个用于连接Lenses数据操作平台的模型上下文协议服务器,支持通过SQL查询和操作Apache Kafka集群中的数据,提供多种传输模式,包括Docker部署。

article

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。传输模式:stdiohttpsse | | PORT | 可选。默认值为 8000。监听端口(仅在 httpsse 传输方式下使用) |

旧版环境变量(用于向后兼容):

  • LENSES_API_HTTP_URLLENSES_API_HTTP_PORT
  • LENSES_API_WEBSOCKET_URLLENSES_API_WEBSOCKET_PORT

这些变量会自动从 LENSES_URL 派生,但可以显式设置以覆盖默认值。

传输端点

  • stdio:标准输入/输出(无网络端点)
  • http/mcp 处的 HTTP 端点
  • sse/sse 处的服务器发送事件(Server-Sent Events)端点

构建 Docker 镜像

若要在本地构建 Docker 镜像,请运行以下命令:

docker build -t lensesio/mcp .
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client