MCP
MCP Setup
Connect a client with a static token or OAuth
Option A: static bearer token
Best for Claude Code, Cursor and scripts.
- Open Settings → API tokens, click Create token, pick a name, the scopes and optionally one project. Copy the
ifmcp_…token: it is shown once. - Configure the client with the server URL and the token as a bearer credential.
Claude Code:
claude mcp add --transport http iforevents https://mcp.iforevents.com/mcp \
--header "Authorization: Bearer ifmcp_..."Cursor (.cursor/mcp.json):
{
"mcpServers": {
"iforevents": {
"url": "https://mcp.iforevents.com/mcp",
"headers": { "Authorization": "Bearer ifmcp_..." }
}
}
}Rotate or revoke the token from the same page when a machine is retired.
Option B: OAuth 2.1
Hosted clients (Claude.ai, ChatGPT) discover the authorization server from https://mcp.iforevents.com/.well-known/oauth-protected-resource/mcp, register dynamically, and send you to a consent page where you pick the organization, the projects and the scopes. Tokens are short-lived and refreshed automatically; you can revoke a client's access from Settings → API tokens.
Scopes
| Scope | Unlocks |
|---|---|
analytics:read | overview, time series, top events, funnels, retention, segments |
projects:read | project list and event schema |
users:read | user lists with masked contact details |
users:pii | unmasked emails and names (opt-in) |
export:read | CSV samples |
A tool called without its scope answers with an error naming the missing scope instead of partial data.
Troubleshooting
401: the token was revoked, expired or belongs to another environment (dev vs production URLs).403 insufficient_scope: create a token with the extra scope; existing tokens cannot be widened.429: per-minute limit or monthly quota reached; the response says which.