Skip to main content

Lenses.io

Project description

🌊🔍 Lenses MCP Server for Apache Kafka 🔎🌊

This is the Lenses MCP (Model Context Protocol) server for Apache Kafka. Lenses offers a developer experience solution for engineers building real-time applications connected to Kafka. It's built for the enterprise and backed by a powerful IAM and governance model.

With Lenses, you can find, explore, transform, integrate and replicate data across a multi-Kafka and vendor estate. Now, all this power is accessible through your AI Assistant or Agent via this Lenses MCP Server for Kafka.

See it explained and in action whilst walking through the streets of New York city!

Try it today with the free Lenses Community Edition (restricted by number of users and enterprise features). Lenses CE comes with a pre-configured single broker Kafka cluster, ideal for local development or demonstration. Connect up to two of your own Kafka clusters and then use natural language to interact with your streaming data.

Table of Contents

1. Install uv and Python

We use uv for dependency management and project setup. If you don't have uv installed, follow the official installation guide.

This project has been built using Python 3.12 and to make sure Python is correctly installed, run the following command to check the version.

uv run python --version

2. Configure Environment Variables

Copy the example environment file.

cp .env.example .env

Open .env and fill in the required values such as your Lenses instance details and Lenses API key.

3. Add Lenses API Key

Create a Lenses API key by creating an IAM Service Account. Add the API key to .env with the variable name, LENSES_API_KEY.

4. Install Dependencies and Run the Server

Use uv to create a virtual environment, install the project dependencies in it and then run the MCP server with the FastMCP CLI using the default stdio transport.

uv sync
uv run src/lenses_mcp/server.py

To run as a remote server, use the http transport.

uv run fastmcp run src/lenses_mcp/server.py --transport=http --port=8000

To run in Claude Desktop, Gemini CLI, Cursor, etc. use the following JSON configuration.

{
  "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"
    }
  }
}

Note: Some clients may require the absolute path to uv in the command.

5. Optional Context7 MCP Server

Lenses documentation is available on Context7. It is optional but highly recommended to use the Context7 MCP Server and adjust your prompts with use context7 to ensure the documentation available to the LLM is up to date.

6. Running with Docker

The Lenses MCP server is available as a Docker image at lensesio/mcp. You can run it with different transport modes depending on your use case.

Quick Start

Run the server with stdio transport (default):

docker run \
   -e LENSES_API_KEY=<YOUR_API_KEY> \
   -e LENSES_URL=http://localhost:9991 \
   lensesio/mcp

Run the server with HTTP transport (listens on 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

Run the server with SSE transport (listens on 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

Environment Variables

Variable Required Default Description
LENSES_API_KEY Yes - Your Lenses API key (create via IAM Service Account)
LENSES_URL No http://localhost:9991 Lenses instance URL in format [scheme]://[host]:[port]. Use https:// for secure connections (automatically uses wss:// for WebSockets)
TRANSPORT No stdio Transport mode: stdio, http, or sse
PORT No 8000 Port to listen on (only used with http or sse transport)

Legacy environment variables (for backward compatibility):

  • LENSES_API_HTTP_URL, LENSES_API_HTTP_PORT
  • LENSES_API_WEBSOCKET_URL, LENSES_API_WEBSOCKET_PORT

These are automatically derived from LENSES_URL but can be explicitly set to override.

Transport Endpoints

  • stdio: Standard input/output (no network endpoint)
  • http: HTTP endpoint at /mcp
  • sse: Server-Sent Events endpoint at /sse

Building the Docker Image

To build the Docker image locally:

docker build -t lensesio/mcp .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_lensesio_lenses_mcp-1.0.1.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_lensesio_lenses_mcp-1.0.1-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_lensesio_lenses_mcp-1.0.1.tar.gz.

File metadata

  • Download URL: iflow_mcp_lensesio_lenses_mcp-1.0.1.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_lensesio_lenses_mcp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c010e2620e90e5a0b1a8d19d3c8ff801f8f6107978b3fbc1aa2b8409429d364d
MD5 feeb8ad9b47bbc385feeb6c74511553a
BLAKE2b-256 8135246a1edbcab3457416f5cace221a8ad3a03be9bf23b59b83de6691b04b88

See more details on using hashes here.

File details

Details for the file iflow_mcp_lensesio_lenses_mcp-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_lensesio_lenses_mcp-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_lensesio_lenses_mcp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8574e669739be2e1a2fdac43788cd53e6eefb5de239df7d8d8f89bcfa90bd596
MD5 bce55f37de08ffca7eca3cec281b791c
BLAKE2b-256 4f6b3205eb132cf00c20af8c30fa9b94e1963b912ec6a56c19dea9caf42d29a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page