Connect your AI assistant to Elements
You can connect your AI assistant to Elements in a few minutes. Once connected, your assistant can use the skills described in 'What you can do with Elements in your AI assistant' to answer questions about your Salesforce Org.
Prerequisites
The Elements MCP server is currently available in closed beta to customers who have been enabled for access.
MCP access has been enabled by Elements for the Space you want to use.
You have an MCP-capable AI assistant. Any client that supports remote MCP servers with the MCP standard's secure sign-in (OAuth 2.1 with PKCE) should work; Elements has been tested with Claude, Codex, and Cursor. Steps for the most common clients are below.
You know your Elements sign-in credentials; you'll sign in with your existing Elements account, the same way you do in the browser.
Find your MCP endpoint
Elements runs in more than one location, so the address your assistant connects to depends on which one your Org uses. Match the URL shown in your browser when you're logged into Elements; never guess based on where you or your company are located.
App URL (what you see in your browser) | MCP endpoint |
app.q9elements.com | |
app.us.elements.cloud | |
app.ja1.elements.cloud | |
app.me1.elements.cloud |
In the steps below, replace <your-api-host> with the host from the right-hand column above, for example api.q9elements.com.
Connect your client
Claude Code
The recommended route installs the Elements skills and the MCP server together as a plugin. Inside Claude Code, run:
/plugin marketplace add Q9Elements/elements-mcp-server/plugin install elements@elements
Then run /mcp, choose 'elements', and approve access in the browser tab that opens.
If you only want the MCP server, without the skills:
In your terminal, run:
claude mcp add --transport http elements https://<your-api-host>/api/v1/mcp
Inside Claude Code, run
/mcpand choose 'elements' to sign in.Approve access in the browser tab that opens.
Claude Desktop and claude.ai
Open 'Settings' → 'Connectors' (in both claude.ai and Claude Desktop) and click 'Add custom connector'.
Enter your MCP endpoint URL, for example
https://api.q9elements.com/api/v1/mcp. You can leave the 'Advanced settings' OAuth fields blank; the MCP server registers your client automatically.Click 'Add', then follow the prompts to sign in and approve access.
If you don't see 'Add custom connector', your Claude plan or organization settings may not allow custom connectors; check Anthropic's current documentation.
On Claude Desktop, you can add the Elements skills as well with npx skills add -g Q9Elements/elements-mcp-server. On claude.ai the connector alone is enough; your assistant uses the tools directly.
Cursor
Open
~/.cursor/mcp.jsonand add:{ "mcpServers": { "elements": { "url": "https://<your-api-host>/api/v1/mcp" } }}Restart Cursor, then approve the sign-in prompt that appears the first time you use an Elements tool.
Add the Elements skills with npx skills add Q9Elements/elements-mcp-server.
VS Code
Open
.vscode/mcp.jsonin your workspace (or use the Command Palette: 'MCP: Add Server') and add:{ "servers": { "elements": { "type": "http", "url": "https://<your-api-host>/api/v1/mcp" } }}VS Code prompts you to sign in through your browser the first time you use an Elements tool. It handles the OAuth sign-in automatically; you provide only the URL.
Codex
The recommended route installs the Elements skills and the MCP server together as a plugin:
codex plugin marketplace add Q9Elements/elements-mcp-server
Then install 'elements' from the list, and run codex mcp login elements to sign in.
If you only want the MCP server, without the skills:
In your terminal, run:
codex mcp add elements --url https://<your-api-host>/api/v1/mcp
Run
codex mcp login elementsand approve access in the browser tab that opens.
Sign in and consent
The first time you connect, Elements opens a browser tab and asks you to sign in with your existing Elements account. After signing in, you choose which Space or Spaces the connection can use, then approve.
If your account only has access to one Space, Elements selects it automatically. You can change which Spaces a connection can use at any time; see 'MCP security & admin controls'.
Verify it's working
Ask your assistant something like "What Elements Spaces can you see?" or "Search my org for a field called…". If you get a real answer back, you're connected.
Then try a first real question:
"Show me the metadata for the Account object, and what depends on it."
"What changed in my org this week? Anything unusual?"
"Run an org health diagnostic and tell me where to look first."
Some of these depend on your Space's plan and licenses; see 'Supported tools in the Elements MCP server' for what each needs. The full menu of capabilities, with example prompts, is in 'What you can do with Elements in your AI assistant'.
Next steps
Next, read 'How the Elements MCP server works' to understand what it can access, and 'MCP security & admin controls' to see how to manage or revoke a connection. If anything didn't work along the way, see 'MCP troubleshooting' at the end of this article.
How the Elements MCP server works
The Elements MCP server lets your AI assistant securely query your Elements and Salesforce architecture data, using the Elements permissions you already have. This section explains what happens behind the scenes when you connect.
Prerequisites
The Elements MCP server is currently available in closed beta to customers who have been enabled for access.
You've connected an AI assistant to Elements; see 'Connect your AI assistant to Elements' above.
One secure endpoint
Your assistant talks to a single Elements address over a secure, authenticated connection. The connection itself stores nothing beyond the sign-in authorization you approved; your password is never shared with your assistant, and no copy of your data is created. There's no separate app or plugin to install on the Elements side; the connection is built into your account.
Diagram: your AI assistant (Claude, Codex, Cursor, or any OAuth 2.1 + PKCE MCP client) connects over MCP/HTTPS to the Elements MCP server, which checks your identity, approved Space(s), and role/plan/licenses on every call before reaching your Space. Your Space holds Salesforce metadata synced one-way, read-only, from your Salesforce org. There is no path between your AI assistant and your Salesforce org, ever.
Uses your existing Elements permissions
A connection never gives your assistant more access than you already have in Elements. Every request is checked against your Elements role, plan, and permissions at the moment it's made, so if your access changes, what your assistant can see changes with it.
Per-Space access
When you connect, you choose which Space or Spaces your assistant can use. It only works in the Spaces you've selected, and a Space must be enabled for the MCP server by Elements before it can be used at all.
What it can access
Today, your assistant can read your Salesforce metadata and architecture data through Elements: objects, fields, flows, dependencies, permissions, and org-health analytics such as automation, technical debt, compliance, and governance. The only things a connection can create or change are a new Space and a saved metadata view (a filtered metadata list saved under a name); everything else is read-only. It does not delete data, and it never overwrites your synced Salesforce metadata.
Supported clients
The Elements MCP server works with any AI assistant whose MCP client supports remote MCP servers with the MCP standard's secure sign-in (OAuth 2.1 with PKCE). It has been tested with Claude, Codex, and Cursor; see 'Connect your AI assistant to Elements' for setup steps.
MCP security & admin controls
This section explains how the Elements MCP server keeps your data safe and how you can govern and audit your connections. It's the section to share with your security team.
Prerequisites
The Elements MCP server is currently available in closed beta to customers who have been enabled for access.
What the server can reach
Elements stores Salesforce metadata and configuration only: things like object and field definitions, flows, Apex classes, validation rules, and permission sets. It never stores Salesforce business records (accounts, contacts, opportunities, transactions), so nothing your AI assistant does through Elements can reach them either.
The MCP server never connects to your Salesforce org, and nothing it does can change your Salesforce org: Elements reads Salesforce metadata, it never writes it. When your assistant creates something, it creates it inside Elements only: a new Space or a saved metadata view.
Authentication
You sign in with your existing Elements account using OAuth 2.1, an open, secure sign-in standard used across the industry. The sign-in flow uses PKCE, an additional safeguard that prevents an intercepted request from being reused by anyone else. You never share an Elements password with your AI assistant; you sign in through your browser, directly with Elements.
You choose what a connection can do
When you approve a connection, you're shown the client (for example, Claude Code) and what it will be able to do; the choice you make is which Space or Spaces it can use. Elements controls which Spaces are licensed for MCP access, and your Space administrator controls the Elements permissions you have, which determine what will actually work. A connection only ever reaches the Spaces you selected; new Spaces are never added to an existing connection automatically.
Per-Space enablement
Elements turns on MCP access for each Space individually; it is a licensed feature. A Space that hasn't been enabled can't be selected when you connect, and Elements checks this again on every single request, so disabling a Space takes effect immediately, even for connections that were approved earlier.
Tenant isolation
A connection only ever works inside the Spaces you granted it; it can't be used to reach any other Space, tenant, or customer's data. Behind the scenes, each access token is cryptographically tied to the Elements MCP server, so even if a token were somehow exposed, it couldn't be replayed against any other Elements service.
Token handling
Access tokens are short-lived and refresh automatically in the background, so you don't need to sign in repeatedly. Elements never stores a token in plain text; only a hashed version is kept, the same way passwords are protected.
Managing and revoking connections
You can review and revoke your own connections at any time: open your Elements profile, select the 'Connected apps' tab, find the connection, and click 'Revoke'. Each connection shows the client, the Space(s) it can use, its scope, and when it was last used. Revoking takes effect immediately. In the GA release, Space administrators will also be able to review and revoke connections into their Space.
Audit logging
Every action your assistant takes through Elements is logged: who made the request, which Space it ran in, what it asked for, and whether it succeeded. Sign-ins, approvals, and revocations are logged too. These records are kept in secure, tamper-resistant storage operated by Elements and used for security monitoring and incident investigation. They aren't currently visible inside the Elements app; if you need a connection's activity investigated, contact Elements support. What you can see yourself, at any time, is every active connection, what it's allowed to do, and when it was last used (on the 'Connected apps' tab of your profile).
Rate limits and safeguards
Each connection is limited to a safe rate of requests, and every request is checked against a strict, predefined set of allowed inputs before it runs, so it can't be used to send unexpected commands. Results are screened on the way back, too: hidden characters that could be used to smuggle instructions to an AI assistant are stripped from every response, and AI-generated explanations are checked and clearly marked so your assistant treats them as information to read, not instructions to follow.
Almost everything is read-only: the only things a connection can create are a new Space and a saved metadata view. Creating them still requires your own Elements permissions. Your assistant acts as you: it can never do more than your Space administrator has already allowed you to do yourself, and approving a connection never raises your own permissions. It cannot delete, export, or overwrite your data.
AI features and your data
One tool uses AI to produce its answer: the one that explains in plain language what an automation does. It runs through the same licensed AI features Elements already offers in the web application; connecting an assistant doesn't add any new AI integration or send your data anywhere new. Only the metadata needed to answer the question is sent, never Salesforce business records, which Elements doesn't hold.
Security certifications
The MCP server runs on the same platform as the rest of Elements. Our platform-level security documentation (including SOC 2, ISO 27001:2022, and our Data Processing Agreement) is available at trust.elements.cloud.
Supported tools in the Elements MCP server
Your AI assistant uses a set of underlying tools to answer questions through Elements. This section lists them for reference; you don't need to call them by name, since the skills described in 'What you can do with Elements in your AI assistant' choose the right one automatically.
Prerequisites
The Elements MCP server is currently available in closed beta to customers who have been enabled for access.
Every tool respects your existing Elements permissions; a tool never returns more than you could already see in the Elements app. The set of available tools grows over time as Elements adds new skills.
Only two tools write anything (create_space and save_metadata_view), and both are additive: nothing in this set deletes, exports, or overwrites your data.
Some tools are only available on certain Elements plans, such as Pro or Enterprise. A tool your Space isn't licensed for won't appear in your assistant's tool list at all; if you try to use an available tool that your Elements permissions don't allow, your assistant lets you know.
Spaces
Tool | What it does | Read/Write |
get_active_space | Shows which Space your assistant is currently using. | Read |
list_authorized_spaces | Lists every Space you're authorized to use. | Read |
set_active_space | Switches your assistant to a different Space. Changes only your own session, not Org data. | Read |
create_space | Creates a new Elements Space. | Write |
Metadata
Tool | What it does | Read/Write |
list_reference_models | Lists the Salesforce Orgs available to search. | Read |
metadata_search | Finds Salesforce metadata (objects, fields, flows, and more) by keyword. | Read |
get_metadata_node | Shows full detail for one metadata item, including its fields and relationships. | Read |
get_dependencies | Shows what a metadata item depends on, and what depends on it. | Read |
explain_automation | Explains, in plain language, what a flow, trigger, or other automation does. | Read |
code_search | Searches Apex code and other metadata source for an exact text, such as an API name or a hardcoded ID. | Read |
get_node_change_history | Shows who changed a metadata item, when, and what changed. | Read |
get_access | Shows which Profiles, Permission Sets, Permission Set Groups, and Groups can access a metadata item, and how many users each one reaches. | Read |
list_supported_metadata_types | Lists the Salesforce metadata types Elements can sync and analyze. | Read |
list_metadata_columns | Lists the attributes you can filter on for a metadata type. | Read |
query_metadata | Builds a filtered list of metadata matching specific criteria. | Read |
save_metadata_view | Saves a filtered metadata list as a named, reusable view. | Write |
run_quick_cleanup_view | Returns one of Elements' ready-made cleanup lists, such as inactive automations or unused fields. | Read |
Org health
Tool | What it does | Read/Write |
get_org_structure | Summarizes the structural shape of your org: automation counts, data-holding objects, and integration technologies. | Read |
get_automation_health | Summarizes the health of your org's automations: flows, triggers, and rules. | Read |
get_tech_debt_summary | Summarizes technical debt across your org, such as inactive or unused metadata. | Read |
get_compliance_summary | Summarizes your org's security and permissions posture across Profiles, Permission Sets, Roles, and Groups. | Read |
get_governance_summary | Summarizes recent change velocity and description coverage across your org. | Read |
get_field_population | Ranks objects by how well their fields are populated with data. | Read |
get_object_dependency_analysis | Ranks objects by how many other components depend on them. | Read |
get_object_dependency_drill_down | Lists the specific components behind an object's dependency count. | Read |
Drill-down
Tool | What it does | Read/Write |
get_analytic_drill_down | Lists the specific metadata items behind any health or governance chart slice. | Read |
What you can do with Elements in your AI assistant
Elements connects to your AI assistant so you can ask questions about your Salesforce Org in plain language, right inside the tools you already use. Seven built-in skills turn a plain-language request into the right Elements lookup, so you get an answer instead of digging through screens.
Prerequisites
The Elements MCP server is currently available in closed beta to customers who have been enabled for access.
You're using an AI assistant with MCP support; Elements has been tested with Claude, Codex, and Cursor.
MCP access has been enabled by Elements for your Space.
You've connected your assistant to Elements. See 'Connect your AI assistant to Elements' above.
Each of these seven skills is built to recognize the kind of question you're asking and call the right Elements lookup automatically; you don't need to learn any special commands. But each capability is a named skill, and if your client has the Elements skills installed (the install steps in 'Connect your AI assistant to Elements' cover this for Claude Code, Codex, and Cursor), you can also invoke one directly by name: the slash form shown with each example. On claude.ai, just ask in plain language.
Work across your Spaces
Ask your assistant which Elements Space it's currently using, switch it to a different Space, or create a new one for a project.
"What Space are you working in right now? Switch to the Acme Corp space."
or directly: /elements-spaces switch to Acme Corp
Explore your Salesforce metadata
Ask about a specific object, field, flow, trigger, or Apex class: what it is, what it depends on, and what it does.
"What does the LoyaltyPointsFlow do, and what does it depend on?"
or directly: /elements-metadata LoyaltyPointsFlow
Audit who can access something
Ask which Profiles, Permission Sets, Permission Set Groups, or Groups can read or edit a field or object, and how many users each one reaches.
"Who can edit the Credit Limit field on Account, and how many people does each permission reach?"
or directly: /elements-access Credit Limit on Account
Build custom metadata lists
Ask for a filtered list of metadata that matches specific criteria, and save it as a named, reusable view.
"List every screen flow still on an old API version, and save that as a view called 'Flows to upgrade.'"
or directly: /elements-metadata-query screen flows on old API versions
Get an org health check
Ask for a full health check of your org (structure, automation, technical debt, compliance, and governance) in one pass, with a ranked summary of where to look first.
"Run a health check on my org and tell me where to look first."
or directly: /elements-org-diagnostic
See what changed recently
Ask what changed in your org over a given period, broken down by metadata type, with unusual spikes or deletion waves flagged.
"What changed in my org this week, and was anything unusual?"
or directly: /elements-change-briefing last 7 days
Find what to clean up first
Ask for a ranked list of what to fix or remove first, based on risk, how many other components depend on it, and how recently it changed.
"What should I clean up first, and why?"
or directly: /elements-tech-debt
More is coming
Elements is extending the MCP server in two further steps: Model & decide (evaluate and design automation changes) and Deliver the change (turn decisions into diagrams and stories). New skills for both will appear here as they ship.
MCP troubleshooting
If your AI assistant can't connect to Elements, or something isn't behaving as expected, start here. Click any question below to expand it.
Prerequisites
Prerequisites
The Elements MCP server is currently available in closed beta to customers who have been enabled for access. You've followed the steps in 'Connect your AI assistant to Elements' above.
I can't connect, or no Spaces appear
I can't connect, or no Spaces appear
This usually means the Space you're trying to use hasn't been enabled for the MCP server yet. MCP access is a licensed feature that Elements turns on per Space. Once the Space you need is licensed, try connecting again and it will appear.
I'm stuck in a sign-in loop
I'm stuck in a sign-in loop
Clear your assistant's saved Elements authorization and try connecting again. In most clients this is an option in the same menu where you added the connection; look for 'Disconnect' or 'Remove server' before reconnecting.
I get a 401 or 405 error when I open the URL
I get a 401 or 405 error when I open the URL
The Elements MCP endpoint only accepts signed-in POST requests, which your client's MCP library sends automatically. A plain browser visit sends a GET request instead, so you'll see an error: 401 Unauthorized if you're not signed in, or 405 Method Not Allowed if you are. Either way, this is expected and doesn't mean the service is down; connect through a supported client instead of opening the URL directly.
I get a 'too many requests' or 'server busy' message
I get a 'too many requests' or 'server busy' message
To keep the service responsive for everyone, each connection is rate-limited and can run up to 20 requests at the same time; the server as a whole also has a limit and may reply 'server busy' under heavy load. You'll see a 429 error when your connection hits its own limit, or a 503 error when the server is busy. Wait a moment and try again; most assistants retry automatically. If it keeps happening, ask your assistant to make fewer requests in parallel.
A large request times out
A large request times out
Large results aren't normally a problem: Elements returns long lists a page at a time, summarizes oversize results with a way to fetch the rest, and runs long analyses in the background while your assistant checks on progress. Each individual request still has an execution limit of about 30 seconds as a backstop, so if one very broad request does hit it, narrow the request (ask for fewer items, or a specific object or metadata type) and try again.
I have access to more than one Space
I have access to more than one Space
If your account belongs to more than one Space, Elements asks you to choose which one (or ones) the connection can use when you first sign in. You can change this selection later; see 'MCP security & admin controls' above. Ask your assistant to switch Spaces at any time, for example: "Switch to the Acme Corp space."
I used the wrong instance host
I used the wrong instance host
Elements runs in more than one location, so an endpoint that works for one Org may not work for another. Always match the URL shown in your browser when you're logged into Elements to the endpoint in the table in 'Connect your AI assistant to Elements' above.
FAQs
Is my data stored outside Elements?
Is my data stored outside Elements?
No. The MCP server reads from the same Elements data your account can already access; no additional copy of your data is created or stored by the connection itself.
Which AI assistants are supported?
Which AI assistants are supported?
Any assistant whose MCP client supports remote MCP servers with the MCP standard's secure sign-in (OAuth 2.1 with PKCE). Elements has been tested with Claude, Codex, and Cursor.
My assistant says it doesn't have a tool, or can't do something these articles describe.
My assistant says it doesn't have a tool, or can't do something these articles describe.
Tool availability depends on your Space's plan and licenses. Tools your Space isn't licensed for are hidden from your assistant entirely, so it may simply say it can't help; and if your connection covers several Spaces, a tool available through one Space returns a clear not-authorized message when used in a Space that doesn't qualify. See 'Supported tools in the Elements MCP server' above for what each capability needs. After a licensing change, start a new conversation so your assistant picks up the updated tool list.
How do I revoke access?
How do I revoke access?
Go to your Elements profile, select the 'Connected apps' tab, find the connection, and click 'Revoke'. Revoking takes effect immediately. In the GA release, Space administrators will also be able to revoke connections into their Space.




