MCP Access
This guide explains how to configure MCP clients to access MCP servers served by Teleport.
Prerequisites
-
A running Teleport cluster version 18.0.2 or above. If you do not have one, read Get Started with Teleport or set up a demo environment.
-
The
tctl
andtsh
clients.Installing
tctl
andtsh
clients- Mac
- Windows - Powershell
- Linux
Download the signed macOS .pkg installer for Teleport, which includes the
tctl
andtsh
clients:curl -O https://cdn.teleport.dev/teleport-18.0.2.pkgIn Finder double-click the
pkg
file to begin installation.dangerUsing Homebrew to install Teleport is not supported. The Teleport package in Homebrew is not maintained by Teleport and we can't guarantee its reliability or security.
curl.exe -O https://cdn.teleport.dev/teleport-v18.0.2-windows-amd64-bin.zipUnzip the archive and move the `tctl` and `tsh` clients to your %PATH%
NOTE: Do not place the `tctl` and `tsh` clients in the System32 directory, as this can cause issues when using WinSCP.
Use %SystemRoot% (C:\Windows) or %USERPROFILE% (C:\Users\<username>) instead.
All of the Teleport binaries in Linux installations include the
tctl
andtsh
clients. For more options (including RPM/DEB packages and downloads for i386/ARM/ARM64) see our installation page.curl -O https://cdn.teleport.dev/teleport-v18.0.2-linux-amd64-bin.tar.gztar -xzf teleport-v18.0.2-linux-amd64-bin.tar.gzcd teleportsudo ./installTeleport binaries have been copied to /usr/local/bin
The
tctl
andtsh
clients must be at most one major version behind your Teleport cluster version. Send a GET request to the Proxy Service at/v1/webapi/ping
and use a JSON query tool to obtain your cluster version:curl https://example.teleport.sh/v1/webapi/ping | jq -r '.server_version'18.0.2
- The Teleport MCP Access configured. See our guides for how to set up the MCP Access.
Step 1/2. Installation
First, sign in into your Teleport cluster using tsh login
:
tsh login --proxy=teleport.example.com:443 [email protected]
You can now list the available MCP servers that you can use:
tsh mcp lsName Description Type Labels-------------- ------------------------------------------ ----- --------------------fs Filesystem MCP Server stdio env=prodmcp-everything This MCP server attempts to exercise al... stdio env=dev,sandbox=true
The MCP client configuration can be created using the tsh mcp config
command.
You can choose which servers to configure by using the --labels
flag to filter
by labels or by specifying --all
, which will configure all MCP servers you have
access to.
This command can either generate a configuration file (using the mcpServers
format) for manual MCP client updates or automatically update the MCP client
configuration.
- Claude Desktop
- Cursor
- Others
tsh
can automatically update the Claude Desktop MCP configuration file to
include Teleport's configuration:
tsh mcp config --all --config-client=claudeFound MCP servers:fsmcp-everything
Updated client configuration at:~/Library/Application Support/Claude/claude_desktop_config.json
Teleport MCP servers will be prefixed with "teleport-mcp-" in thisconfiguration.
You may need to restart your client to reload these new configurations. If youencounter a "disconnected" error when tsh session expires, you may also need torestart your client after logging in a new tsh session.
You can also provide a custom path for your Claude Desktop MCPs configuration:
tsh mcp config --all --config-client=/path/to/config.json
After updating the configuration, you need to restart the Claude Desktop app before using the newly added MCPs.
tsh
can automatically update the Global Cursor MCP servers to include
Teleport's configuration:
tsh mcp config --all --config-client=cursorFound MCP servers:fsmcp-everything
Updated client configuration at:/your/home/path/.cursor/mcp.json
Teleport MCP servers will be prefixed with "teleport-mcp-" in thisconfiguration.
You may need to restart your client to reload these new configurations. If youencounter a "disconnected" error when tsh session expires, you may also need torestart your client after logging in a new tsh session.
You can also update a Cursor project MCP servers by providing the path to the file:
tsh mcp config --all --config-client=/path/to/project/.cursor/mcp.json
Currently, tsh
only supports generating the mcpServers
format and some
client-specific formats. Running the config command without any specific options
will output configuration used to start Teleport's STDIO MCP server. You can use
this as a base and modify it to suit your MCP client needs.
tsh mcp config --allFound MCP servers:fsmcp-everything
Here is a sample JSON configuration for launching Teleport MCP servers:{ "mcpServers": { "teleport-mcp-fs": { "command": "tsh", "args": ["mcp", "connect", "fs"] }, "teleport-mcp-mcp-everything": { "command": "tsh", "args": ["mcp", "connect", "mcp-everything"] } }}
Step 2/2. Usage
After configuring your MCP client, the MCP tools and resources should be available.
You can now use the MCP servers as usual. Here is an example of using the
mcp-everything
server through Teleport with Claude Desktop:
Troubleshooting
Server is running but it has an empty list of tools
Besides accessing the MCP servers, you also need permissions for the MCP tools
they provide. You can see which tools are available for you by running
tsh mcp ls -v
.
If you're missing tool permissions, reach out to your Teleport administrator to have them properly configured.
Expired tsh
session
There must be a valid tsh
session during the MCP server startup, or it won't
start.
If your session expires while the MCP server is running, the next tool calls
will fail. You need to run tsh login
again and retry the failed requests. In
such cases, you don't have to restart the MCP client or the MCP server.