Segment Workspace MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Segment Workspace MCP Serverlist all my sources"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Segment Workspace MCP Server
A local Model Context Protocol server that lets Claude Desktop, Gemini CLI, or any other MCP-compatible client query and operate on a Segment workspace through the Segment Public API — built on FastMCP.
It's aimed at engineers who develop Segment functions and debug identity resolution, and exposes ~40 tools: read-only inspection across sources, destinations, functions, tracking plans, delivery metrics, audiences, computed traits, warehouses, destination filters, and transformations, plus gated mutation tools (create/update/delete/deploy) for functions, destination filters, transformations, and deletion/suppression regulations.
How it fits together
You (natural language)
↓
Claude Desktop / Gemini CLI
↓
MCP protocol (stdio)
↓
This FastMCP server (runs locally)
↓
Segment Public API SDK
↓
Your Segment workspaceRelated MCP server: Attio MCP Server
Quick start
Create a virtualenv and install dependencies:
uv venv --python $(brew --prefix python@3.12)/bin/python3.12 source .venv/bin/activate uv pip install fastmcp python-dotenv httpx uv pip install git+https://github.com/segmentio/public-api-sdk-python.gitGenerate a Segment Public API token. In the Segment app: Workspace Settings → Access Management → Tokens. Requires Workspace Owner.
Add the token to a
.envfile next toserver.py(never commit this file — see.gitignore):SEGMENT_PUBLIC_API_TOKEN=sgp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxFor Profile API tools (
get_profile_traits,get_profile_events, etc.), also set a space-scoped token:SEGMENT_PROFILE_TOKEN_<space_id>=spa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # or, for single-space setups: SEGMENT_PROFILE_TOKEN=spa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxRegister with your MCP client.
Gemini CLI:
fastmcp install gemini-cli server.py --server-name segment-workspaceClaude Desktop — add to
claude_desktop_config.json:{ "mcpServers": { "segment-workspace": { "command": "/abs/path/to/.venv/bin/python", "args": ["/abs/path/to/server.py"], "env": { "SEGMENT_PUBLIC_API_TOKEN": "sgp_..." } } } }
For a full walkthrough (including first-time Homebrew/Python/Node setup on a Mac), see docs/SETUP_GUIDE.md and docs/Claude_Desktop_Segment_MCP_Setup.md.
Safety: the confirmation gate
Every destructive tool (create / update / delete / deploy) takes a confirm: bool = False parameter. The first call always returns a preview of what would happen and makes no change. The client is instructed to show that preview to the user and only re-call with confirm=True after explicit approval. Combined with the MCP client's own per-call approval prompt, every mutation is confirmed twice before it executes.
Contributing
See CONTRIBUTING.md for how the code in server.py is organized and how to add or change a tool.
License
See LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tduong-sys/segment-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server