Build a MCP server for Teleport Documentation
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.
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
Install uv
:
curl -Ls https://astral.sh/uv/install.sh | sh
And install packages:
uv pip install -r requirement.txt
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
Replace with your directory path!
{
"mcpServers": {
"teleport-docs": {
"command": "uv",
"args": [
"--directory",
"/path/to/teleport-docs-mcp",
"run",
"main.py"
]
}
}
}
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.