teleport-docs-mcp

greedy52/teleport-docs-mcp

3.2

If you are the rightful owner of teleport-docs-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This document provides a guide to setting up a Model Context Protocol (MCP) server for Teleport documentation, utilizing embeddings stored in a Chroma database.

teleport-docs-mcp

Build a MCP server for Teleport Documentation

How it works

Embeddings generated from teleport docs are saved in a Chroma database. A MCP tool is provided to do the vector search and return the result from the database. Note that no LLM model is used to interpret the result within the MCP tool. It's up to the AI tool that calls the MCP tool to interpret the result.

Use from Dockerhub

https://hub.docker.com/r/stevetelelport/teleport-docs-mcp

stdio

docker run --rm -i stevetelelport/teleport-docs-mcp:v0.1.0

or in config json format:

{
  "mcpServers": {
    "teleport-docs": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "stevetelelport/teleport-docs-mcp:v0.1.0"
      ]
    }
  }
}

note that it takes a few seconds to spin up.

sse

docker run -d --name teleport-docs-mcp-sse -p 8282:8000 stevetelelport/teleport-docs-mcp:v0.1.0 uv run main.py --sse --host 0.0.0.0

Local Development

uv

Install uv:

curl -Ls https://astral.sh/uv/install.sh | sh

And install packages:

uv pip install -r requirement.txt

Build local docker

Build

$ docker build -t teleport-docs-mcp .

Stdio

$ docker run --rm -i teleport-docs-mcp

SSE

$ docker run --name teleport-docs-mcp-sse -d -p 8282:8000 teleport-docs uv main.py --sse --host 0.0.0.0

MCP config (stdio)

Replace with your directory path!

{
  "mcpServers": {
    "teleport-docs": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/teleport-docs-mcp",
        "run",
        "main.py"
      ]
    }
  }
}

Rebuild database

The vector database is prepopulated and provided with this repo. You can refresh the data by removing existing indexes, and copy the latest pages from the teleport OSS GitHub repo.

To prep files:

rm -rf docs/pages
rm -rf docs/pages_fixed
cp /path/to/teleport/docs/pages docs/pages`
cp /path/to/teleport/examples docs/examples`
python3 fix_include.py

To generate new db:

rm -rf chroma_index/
python3 embed.py

It takes a while to generate though.