Skip to main content

Elements MCP Server: Connect, Understand, Secure & Troubleshoot

A complete guide to the Elements MCP server: connecting your AI assistant, how it works, security & admin controls, supported tools, troubleshooting, and what you can do with it.

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:

  1. In your terminal, run:

    claude mcp add --transport http elements https://<your-api-host>/api/v1/mcp

  2. Inside Claude Code, run /mcp and choose 'elements' to sign in.

  3. Approve access in the browser tab that opens.

Claude Desktop and claude.ai

  1. Open 'Settings' → 'Connectors' (in both claude.ai and Claude Desktop) and click 'Add custom connector'.

  2. 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.

  3. 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

  1. Open ~/.cursor/mcp.json and add:

    {  "mcpServers": {    "elements": { "url": "https://<your-api-host>/api/v1/mcp" }  }}

  2. 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

  1. Open .vscode/mcp.json in your workspace (or use the Command Palette: 'MCP: Add Server') and add:

    {  "servers": {    "elements": {      "type": "http",      "url": "https://<your-api-host>/api/v1/mcp"    }  }}

  2. 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:

  1. In your terminal, run:

    codex mcp add elements --url https://<your-api-host>/api/v1/mcp

  2. Run codex mcp login elements and 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

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

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

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

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

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

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

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

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?

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?

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.

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?

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.

Did this answer your question?