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
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 (CLI and Cowork), Codex CLI, ChatGPT (Work), 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
Each AI assistant connects to Elements in a slightly different way. Find your client below and click it to expand the setup steps.
Claude Code
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
During installation, the plugin asks for 'Elements API host'. Enter the host from the endpoint table above, for example api.q9elements.com. If you skipped this prompt, run /plugin configure elements@elements.
Then run /mcp, choose 'elements', and approve access in the browser tab.
Claude Desktop and claude.ai
Claude Desktop and claude.ai
Open 'Customize' → 'Plugins', click '+ Add' → 'Add marketplace', and enter
Q9Elements/elements-mcp-server.Under 'Plugins' → 'Yours', open 'Elements' and go to its 'Connectors' tab.
Next to 'elements', click 'Add for your team'.
The URL field shows
https://${user_config.apiHost}/api/v1/mcp. Replace${user_config.apiHost}with your host from the endpoint table above, so the URL reads, for example,https://api.q9elements.com/api/v1/mcp; then click 'Continue' and follow the prompts to sign in and approve access. You can leave the 'Advanced settings' OAuth fields blank.
Your Claude plan or organization settings may not allow adding the connector; check Anthropic's current documentation.
Cursor
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.
Get the skills with npx plugins add Q9Elements/elements-mcp-server --target cursor; select elements when the plugin list appears.
VS Code
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.
Get the skills with npx plugins add Q9Elements/elements-mcp-server --target vscode; select elements when the plugin list appears. Agent plugins are a Preview feature in VS Code, so turn on the chat.plugins.enabled setting if your organization manages it.
Codex
Codex
Install the Elements skills as a plugin:
codex plugin marketplace add Q9Elements/elements-mcp-server
codex plugin add elements@elements
Add the MCP server separately, using the endpoint for your instance from the table above:
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.
Start Codex and invoke a skill with $, for example $elements-spaces. If the Elements skills aren't listed, run /skills and turn them on.
The plugin deliberately doesn't bundle the MCP server: the Codex plugin format accepts only a fixed URL, and the right endpoint depends on which Elements instance your Org is on.
ChatGPT
ChatGPT
ChatGPT has no plugin marketplace; the zip installs the Elements skills only. Add the MCP server separately as an app, using the endpoint for your Elements instance from the table above.
Download
elements.zipfrom the repository'sdistfolder.ChatGPT rejects an upload as a duplicate if the plugin name remains on your account, even after uninstalling it; logging out and back in refreshes the plugin list. If an older Elements plugin is installed, uninstall it from 'Plugins' → 'Personal' → the plugin's '…' menu → 'Uninstall', then log out of ChatGPT and back in.
On the 'Plugins' page, click '+', upload
elements.zip, then install it.Open the plugin and click 'Add app'. Enter a name, for example
Elements, set 'Server URL' to the MCP endpoint for your instance from the table above, leave 'Authentication' as 'OAuth', tick 'I understand and want to continue', then click 'Create'.Sign in:
Go to 'Plugins' → 'Personal' → the plugin's '…' menu → 'Manage' → '…' → 'View plugin detail'.
Under 'App', open the app's '…' menu → 'Manage' → 'Connect' (or 'Connect another account') → 'Sign in with <app name>'.
Sign in to Elements and approve access.
Try it:
@Elements.cloud List my Elements.cloud spaces.If the plugin or its tools don't appear, log out of ChatGPT and back in.To update, download the new
elements.zipand use the app's '…' → 'Upload new version', or uninstall and upload again.
Microsoft Copilot Studio
Microsoft Copilot Studio
Copilot Studio connects through a custom connector, and its setup differs from every other client in one way that matters: the sign-in credentials are registered when the maker creates the connector, but nobody actually signs in until someone creates a connection, which is a separate, later step. The steps below match the current Copilot Studio screens; if they've changed, Microsoft's guide, Connect your agent to an existing MCP server, has the latest version.
Before you start: plan to finish every step, including your own first sign-in, in one sitting. A connector that nobody signs in to within 24 hours of creating it stops working (see 'Why the 24-hour deadline matters' below).
In Copilot Studio, open your agent and go to the 'Build' tab.
In the 'Tools' panel, click '+' and choose to add an MCP server.
In the 'Add MCP server' dialog, fill in:
Server name: a short name for the tool, for example
ElementsCloudMCP.Server description: your agent uses this to decide when to call Elements, so be specific, for example "Gives the agent access to this Salesforce org's synced metadata, dependencies, governance, and documentation via Elements.cloud."
Server URL: the MCP endpoint for your instance from the table above, for example
https://api.q9elements.com/api/v1/mcp.Authentication: OAuth 2.0.
Configuration type: Dynamic (with discovery). Elements registers the connector itself, so there is no client ID or secret to create and nothing to set up on the Elements side. If you ever need to enter authorization and token URLs manually, take them from
https://<your-api-host>/.well-known/oauth-authorization-server.
Click 'Create'. Copilot Studio registers the connector with Elements at this point, which starts the 24-hour clock.
In 'Select a connection', open the 'Connection' dropdown (it shows 'Not connected') and choose 'Create new connection'.
Optionally enter a display name for the connection, then click 'Create'.
Sign in with your Elements account in the window that opens, choose which Space or Spaces the connection can use, and approve. See 'Sign in and consent' below.
Back in Copilot Studio, click 'Add'. Your Elements server now appears under 'Tools' on the agent.
Test the agent in the 'Preview' tab with a question such as "What Elements Spaces can you see?", then publish it to the channels you want, such as Teams and Microsoft 365.
Elements accepts the Power Platform consent redirect (https://global.consent.azure-apim.net/redirect/...) automatically; you don't need to add it to an allowlist anywhere in Elements.
The Elements skills can't be installed into Copilot Studio; your agent uses the Elements tools directly. For best results, tell the agent in its instructions to check Elements for anything about your Org rather than answering from general Salesforce knowledge.
Why the 24-hour deadline matters. A registration that has never completed a sign-in is discarded after 24 hours. Because Copilot Studio registers the connector's credentials up front, a connector that is built and then handed over days later fails with invalid_client ("The client_id is not registered"), which reads like a broken setup rather than something that simply expired. The fix is to recreate the connector and sign in straight away. Once anyone has signed in successfully the registration is permanent, and this never applies again.
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. Clients are offered the same full scope set by default, though a client may request fewer; you never pick scopes.
If your account only has access to one Space, Elements selects it automatically. To change which Spaces a connection can use, revoke it and reconnect; 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 capabilities depend on your Space's plan and licenses; 'Supported tools in the Elements MCP server' lists them, and per-tool requirements are in the tools reference on GitHub. 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
MCP access is a licensed feature that Elements enables for your Space.
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, ChatGPT, Cursor, Microsoft Copilot Studio, 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 Elements 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. It can also create and change a limited set of things inside Elements: a new Space, a saved metadata view, a process-map or imported diagram draft, draft user stories, a proposed metadata node (a placeholder marked proposed for people to review, not a change to your org), and MetaFields (your own custom fields on metadata, including their values). Everything else is read-only. Nothing it does ever reaches Salesforce: it never creates, updates, deletes, or deploys Salesforce metadata, and it never overwrites your synced copy. There is no delete tool. The one thing to know is that MetaFields overwrite: populating a classification replaces whatever value was there, and narrowing a MetaField's definition can permanently remove values already held in Elements. Publishing an approved diagram version is deliberately not possible here; it stays a password-confirmed step in the Elements web app.
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 (CLI and Cowork), Codex CLI, ChatGPT (Work), 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
MCP access is a licensed feature that Elements enables for your Space.
What the server can reach
Elements stores Salesforce metadata and configuration, along with usage telemetry used by some tools: record counts and Apex execution telemetry from Salesforce Event Monitoring logs. Metadata includes 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 or changes something, it writes only Elements artifacts: a Space, a metadata view, MetaFields and their values, a proposed metadata node, a diagram, or a user story.
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 its requested scope families; clients are offered the same full set by default, though a client may request fewer, and you never pick scopes. 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. To change which Spaces a connection can use, revoke it and reconnect.
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. When no Space is active, Elements uses your Elements default Space if it is among the Spaces you consented to. The active_space_required error appears only when none of your consented Spaces is your default. Elements never uses a Space outside the grant. 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. Refresh tokens rotate on each use and last 30 days from the last refresh, so a connection used at least monthly stays signed in. Elements never stores a token in plain text; only a keyed hash (HMAC-SHA-256) is kept.
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 last signed in. Space administrators can review the connections into their Space and remove their Space from them. Removal takes effect immediately.
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 last signed in, 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.
Actions that create or change something in Elements still require 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 Elements permissions. And nothing your assistant does ever changes your Salesforce org itself. The most significant changes are saved as drafts for a person to review in Elements: a proposed metadata node is clearly marked as proposed in your reference model, and an imported diagram only updates the diagram's working draft; publishing an approved version is a separate, deliberate step.
AI features and your data
Some tools use a large language model to produce answers: explain_metadata_item; the Decision Engine tools run_automation_inventory, run_automation_recommendation, run_schema_inventory, run_schema_recommendation, run_dependency_scan, run_change_impact_analysis, run_architecture_risk_analysis, run_backlog_draft, and get_analysis_result; and generate_process_map and generate_stories_from_diagram. These run 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. AI-generated narrative is screened and marked as untrusted data. Decision Engine runs keep their analysis as internal Elements artifacts.
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
MCP access is a licensed feature that Elements enables for your Space.
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 a small set of tools write anything (the Read/Write column below shows which). There is no delete tool, and no tool ever mutates Salesforce itself; however, update_metafield can irreversibly remove MetaField values held in Elements when applicability is narrowed or options are removed, and set_metafield_values can clear values, so follow the counting-before-destructive-edit recipe in the elements-metafields skill before making those changes.
Some tools are only available on certain Elements plans, such as Pro or Enterprise, or to users with a required role. A tool that no authorized Space makes available through its plan, licenses, and your role won't appear in your assistant's tool list at all; if you call a visible tool in a Space that doesn't qualify, or without the required rights to the specific resource, your assistant lets you know.
Spaces
Tool | What it does | Read/Write |
get_active_space | Shows which Space your assistant is currently using. It reports that Space even when a different Space id is passed. | 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 |
revoke_access | Revokes this client's access to Elements. Also the way to re-authorize with a different space selection; the next request restarts the consent flow. | 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 |
get_inbound_relationship_population | Lists inbound relationship fields for up to 25 objects from synced metadata and ranks them by population percentage. A null percentage means the population is unknown, not zero. | Read |
explain_metadata_item | Explains, in plain language, what a metadata item does: what an automation does, how a field or object gets its value, or the order things run in when a record is saved. | 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 |
list_metafields | Lists your Space's customer-defined MetaFields, including their options, applicability, and remaining capacity. | Read |
create_metafield | Creates one customer-defined MetaField on Salesforce metadata in Elements. | Write |
update_metafield | Updates a MetaField definition; narrowing its applicability or removing options also removes affected values. | Write |
set_metafield_values | Sets or clears MetaField values on many metadata items and handles dependent picklists in bulk. | Write |
list_metafield_dependencies | Lists dependent-picklist matrices between MetaFields, with their field and option labels. | Read |
create_metafield_dependency | Creates a dependent-picklist matrix between two MetaFields. | Write |
update_metafield_dependency | Replaces a MetaField dependency matrix without changing the paired fields. | Write |
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 |
create_proposed_node | Registers a proposed metadata item (a planned object, field, Flow, or Prompt Template) in a reference model, so intended metadata can be tracked and attached to diagrams. | Write |
list_managed_packages | Lists the Salesforce managed packages installed in a reference model, each with its namespace prefix and a per-metadata-type component count. | Read |
plan_package_uninstall | Plans the removal of an installed managed package: inventories its components, sweeps for incoming dependencies, separates real uninstall blockers from package-internal references, flags automations to deactivate, and returns a sequenced removal plan. Its external references include standard polymorphic lookup fields that usually point at most or all custom objects a package adds; these clear when the package goes and are counted separately. It plans only; it never uninstalls. | 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 |
Playbook tools
These tools exist for the Remove Unused Apex playbook and are described on its page. Apex execution telemetry comes from Salesforce Event Monitoring daily Apex event logs; no telemetry does not mean nothing is used.
Tool | What it does | Read/Write |
has_event_monitoring | Checks whether the connected org has daily Apex event logs and reports the observed coverage within 30 days. Finding none is a successful result and does not prove that nothing is used. | Read |
get_unused_apex_candidates | Ranks Apex classes and triggers that may be unused from synced metadata and execution evidence. The analysis may return a disqualified result when there is not enough evidence; completed bundle links expire after 120 seconds. | Read |
Data load impact
Data load impact analysis uses fully synced configuration to show which automations, validations, and locking consequences a planned Salesforce data load can trigger before it runs.
Tool | What it does | Read/Write |
run_data_load_impact | Analyzes one to five load targets for the automations, rules, and record locks they may trigger. It summarizes every target, and its complete evidence bundle link expires after 120 seconds. | 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 |
Agent opportunities
Tool | What it does | Read/Write |
scan_agentic_opportunities | Scans your whole Org and returns one ranked signal vector per object (volume, free-text ratio, automation density, growth, engagement) with the score factors that justify each agentic-opportunity ranking. | Read |
get_object_usage | Returns the full usage and telemetry profile for a single object (record counts, daily deltas, last-activity dates, and engagement) to deep-dive an opportunity. | Read |
Diagrams
Tool | What it does | Read/Write |
list_diagrams | Lists the process-map diagrams in your Space, with your role and edit rights on each. | Read |
get_process_map | Reads an existing diagram as structured data, and polls for completion of an in-progress generation. | Read |
generate_process_map | Generates a UPN process map from a text description, transcript, or uploaded images. | Write |
upload_process_map_image | Uploads an image for use as input to process-map generation. | Write |
export_diagram | Exports a diagram as a ZIP for editing, with presigned download and upload links. | Read |
import_diagram | Imports an edited diagram ZIP back into Elements, replacing the current draft. Releasing an approved version stays a person's job in the Elements UI. | Write |
generate_org_to_process | Generates org-to-process diagrams for a Salesforce lifecycle object (Opportunity, Case, Lead…) from the org's actual record types, lifecycle fields, and synced automations. | Write |
Stories
Tool | What it does | Read/Write |
list_stories | Lists user stories in your Space, 20 per page by default and up to 100. | Read |
generate_stories_from_diagram | Generates AI user stories from selected diagram activities, with headline, description, and acceptance criteria. | Write |
Decision Engine
Analysis runs in the background: poll get_analysis_result before starting the next step. Elements stores analysis artifacts; requirements and stories remain drafts. Schema creation goes directly from an accepted create-new option to backlog; reuse and extension include dependency, impact, and risk analysis.
Tool | What it does | Read/Write |
run_automation_inventory | Inventories the existing Salesforce automations related to an automation request (step 1 of the automation-review workflow). | Read |
run_automation_recommendation | Recommends implementation options (update existing vs create new) and records the one you pick. | Read |
run_schema_inventory | Inventories objects, fields, and record types relevant to a schema request; clarifies ambiguous parent objects. | Read |
run_schema_recommendation | Recommends schema reuse, extension, or creation and records the selected approach. | Read |
get_analysis_result | Polls the current mission run and returns its finished step result or failure. | Read |
run_dependency_scan | Resolves the target metadata and scans its direct dependencies. | Read |
run_change_impact_analysis | Analyzes change impact and produces a change plan, including a capped deletion cascade when requested. | Read |
run_architecture_risk_analysis | Analyzes the change for architecture risks, with a confirmation gate on high-complexity changes. | Read |
run_backlog_draft | Drafts a requirement and user stories for delivery. The draft is returned for review and is not written into Elements. | 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. Built-in skills turn a plain-language request into the right Elements action, so you get an answer instead of digging through screens.
These fifteen skills are available today. Each one 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. If your client has the Elements skills installed (see 'Connect your AI assistant to Elements' above), you can also invoke a skill by name: use the slash form shown with each example, or $ in Codex (for example $elements-spaces).
Prerequisites
You're using an AI assistant with MCP support; Elements has been tested with Claude (CLI and Cowork), Codex CLI, ChatGPT (Work), 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.
Understand your org
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 and automation bursts 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
Find where to use AI agents
Ask your assistant to scan your whole Org for agentic opportunities and rank them, with the evidence behind each, so you know where an Agentforce agent would pay off.
"Scan my Org and tell me the top few places we should use an Agentforce agent."
or directly: /elements-agent-opportunities
Plan a managed package removal
Ask what it would take to uninstall a managed package. Elements inventories the package's components (as completely as your Space's licensed tools allow), sweeps them for incoming dependencies, separates the real blockers from references that disappear on their own, and hands back a sequenced removal plan, from resolving blockers through a sandbox dry run to post-removal verification. It plans the removal; the uninstall itself stays in your hands.
"What would it take to remove the Consensus package from our org?"
or directly: /elements-package-uninstall Consensus
Across your orgs
Every skill above answers about one org at a time. This one composes those answers into a comparison across all the orgs in your Space.
Compare all the orgs in your Space
Ask for a view across every org you can see. Elements discovers the orgs in your Space, asks you to confirm the list, runs the same query against each one, and produces a self-contained HTML report you can email to someone who has no Elements access and no AI assistant. Every number on the page traces back to the raw response that produced it, and each org carries the timestamp of its last successful sync, so an org that has quietly stopped syncing is flagged rather than averaged in. A worked inventory report ships with it, and you can customize it by describing what you actually want; a technical-debt comparison is available as a data pull while its report is being redesigned. Because each run saves a dated snapshot, running it again next week turns the same report into a trend.
This one needs an assistant that can run Python: the report is produced by a script rather than written by the model, which is what makes the numbers reproducible.
"Give me an overview of our Salesforce orgs."
or directly: /elements-multi-org-analytics
Model & decide
Skills for structuring and classifying metadata, and evaluating how to make a change before you build it.
Define and populate MetaFields
Ask your assistant to set up the custom fields your Space uses to classify Salesforce metadata, connect dependent picklists, populate values in bulk, and verify the result. Definition changes stay in Elements, but narrowing applicability or removing options can purge existing MetaField values across synced Orgs.
"Set up a retention-priority MetaField for our objects, classify them, and verify the result."
or directly: /elements-metafields classify our objects by retention priority
See a Salesforce object's real lifecycle
Ask for the process behind a lifecycle object such as Opportunity, Case, or Lead. Your assistant builds it from the org's actual record types, lifecycle fields, and synced automations rather than a generic template, producing one diagram per record type.
"Show me the Case process."
or directly: /elements-org-to-process Case
Plan an automation or schema change
Ask how best to add or change Salesforce automation, objects, fields, or record types. Your assistant inventories existing metadata and recommends approaches. Once you select one, it analyzes existing targets and drafts a delivery backlog. A create-new schema selection goes directly to the draft. You receive a chat summary and local report; Elements stores analysis artifacts while requirements and stories remain drafts.
"We want Cases auto-assigned by region. What's the best way to build it and what would it affect?"
or directly: /elements-decision-engine
Deliver the change
Skills for turning a decision into diagrams and artifacts.
Create and edit process maps
Ask your assistant to turn a description, transcript, or images into a UPN process map, or to read and edit an existing diagram. Edited diagrams are saved as a draft for you to review and release in Elements.
"Turn this onboarding call transcript into a process map, then add an approval step before go-live."
or directly: /elements-diagrams
Turn a process map into user stories
Ask your assistant to list the user stories in a Space, or to generate stories from the activities on a process diagram, each with a headline, description, and acceptance criteria.
"Generate user stories from the activities on this onboarding diagram."
or directly: /elements-stories
More is coming
Elements keeps extending the MCP server. New skills appear here as they ship.
Playbooks
Playbooks are separate plugins that run a complete Salesforce process end to end. Read 'What is an MCP playbook?' to learn how they work and how to install one.
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
MCP access is a licensed feature that Elements enables for your Space. 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.
Copilot Studio says 'The client_id is not registered'
Copilot Studio says 'The client_id is not registered'
The connector was created more than 24 hours before anyone signed in to it, so Elements discarded its registration. Delete the MCP server from your agent's 'Tools', add it again, and create a connection and sign in straight away. Once one sign-in succeeds, the registration is permanent. See the Microsoft Copilot Studio steps in 'Connect your client' above.
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. Your assistant will report this as a rate limit (rate_limited), too many requests at once (too_many_concurrent_requests), or a busy server (server_busy), and each one says how many seconds to wait. Wait the full time before trying again; retrying sooner won't work, but it won't extend the pause either. Then 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. To change which Spaces a connection can use, revoke it and reconnect; see 'MCP security & admin controls' above. When no Space is active, Elements uses your Elements default Space if it is among those you consented to. The active_space_required error means none of your consented Spaces is your default. 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; never guess based on location.
ChatGPT says a plugin upload is a duplicate
ChatGPT says a plugin upload is a duplicate
The plugin name can remain on your account after you uninstall it. Log out of ChatGPT and back in. If ChatGPT still refuses the upload, the name is held by an earlier upload.
A plugin, its skills, or its tools don't appear in ChatGPT
A plugin, its skills, or its tools don't appear in ChatGPT
After you upload or connect a plugin, log out of ChatGPT and back in.
Codex skills aren't listed
Codex skills aren't listed
Run /skills and turn on the Elements skills you need. Invoke a skill with $, for example $elements-spaces.
Claude Desktop or claude.ai shows ${user_config.apiHost} in the connector URL
Claude Desktop or claude.ai shows ${user_config.apiHost} in the connector URL
Replace ${user_config.apiHost} with your Elements host. See the Claude Desktop and claude.ai steps in 'Connect your client' 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 (CLI and Cowork), Codex CLI, ChatGPT (Work), 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 each authorized Space's plan and licenses and your role there. A tool that none of those Spaces makes available is 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?
Removing the server from your client's config stops that client using it, but the server-side connection remains until its refresh token expires, 30 days after its last refresh. A connection used at least monthly stays signed in. To revoke it immediately, go to your Elements profile, select the 'Connected apps' tab, find the connection, and click 'Revoke'. Space administrators can also revoke connections into their Space. Revoking takes effect immediately.









