Agents
Connect an AI agent (Claude, Claude Code, Antigravity CLI, VS Code or Cursor) to your Glass Data accounts to query configuration and events in the conversation itself. A single connection reaches the accounts you enable, with an access level chosen for each account. The agent accesses the accounts over the MCP protocol (Model Context Protocol) and operates with the permissions of the user who authorized the connection.
The feature is in testing. Functionality and usage limits may change without prior notice.
The connection is intended for internal use, by the account’s staff. Do not expose the connection to third parties nor embed it into a product offered to the account’s customers. For that use, contact support.
Accounts and access levels
The agent reaches only the accounts you are a user of. For each account, you choose an access level when you authorize the agent. Later, you can change the level in Change access.
| Access | What it authorizes on the account |
|---|---|
| No access | no operation |
| Read | read the settings (event types, fields, metrics, analyses, monitors, rules and lists) and the data (metric readings, events and list items) |
| Read and change | everything in Read, plus create, edit, deactivate and remove fields, create rule drafts and create analysis drafts with their cells |
The data read includes personal data, such as emails, IP addresses and device identifiers, in fields that are not configured as sensitive.
On every call, the platform checks the agent’s access level on the account and the user’s access profile. Both checks must pass. Read and change requires the Editor or Administration profile. On accounts where your profile does not allow editing, the option appears disabled, with the profile it requires.
If a user is removed from an account, that user’s agent loses access to that account. Access to the other accounts does not change.
Connect an agent
Under Agents > Connect agent, the screen shows the MCP server URL. The URL is the same for every account:
https://mcp.glassdata.io/mcp
Select the agent by its logo. The screen shows the agent’s instructions and, when the agent requires it, the client_id. An agent outside the list must be enabled by support before connecting.
Claude
These steps apply to claude.ai, Claude Desktop and the Claude mobile app.
- In Claude, open Customize > Connectors and click Add custom connector.
- Enter
https://mcp.glassdata.io/mcpas the connector URL. - Under OAuth client, choose Use your own OAuth client. The pre-selected option, Use Claude’s published identity, does not work with Glass Data.
- Paste the
client_idshown in Connect agent and leave the client secret blank. - Keep Authentication on Sign in now and Transport on Streamable HTTP, the defaults.
- Click Add and then Connect.
- In the browser, authorize access.
On the Team and Enterprise plans, an organization owner adds the connector under Organization settings > Connectors, with steps 2 to 5. Then each member opens Customize > Connectors, clicks Connect on the Glass Data connector and authorizes their own access.
Claude Code
-
In the terminal, run the command:
claude mcp add --transport http glassdata https://mcp.glassdata.io/mcp - Open Claude Code, type
/mcp, select theglassdataserver and choose Authenticate. - In the browser, authorize access.
Claude Code does not need a client_id.
Antigravity CLI, VS Code and Cursor
For these agents, the Connect agent screen shows a configuration block with the URL and the client_id already filled in.
- Open the agent’s configuration file shown on the screen.
- Paste the configuration block into the file and save. If the file already has other servers, copy only the Glass Data block, as the screen describes.
- Enable the server in the agent, as the screen describes.
- In the browser, authorize access.
In the Antigravity CLI, authorization ends with a code. Copy the code shown in the browser and paste it into the agy window.
Authorize access
The authorization screen is titled Connect <agent> to your accounts. Below the title, the screen shows the address the browser will return to after authorization. Check that address before authorizing.
- For each listed account, choose the Access: No access, Read or Read and change.
- Click Authorize.
The screen lists every account you are a user of. Authorization requires access to at least one account.
For the Glass Data team, the screen shows a single line instead of the list of accounts. On authorization, the agent receives access to every account, with every permission.
Change access
Agents lists the agents you connected, with each agent’s access on the current account, the connection date and the last activity. Last activity is recorded in 15-minute intervals. The screen identifies the agents that were never used.
To change an agent’s access:
- In Agents, open the agent’s row menu and click Edit access….
- Choose the Access for each account. The screen lists every account you are a user of.
- Click Save.
The new access applies from the agent’s next call, with no new authorization.
To pause an agent without disconnecting it, choose No access on every account. To resume, choose the access for each account again.
Disconnect from all accounts, in the row menu, immediately ends the agent’s access to every account. A disconnected agent operates again only after a new authorization. The connections of other agents and other users remain active.
Operations
Every operation takes the account it acts on, by its slug (the account’s identifier, such as store-us). To find the accounts, the agent queries the Accounts operation. When access is missing, the agent receives a refusal that names the account and links the Agents screen where access can be enabled.
The agent queries configuration, events and metrics, manages fields, edits drafts, compares and simulates versions and exports events:
| Operation | Content |
|---|---|
| Accounts | list of the user’s accounts, with the environment (production or test), whether the connection is enabled on each account and what the agent may do there |
| Account | general data of one account, the connection’s access, the user’s profile and the withheld operations, with what would release each one |
| Event types | list of types and the detail of each one, with its fields and the usages of each field (metrics, monitors, tracking, and active or in-observation (shadow) versions of rules and analyses) |
| Fields | values already received by a field, including by a list field with no registered items |
| Events | count of a period’s events in time blocks, with optional split by a field, and the event rows |
| Rules | list of rules and the detail of a version, with its conditions and actions |
| Analyses | list of analyses and the detail of one, with the effect of each cell and the rules that run and record it |
| Metrics | list of metrics, the detail of one (dimensions, aggregations and filters) and the values of a recent period or of a past window, with the expected band and the alerts |
| Monitors | list of monitors and the detail of one, with its criteria |
| Lists | list of the configured lists, the detail of one, the check of up to 100 values and the query of the items |
| Rule drafts | creation of a rule, editing of a draft’s conditions (addition, change, reordering and removal), validation of the draft and comparison of two versions condition by condition |
| Analysis drafts | creation of an analysis, opening of a draft from an existing version, editing of the cells (addition, change, reordering and removal) and comparison of two versions cell by cell |
| Simulation | simulation of a rule or analysis version, including a draft, and of a rule with an analysis draft |
| Export | start of an event export, tracking and download link |
| Field management | creation of a field, editing (name, description, required, inheritance and maximum size), deactivation and removal |
The event query takes the same filters as Explore, including the reference to a list and the comparison between fields. The query covers a recent window, not the account’s whole history.
A metric reading takes a recent period or a past window, with a start and an end in the ISO 8601 <start>/<end> format. The past window is up to 3 years wide.
Deactivating and removing a field follow the same rule as the panel: they are refused while any resource depends on the field, as described in Usages. Before deactivating or removing, the agent can check, without changing anything, whether the operation would be accepted and what depends on the field. The agent does not activate a deactivated field. The Activate action is exclusive to the panel. On system fields, the agent changes only the name and the description.
Version comparison is the same one the panel shows before publishing. For a rule, the comparison indicates the conditions added, removed, changed and moved. For an analysis, the comparison also indicates the changes that restart a cell’s window on publishing, as described in Analysis versions.
Simulating a rule with an analysis draft tests the new rule and the new analysis the rule runs together. Neither one needs to be published.
The agent publishes neither rules nor analyses. Publishing remains in the panel, through comparison and publishing. An analysis draft created by the agent is an ordinary draft in the panel. A rule draft created by the agent counts toward the open drafts limit.
An export started by the agent appears in the account’s export history and draws on the same daily record limit. The download link is valid for a few minutes. The agent gets a new link each time it queries the export.
Each response includes the address of the corresponding article in this documentation. The agent consults the reference instead of deducing the platform’s behavior.
Typical questions
- “Which Glass Data accounts do I have?”
- “On the store-us account, which rule decides payments?”
- “Compare yesterday’s approval rate on the store-us and store-mx accounts.”
- “On the store-us account, which metrics exist over the
statusfield?” - “On the store-us account, simulate the payments rule with a new condition on the BIN before I review it in the panel.”
Usage limits
The agent’s data queries draw on an hourly limit, per user and per account. Exports have a limit of their own. The This hour’s limits card, on the Agents screen, shows the current account’s consumption in Queries and in Exports.
Queries run in the panel draw on the same query limit, but are not blocked. When a limit runs out, the agent receives a refusal with the time remaining until the reset. Each limit resets one hour after the period’s first query.
Beyond these limits, calls are limited per user and per account within a time window, with a value of its own for each operation. On exceeding the limit, the agent receives a refusal and resumes operating in the following window.
A user’s agent runs at most 2 operations at the same time. A third simultaneous call is refused, and the agent retries the call shortly after.
Troubleshooting
The agent says the account is not enabled
The connection has no access to the account. In Agents, open Edit access… in the agent’s row menu and choose Read or Read and change on the account. The agent reaches the account from its next call.
The agent says the profile does not allow the operation
Your access profile on the account does not cover the operation. One example is changing a field with the Analyst profile. The refusal names the required profile. Ask a user with the Administration profile on the account for that profile. Changing the agent’s access does not help, because the barrier is the user’s profile.
The agent does not find the account
Ask the agent to list the accounts. If the account is not on the list, you are not a user of that account. Ask a user with the Administration profile on the account for an invitation.
In Claude, authorization fails because the client is not recognized
The connector was created with Use Claude’s published identity, the form’s pre-selected option. Under Customize > Connectors, edit the Glass Data connector and choose Use your own OAuth client. Then paste the client_id shown in Connect agent and leave the client secret blank.
Authorization fails because the client is not recognized
The agent sent a wrong client_id. In the agent’s form, enter the client_id shown in Connect agent, not the agent’s name. If the agent does not appear in Connect agent, contact support.
The agent refuses a query because of a usage limit
The agent spent the hour’s limit. The refusal gives the time remaining until the reset. Consumption appears under This hour’s limits, on the Agents screen. See Usage limits.