Tutorial: Installation¶
In this tutorial you'll install Panel Live Server so that the pls command is available in your
terminal. By the end, pls --version will print the installed version.
What You'll Need¶
Install Panel Live Server¶
The [pydata] extra includes the full visualization stack used in these tutorials:
hvplot · plotly · altair · matplotlib · seaborn · holoviews · polars · duckdb · and more
Only need the core server?
Install without extras if you only want to serve your own code and manage packages yourself:
Verify the installation¶
You should see the installed version printed. If the command is not found, ensure your uv tools
directory is on your PATH — run uv tool update-shell and restart your terminal.
Connect to your MCP client¶
Add to .vscode/mcp.json (create if it doesn't exist):
{
"servers": {
"panel-live-server": {
"type": "stdio",
"command": "/path/to/pls",
"args": ["mcp"]
}
}
}
Use your absolute path
Replace "command": "/path/to/pls" with the path printed by which pls above —
e.g. "command": "/home/user/.local/bin/pls"
Add to ~/.cursor/mcp.json:
Use your absolute path
Replace "command": "/path/to/pls" with the path printed by which pls above —
e.g. "command": "/home/user/.local/bin/pls"
Open Cursor Settings → MCP and verify the green dot. Use Agent mode in chat.
Edit the config file for your OS:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Use your absolute path
Replace "command": "/path/to/pls" with the path printed by which pls above —
e.g. "command": "/home/user/.local/bin/pls"
Restart Claude Desktop.
Use your absolute path
Replace /path/to/pls with the path printed by which pls above —
e.g. claude mcp add panel-live-server -- /home/user/.local/bin/pls mcp
claude.ai requires HTTP transport and a public URL. You can use any tunneling service (ngrok, Cloudflare, localhost.run, etc.) — this example uses Cloudflare.
Terminal 1 — start the MCP server:
Use your absolute path
Replace /path/to/pls with the path printed by which pls above —
e.g. /home/user/.local/bin/pls mcp --transport http --port 8001
Terminal 2 — tunnel for the MCP server:
Terminal 3 — tunnel for the Panel server:
Stop Terminal 1, set the Panel tunnel URL, and restart:
export PANEL_LIVE_SERVER_EXTERNAL_URL=<url-from-terminal-3>
/path/to/pls mcp --transport http --port 8001
Then go to claude.ai → Settings → Connectors → Add custom connector and enter
<url-from-terminal-2>/mcp as the URL.
Once connected, ask your AI: "Show me a scatter plot of this data using the show tool."
Without an AI assistant — use the REST API or the browser UI directly.
Add packages to the server environment¶
Because Panel Live Server runs in an isolated tool environment, it executes your Python snippets using the packages installed in that environment. To add a package:
You can chain multiple --with flags:
No server restart is needed — the package is available immediately the next time the server starts.
What You've Learned¶
- Install Panel Live Server as a uv tool with the
[pydata]extras - Verify the installation with
pls --version - Add extra packages to the server environment with
--with
Next Steps¶
- Use the standalone server — create, view, and manage visualizations
- Use the MCP server — enable AI assistants to render visualizations in your IDE