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 live inside Elements, never in your Salesforce org: a new Space, a saved metadata view (a filtered metadata list saved under a name), a diagram, or a user story; 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 diagram, a metadata view, a proposed-change draft, 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 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. Space administrators can review and revoke connections into their Space. Revoking a connection 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 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.

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

One tool, explaining in plain language what an automation does, uses AI to produce its answer. 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 a small set of tools write anything (the Read/Write column below shows which), and none of them delete your data or change your Salesforce org itself. The most significant changes are saved as drafts in Elements for a person to review.

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.

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

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

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

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

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, optionally filtered to a diagram.

Read

generate_stories_from_diagram

Generates AI user stories from selected diagram activities, with headline, description, and acceptance criteria.

Write

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.

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.

Understand your org

These eight 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. 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

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

Model & decide

Skills for evaluating how to make a change before you build it.

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

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.

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 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?

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.

Did this answer your question?