Connect an AI Client
Log in from Claude Code, Codex, claude.ai, ChatGPT or Cursor and ask questions about your data.
Connect your AI client to Semaphor and ask questions about your analytics. You log in once with your Semaphor account, and the agent works across every project you belong to, with your role and permissions.
You need a Semaphor account (organization user) with access to at least one project. For automation or an agent inside your own product, use a token instead: see Connect with a Token.
Pick Your Client
Claude Codeplugin
The Semaphor plugin adds the MCP server and an analytics skill that teaches the agent the discovery and query workflow.
Codexplugin
The same plugin for Codex, with the same skill.
claude.aicustom connector
Add Semaphor as a custom connector in Claude settings.
ChatGPTdeveloper mode
Create an app for Semaphor in ChatGPT developer mode.
Cursormcp.json
Add the server URL to your Cursor configuration.
Claude Code
Install the plugin
claude plugin marketplace add semaphor-analytics/agent-plugin
claude plugin install semaphor@semaphor-analyticsOr, inside a Claude Code session, run /plugin marketplace add semaphor-analytics/agent-plugin, then /plugin install semaphor@semaphor-analytics. Restart Claude Code, or run /reload-plugins, so it picks up the plugin.
Log in
Run /mcp, choose semaphor, and complete the login in your browser.
Check the connection
In a session, /mcp shows the semaphor server and its login state. From the terminal, claude plugin list shows the plugin.
claude plugin marketplace update semaphor-analyticsIf Claude Code still shows an older plugin, reinstall it:
claude plugin uninstall semaphor@semaphor-analytics
claude plugin install semaphor@semaphor-analyticsclaude plugin uninstall semaphor@semaphor-analytics
claude plugin marketplace remove semaphor-analyticsCodex
Install the plugin
codex plugin marketplace add semaphor-analytics/agent-plugin
codex plugin add semaphor@semaphor-analyticsLog in
codex mcp login semaphorCheck the connection
codex plugin list --marketplace semaphor-analytics
codex mcp listcodex plugin marketplace upgrade semaphor-analyticsIf Codex still shows an older plugin, reinstall it:
codex plugin remove semaphor@semaphor-analytics
codex plugin add semaphor@semaphor-analyticscodex plugin remove semaphor@semaphor-analytics
codex plugin marketplace remove semaphor-analyticsclaude.ai
Custom connectors need a Claude plan that supports them.
Add a custom connector
In Claude, open Settings, go to Connectors, and click Add custom connector.
Enter the server
Name it Semaphor and enter the server URL, then click Add:
https://semaphor.cloud/api/mcpSign in
When redirected, sign in with your Semaphor account and authorize the connection. claude.ai registers itself with Semaphor's login server, so you don't need a client ID.
ChatGPT
ChatGPT needs developer mode for custom MCP servers.
Turn on developer mode
In ChatGPT, open Settings, then Apps, then Advanced, and turn on Developer mode.
Sign in
Sign in with your Semaphor account when ChatGPT asks.
Cursor
Add the server
{
"mcpServers": {
"semaphor": {
"url": "https://semaphor.cloud/api/mcp"
}
}
}Sign in
When Cursor connects, complete the Semaphor login in your browser. If the tools don't show up, restart Cursor and check that the file is valid JSON (no trailing commas).
To try what an automation or embedded agent will see, connect Cursor with a token instead: see Connect with a Token.
Ask Your First Question
Start a new conversation and ask:
What data can I analyze in Semaphor?If you belong to one project, the agent uses it automatically. If you belong to several, it lists them and asks which one you mean, then passes that projectId on each call. To switch, name the other project.
You: "What data can I analyze in Semaphor?"
Agent calls: semaphor_list_projects
Agent: "You have 3 projects: Sales, Marketing and Operations. Which one should I use?"
You: "Sales. How many orders did we get last month?"
Agent calls: semaphor_get_analysis_context with projectId "p_abc123"
Agent calls: semaphor_list_semantic_domains, semaphor_list_datasets
Agent calls: semaphor_get_dataset_schema with datasetName "orders"
Agent calls: semaphor_analyze with a previous-month timeWindow
Agent: "You received 4,328 orders last month, up 12% from the month before."
You: "Break that down by region"
Agent calls: semaphor_analyze with region as a dimension
Agent: "West: 1,456 (34%), East: 1,198 (28%), Central: 892 (21%), South: 782 (18%)"Other questions to try:
How did revenue change last quarter, and what drove it?
Which regions are behind target this month?
Check whether my sales dashboard's numbers are right.See Discover and Query for how the agent finds the right data.
Read and Write Access
A login grants read access by default: discovery, queries and dashboards. To let the agent create dashboards or add relationships to a semantic model, you need both:
- An organization role of Author or higher
- The
mcp:writescope, which your client asks for when it requestsmcp:read mcp:writeat login
Without both, the change tools don't appear. Every change is previewed before it's applied: see Making Changes.
Self-Hosted Semaphor
On a self-hosted install, use your Semaphor URL followed by /api/mcp wherever this page uses https://semaphor.cloud/api/mcp.
If Something's Missing
- The tools don't appear: restart the client (
/reload-pluginsin Claude Code), then check/mcporcodex mcp listfor thesemaphorserver. - The server needs a login: complete it with
/mcpin Claude Code orcodex mcp login semaphorin Codex. - A tool you expected is missing: ask the agent to call
semaphor_get_access_context. It reports your access mode, scopes and whether SQL is available.
See Troubleshooting for more.