Overview
The Shift MCP server connects to the ByteBrew suite to enable your AI assistant to retrieve analytics for the apps in your studio. Authenticate once with a Shift API Key to answer questions like "what is the D30 LTV of my apps in US, CA, and UK?" or "show me the journey of users completing my tutorial for the last 2 app versions." and the assistant will call the correct Shift tool, resolve your filters, and return the data.
Server Details
The Shift MCP is a remote MCP server over Streamable HTTP. There is nothing to install or run locally. Point your tool at the server URL below and attach your Shift API Key.
https://shift-mcp.bytebrew.io/mcp
Authorization header.
Authentication
The Shift MCP authenticates every request with a Shift API Key. Generate a key from your Studio Settings, then attach it to your MCP client as a Bearer token. There is no separate token-generation call. The key itself is the credential, and it is scoped to the apps owned by your studio account.
Every request to the server must include an Authorization header. See the expected header format below:
Authorization: Bearer YOUR_SHIFT_API_KEY
Create API Key
To create a Shift API Key, navigate to the API Key tab in the Shift Settings and hit the create button.
Delete API Key
To delete a Shift API Key, navigate to the API Key tab in the Shift Settings and hit the delete button next to the key you want to delete.
Claude Desktop
Add the server by editing the claude_desktop_config.json file (Settings → Developer → Edit Config). Claude Desktop connects to remote servers through the mcp-remote bridge, and your Shift API Key is passed via the Authorization header. Place your key in the AUTH_TOKEN environment variable so it is not inlined into the arguments:
{
"mcpServers": {
"bytebrew-shift-mcp-query-api": {
"command": "npx",
"args": [
"mcp-remote",
"https://shift-mcp.bytebrew.io/mcp",
"--transport",
"http-only",
"--header",
"Authorization:${AUTH_TOKEN}"
],
"env": {
"AUTH_TOKEN": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
Fully quit and restart Claude Desktop, then check Settings → Developer to confirm the bytebrew-shift-mcp-query-api server is connected and its tools are listed.
Bearer prefix inside the AUTH_TOKEN value so the full header reads Authorization: Bearer YOUR_SHIFT_API_KEY. The mcp-remote package requires Node.js to be installed.Claude Code
Add the server with the claude mcp add command using the HTTP transport, passing your key with --header:
claude mcp add --transport http bytebrew-shift-mcp-query-api https://shift-mcp.bytebrew.io/mcp --header "Authorization: Bearer YOUR_SHIFT_API_KEY"
Or add it to a project's .mcp.json file to share it with your team (keep real keys out of shared files, use an environment variable):
{
"mcpServers": {
"bytebrew-shift-mcp-query-api": {
"type": "http",
"url": "https://shift-mcp.bytebrew.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
Run /mcp inside Claude Code to confirm the bytebrew-shift-mcp-query-api server is connected.
Cursor
Add the server to ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project root. Cursor uses the url field for remote Streamable HTTP servers and a headers object for authentication:
{
"mcpServers": {
"bytebrew-shift-mcp-query-api": {
"url": "https://shift-mcp.bytebrew.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
Then open Settings → MCP & Integrations and verify bytebrew-shift-mcp-query-api shows a green status with its tools listed.
OpenAI Codex
Add the remote server to ~/.codex/config.toml. Codex connects to Streamable HTTP servers with a url and passes the Shift API Key through http_headers:
[mcp_servers.bytebrew-shift-mcp-query-api]
url = "https://shift-mcp.bytebrew.io/mcp"
http_headers = { "Authorization" = "Bearer YOUR_SHIFT_API_KEY" }
Start a Codex session and run /mcp to confirm the server is connected and its tools are listed.
Google Antigravity
In Antigravity, open Settings → Customizations and click Open MCP Config to edit mcp_config.json. Antigravity uses the serverUrl field for remote servers and a headers object for the Bearer token:
{
"mcpServers": {
"bytebrew-shift-mcp-query-api": {
"serverUrl": "https://shift-mcp.bytebrew.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
Save the file, then open the MCP Servers panel and refresh to load the bytebrew-shift-mcp-query-api tools.
Cursor Agent (CLI)
The cursor-agent CLI automatically discovers the same mcp.json configuration used by the Cursor editor. Add the server to ~/.cursor/mcp.json or your project's .cursor/mcp.json with your key in the headers object:
{
"mcpServers": {
"bytebrew-shift-mcp-query-api": {
"url": "https://shift-mcp.bytebrew.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
In an interactive cursor-agent session, enable the server with the slash command:
/mcp enable bytebrew-shift-mcp-query-api
Gemini CLI
Add the server to your Gemini CLI settings.json (global at ~/.gemini/settings.json or project-scoped at .gemini/settings.json). Gemini CLI uses the httpUrl field for Streamable HTTP servers and a headers object for authentication:
{
"mcpServers": {
"bytebrew-shift-mcp-query-api": {
"httpUrl": "https://shift-mcp.bytebrew.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
Launch gemini and run the /mcp command to list the discovered server and its tools.
JetBrains AI Assistant
In your JetBrains IDE, go to Settings → Tools → AI Assistant → Model Context Protocol (MCP) and click Add. Choose As JSON and paste the following. AI Assistant connects to remote servers over Streamable HTTP using the url field, with a headers object for the Bearer token:
{
"mcpServers": {
"bytebrew-shift-mcp-query-api": {
"url": "https://shift-mcp.bytebrew.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
Apply the settings. The server's tools appear in the MCP section once the connection succeeds.
Visual Studio Code
Create a .vscode/mcp.json file in your workspace. VS Code uses the servers root key, requires "type": "http" for remote servers, and accepts a headers object for authentication:
{
"servers": {
"bytebrew-shift-mcp-query-api": {
"type": "http",
"url": "https://shift-mcp.bytebrew.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_SHIFT_API_KEY"
}
}
}
}
Available Tools
Once connected, the Shift MCP exposes the tools below. Your assistant selects the right tool automatically based on your prompt. Tools are split into discovery tools (which resolve app IDs, filter values, custom events, and AB tests) and query tools for mobile and web apps.
startDate is omitted it defaults to 7 days ago. All data operates on the UTC timezone. Start your session by asking the assistant to list your apps so it can resolve a gameId.Discovery Tools
| Tool | Description |
|---|---|
| App List | Lists the apps/games available to your account with their platform, app name, and bundle-id / package name. Takes no parameters. |
| Filter Values | Returns the set of valid filter values for an app, grouped by filter type (country, os version, build, device, and, for web, browser / browser version / device type / os name, plus mobile attribution sources). Call this to resolve an exact value before passing it to a query filter. Requires gameId. |
| Custom Events | Returns the custom event names and their sub-parameters for an app. Requires gameId. |
| AB Tests | Returns the AB tests for an app. Each test includes filterKeys in test-id:group format for use in the abtests parameter of any query tool. Requires gameId. |
Mobile Query Tools
| Tool | Description |
|---|---|
| New User Data | New user cohort data. |
| Sessions | Session counts. |
| Session Length | Session length data. |
| Playtime | Playtime data. |
| DAU | Daily active users (DAU). |
| Retention | Cohort retention curve (Day N / Week N / Month N). |
| LTV | Cohort Lifetime Value (LTV) from IAP, ad-watched, and custom revenue events. |
| Monetization Overview | High-level monetization overview (ARPDAU, revenue, ad revenue, IAP revenue, ARPU). |
| Revenue Analysis Breakdown | IAP and Ad revenue metrics together or separately, with dimension breakdowns. |
| Custom Mechanics | The Mechanics data playground: custom event and segment analysis with formulas. |
| Event Breakdown Data | Granular custom event breakdowns with aggregators and sub-parameter filters. |
| Target Events Retained | Custom event activity by retained day. |
| User Journey | Most common user paths between a start and/or end event. |
| Ads Retained | Retained average ads watched. |
| Session Length Retained | Retained session length. |
| Playtime Retained | Retained playtime. |
| Cumulative Playtime Retained | Retained cumulative playtime. |
| Purchase Retained | Retention sliced by purchase amount. |
| Session Amount Retained | Retention sliced by session count. |
Web Query Tools
| Tool | Description |
|---|---|
| New User Data | New user cohort data. |
| Sessions | Session counts. |
| Session Length | Session length data. |
| Playtime | Playtime data. |
| DAU | Daily active users (DAU). |
| Retention | Cohort retention curve (Day N / Week N / Month N). |
| Custom Mechanics | The Mechanics data playground for web apps. |
| Event Breakdown Data | Granular custom event breakdowns. |
| User Journey | Most common user paths between a start and/or end event. |
Filters & Parameters
Every query tool takes a date range, and most take the shared filter dimensions below. Filter values that accept lists are passed as comma-separated strings.
Common Parameters
| Parameter | Description |
|---|---|
| gameId | Required. The single Game ID to query. Use the App List tool to resolve it. |
| startDate | Start date, format "YYYY-MM-DD" (e.g. "2021-03-01"). Defaults to 7 days ago if omitted. |
| endDate | End date (exclusive), format "YYYY-MM-DD". |
| country | Country code(s), comma-separated (e.g. "US,GB,DE"). Omit to include all countries. |
| abtests | AB test filter key(s) in test-id:group format, comma-separated. Resolve them with the AB Tests tool. |
| breakdown | Dimensions to group by, comma-separated. Options: Game, Date, BuildVersion, OSVersion, Country, Device, Platform. |
Mobile Filter Dimensions
| Parameter | Description |
|---|---|
| build | Build version(s), comma-separated. |
| osversion | OS version(s), comma-separated. |
| device | Device model(s), comma-separated. |
| attribution | Encoded JSON object mapping a network to its sources, e.g. {"network": "XX", "sources": ["XX ID: (1234)"]}. |
| acquisition | One of 'organic' or 'non-organic'. |
Web Filter Dimensions
| Parameter | Description |
|---|---|
| build | Build version(s), comma-separated. |
| osversion | OS version(s), comma-separated. |
| device | Device model(s), comma-separated. |
| browser | Browser name(s), comma-separated (e.g. Edge, Chrome). |
| browserversion | Browser version(s), comma-separated. |
| devicetype | Device type(s), comma-separated (e.g. Tablet, Desktop). |
| osname | OS name(s), comma-separated (e.g. Windows, Macos). |
Retention Scale (retention & retained tools)
| Parameter | Description |
|---|---|
| scaleType | Retention scale (Days, Weeks, or Months). Defaults to Days. |
| scaledAmount | Number of retention periods, based on the chosen scaleType:
|
| groupBy | Optional breakdown dimension (e.g. BuildVersion). |
Using the Assistant
After connecting the server, prompt your AI assistant with data questions in natural language. The assistant resolves your app and filters using the discovery tools, then calls the right query tool. Use prompts such as:
gameId: "DemoApp" to any query tool to run against a shared demo app.Token Usage
Usage of Shift is calculated by tokens. Each request you make using Shift utilizes tokens. The number of tokens consumed by the request varies based on the time the query takes to execute. The more complex the query, the more time/tokens it takes to complete.
Each pricing tier contains a set of tokens included in the monthly subscription. If you surpass the allotted tokens in your plan, you will be charged overage per token over your subscription's plan. For overage pricing, see your relevant plan on the Shift Settings page.
Turn Off Overage
To stop overage token spend, toggle off the Overage Billing setting in your Shift Settings. Enabling this setting will stop your AI assistant from querying Shift after you've reached the monthly token threshold in your plan.
Set Overage Budgets
To control overage spend, you can select the "Set Overage Budget" button to input a max overage spend per API Key.
Manage Usage
You can view and manage your token usage on the ByteBrew by navigating to the Shift page in your Studio Settings. Under the dashboard you can see how many tokens have been used, and manage Shift API Keys.
Manage Subscription
Manage your Shift plan from your Shift Settings. You can upgrade, downgrade, or cancel your subscription at any time.
Upgrade Plan
To upgrade your plan, go to the Shift Settings and hit "Upgrade".
Downgrade Plan
To downgrade your plan, go to the Shift Settings and hit "Downgrade" to your preferred plan.
Cancel Plan
To cancel your plan, go to your Shift Settings and hit "Cancel".
FAQs
Yes. The Shift MCP requires a Shift API Key generated from your Studio Settings (Admin role required). Pass it as a Bearer token in the Authorization header of your MCP client configuration. Requests without a valid, non-revoked key are rejected.
Every request is scoped to the apps owned by the studio account that the Shift API Key belongs to. The server reads aggregated analytics only. It cannot modify your data, dashboard, or account settings.
Confirm the server URL is exactly https://shift-mcp.bytebrew.io/mcp, that you used the correct field for your tool (url, httpUrl, serverUrl, or servers), and that your Authorization header reads Bearer YOUR_SHIFT_API_KEY with the Bearer prefix intact. Restart your tool or refresh its MCP server list to reload the connection.
Any MCP-compatible client that supports a remote Streamable HTTP server with custom headers works. This page provides setup steps for Claude Desktop, Claude Code, Cursor, OpenAI Codex, Google Antigravity, Cursor Agent, Gemini CLI, JetBrains AI Assistant, and Visual Studio Code.
Usage of Shift is calculated by tokens. Every request consumes tokens, and more complex queries take more time and therefore more tokens to complete. Each pricing tier includes a set number of tokens in the monthly subscription. If you surpass your plan's allotted tokens, you are charged overage per token over the plan. For overage pricing, see your relevant plan on the Shift Settings page.
Navigate to the API Key tab in the Shift Settings and hit the create button. You need an Admin role account to generate a key. Name the API Key based on its utilization to help with organization.
Navigate to the API Key tab in the Shift Settings and hit the delete button next to the key you want to delete. Requests using a deleted key are rejected immediately.
Toggle off the Overage Billing setting in your Shift Settings. With overage stopped, your AI assistant will not query Shift once you reach the monthly token threshold in your plan, so you are never charged beyond your subscription.
Yes. Select the "Set Overage Budget" button in your Shift Settings to input a maximum overage spend per API Key, giving you fine-grained control over how much each key can spend beyond your plan.
Overage tokens will be billed at the end of the month. Any tokens used beyond your plan's monthly allotment are totaled and charged at your plan's overage rate when the billing period closes.
All plan changes are made from your Shift Settings. Hit "Upgrade" to move to a higher plan, "Downgrade" to select a lower plan, or "Cancel" to end your subscription. Note that if you have more active API Keys than the maximum allowed in your selected downgrade plan, you will need to downsize your API Key count before you can downgrade.
If you are not being able to connect using the npx tool for your connector settings, make sure Node is installed on your computer.