Agent Integration
Connect Elixium to Claude and your AI coding assistants. Access your backlog, update stories, and get AI guidance — one approach for every agent: point it at an Elixium MCP endpoint.
Agent connections
Jira, Confluence and Slack reach your agent through the vendors' own MCP servers, running alongside the Elixium MCP.
Elixium holds no Atlassian or Slack credential and copies none of their content. Each developer's agent authenticates as you, reads what you can read, and any update it posts back carries your identity.
Setup
- Add the Atlassian MCP and/or the Slack MCP to the same agent client that runs the Elixium MCP. Both authenticate as you; no admin step in Elixium.
- Paste the full URL of a Jira issue, Confluence page or Slack thread into a story's text. Elixium lists it under External References when an agent orients on the story, and offers to mirror a transition to a linked Jira issue.
Bare issue keys such as PROJ-412 are ignored on purpose: Elixium's own readable IDs (INDTEK-812) share that shape and fill our story bodies, so a bare-key matcher would put phantom tickets in every brief. Paste the link.
Two limits to know
- Elixium cannot fence content it does not fetch. Your agent reads the vendor directly, so treat an unfamiliar page or thread as untrusted input; the boundary is your agent client's, not Elixium's.
- Elixium cannot see what those calls cost. Its usage reporting covers only its own contribution; take the vendor-side figure from your agent client.
One Integration, Every AI Agent
Elixium uses the Model Context Protocol (MCP) — the universal standard adopted by GitHub Copilot, Claude, Cursor, Gemini, and more. Configure once, use everywhere.
One Path Across Every Subscription
Every deployment model works the same way — your agent connects to an MCP endpoint. Only the endpoint (and how you authenticate to it) differs:
| Deployment | Endpoint | Auth |
|---|---|---|
| Hosted (SaaS) | https://connect.elixium.ai/mcp | OAuth 2.1 sign-in — no key, nothing stored in files |
| Self-hosted | https://connect.<your-domain>/mcp | OAuth via your deployment's identity provider (endpoint discovery metadata) |
| Air-gapped / offline | local stdio server (@elixium.ai/mcp-server) | Workspace API key — no traffic leaves your network |
The per-agent instructions below show the hosted URL; self-hosted deployments substitute their own connect URL, and air-gapped installs use the stdio config shown in each section.
Claude (Desktop & Web): One-Click Connector
For the Claude desktop app and claude.ai, connect Elixium as a remote MCP connector: paste one URL and sign in. No API key, no config files, nothing to install.
- In Claude, open Settings → Connectors → Add custom connector.
- Paste the connector URL:https://connect.elixium.ai/mcp
- Click Add, then Connect — Claude opens an Elixium sign-in page.
- Sign in (Google, GitHub, or Microsoft), choose the workspace to connect, and click Allow.
- Done — Claude can now read and update that workspace's board. Try: "What stories are in Current?"
Why the connector beats a pasted key: you sign in with OAuth 2.1 instead of copying an API key. The connection is scoped to the one workspace you pick, carries your own permission level, can be revoked anytime, and refreshes automatically so you stay connected — no long-lived secret living on your machine.
Claude Desktop tip: if clicking Add shows "server URL already exists", fully restart the Claude desktop app — the connector will be in your list when it reopens. This is a known Claude Desktop quirk, not an Elixium error.
Connect Your Coding Agent
Each agent connects with either the remote entry (one URL, OAuth sign-in on first use, no credential in any file) or the stdio config (key-based local server — required for air-gapped, works everywhere else too).
🟣 Claude Code
Fastest: one command, then sign in when prompted:
claude mcp add --transport http elixium https://connect.elixium.ai/mcp
Or create .mcp.json in your project root (shared with your team; the X-Elixium-Board header pins the board for this repo):
{
"mcpServers": {
"elixium": {
"type": "http",
"url": "https://connect.elixium.ai/mcp",
"headers": { "X-Elixium-Board": "<YOUR_BOARD_SLUG>" }
}
}
}Run /mcp inside Claude Code to check the connection and complete the OAuth sign-in. Air-gapped? Use the stdio config shape below with "mcpServers" in .mcp.json.
🐙 GitHub Copilot (VS Code)
MCP support is GA as of VS Code 1.102. Create .vscode/mcp.json in your project — note Copilot uses the servers root key:
{
"servers": {
"elixium": {
"type": "http",
"url": "https://connect.elixium.ai/mcp",
"headers": { "X-Elixium-Board": "<YOUR_BOARD_SLUG>" }
}
}
}Gallery alternative: Elixium is listed in the VS Code MCP Server Gallery — Command Palette → "MCP: Add Server" → search "elixium", or find it in the GitHub MCP Registry. The gallery installs the key-based stdio server and prompts for the environment variables listed below.
🎯 Cursor
Create .cursor/mcp.json in your project:
{
"mcpServers": {
"elixium": {
"type": "http",
"url": "https://connect.elixium.ai/mcp",
"headers": { "X-Elixium-Board": "<YOUR_BOARD_SLUG>" }
}
}
}Cursor signs in via OAuth on first use. Check Settings → MCP for connection status.
✨ Gemini / Google Antigravity
Configure the stdio server in your global or workspace MCP settings:
{
"mcpServers": {
"elixium": {
"command": "npx",
"args": ["-y", "@elixium.ai/mcp-server@latest"],
"env": {
"ELIXIUM_API_KEY": "<YOUR_API_KEY>",
"ELIXIUM_API_URL": "https://<YOUR_TENANT>.elixium.ai/api",
"ELIXIUM_BOARD_SLUG": "main",
"ELIXIUM_USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}⌨️ OpenAI Codex CLI
Create .codex/mcp.json in your project:
{
"mcpServers": {
"elixium": {
"command": "npx",
"args": ["-y", "@elixium.ai/mcp-server@latest"],
"env": {
"ELIXIUM_API_KEY": "<YOUR_API_KEY>",
"ELIXIUM_API_URL": "https://<YOUR_TENANT>.elixium.ai/api",
"ELIXIUM_BOARD_SLUG": "main",
"ELIXIUM_USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}Codex does not support per-server request headers — pin the board with ELIXIUM_BOARD_SLUG (stdio) or select_board in-session.
🏄 Windsurf
Create .windsurf/mcp.json in your project:
{
"mcpServers": {
"elixium": {
"command": "npx",
"args": ["-y", "@elixium.ai/mcp-server@latest"],
"env": {
"ELIXIUM_API_KEY": "<YOUR_API_KEY>",
"ELIXIUM_API_URL": "https://<YOUR_TENANT>.elixium.ai/api",
"ELIXIUM_BOARD_SLUG": "main",
"ELIXIUM_USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}Windsurf does not support per-server request headers — pin the board with ELIXIUM_BOARD_SLUG (stdio) or select_board in-session.
🟠 Claude Desktop — offline / key-based alternative
Recommended: use the hosted connector at the top of this page (https://connect.elixium.ai/mcp) — OAuth sign-in, no API key. The stdio config below is for air-gapped setups or if you specifically want a key-based local server.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"elixium": {
"command": "npx",
"args": ["-y", "@elixium.ai/mcp-server@latest"],
"env": {
"ELIXIUM_API_KEY": "<YOUR_API_KEY>",
"ELIXIUM_API_URL": "https://<YOUR_TENANT>.elixium.ai/api",
"ELIXIUM_BOARD_SLUG": "main",
"ELIXIUM_USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}Pin Your Board
A workspace can have many boards. Pinning tells every session which board this repo works against — unpinned agents fall back to your server-side default, which can silently point at the wrong board.
- Remote entries (Claude Code, Copilot, Cursor): set the
X-Elixium-Boardheader on the server entry, as shown in the configs above. The pin lives in the repo, so every teammate and every session lands on the same board. - Stdio configs (all agents): set
ELIXIUM_BOARD_SLUGin theenvblock. - Agents without header support (Codex, Windsurf) on remote entries: ask the agent to call
select_boardat the start of the session — the choice also persists as your server-side default for later sessions.
Find your board slug in the board URL — e.g. my-project from elixium.ai/tenant/myteam/board/my-project.
Get an API Key (stdio / air-gapped setups)
The remote entry needs no credential at all — just the URL. The stdio server authenticates with a workspace API key:
- Get your API Key — Open the Elixium app and click your profile (top right) to open the Profiletab. Scroll to the Workspaces section, find the card for the workspace you want a key for, and clickGenerate Key. A confirmation prompt will appear; confirm, then copy the key immediately — it is only shown once and cannot be retrieved later. Paste it into your IDE config as
ELIXIUM_API_KEY. To rotate, clickGenerate Key again on the same workspace card — the old key is invalidated as soon as the new one is created. - Find your Board Slug — Copy the slug from your board URL (e.g.,
my-projectfromelixium.ai/tenant/myteam/board/my-project). - Configure your AI Agent — Add the MCP config from your agent's section above.
- Verify — Ask your AI: "What stories are in Current?"
Prerequisites
Remote connection: nothing to install. The stdio MCP server runs via npx (included with Node.js) — no separate installation required; it downloads automatically on first use.
Required for stdio: Node.js 18+
# Check if Node.js is installed
node --version
# If not installed, get it from nodejs.org or use:
brew install node # macOS
Optional: Pre-install the MCP Server
While npx auto-downloads on first run, you can pre-install globally for faster startup:
npm install -g @elixium.ai/mcp-server
If globally installed, change "command": "npx" to "command": "elixium-mcp-server" in your config. For fully offline installs, ship the package from your deployment bundle — see offline install docs.
💡 Tip: The configs above use npx -y @elixium.ai/mcp-server@latest which always fetches the latest version. This is the recommended approach.
Environment Variables (stdio server)
The stdio server is configured with these environment variables (the remote entry needs none of them):
| Variable | Required | Description |
|---|---|---|
| ELIXIUM_API_KEY | Yes | Your workspace API key from Settings |
| ELIXIUM_API_URL | Yes | Your tenant API URL (e.g., https://acme.elixium.ai/api) |
| ELIXIUM_BOARD_SLUG | Recommended | Board slug to connect to (defaults to main) |
| ELIXIUM_USER_EMAIL | Optional | Your email address. Used as the "Requested by" field when creating stories via AI. If not set, defaults to the API key owner's email. |
💡 Tip: Setting ELIXIUM_USER_EMAIL ensures stories you create through your AI assistant are attributed to you, not the workspace API key owner.
Available MCP Tools
Once connected, your AI agent can use these tools:
list_storiesList all stories on the board
get_iteration_contextGet Current + Backlog for planning
create_storyCreate a new story with AC
update_storyUpdate story state, lane, or description
prepare_implementationFetch full context for a story
record_learningLog what you learned from a story
list_epicsList all epics on the roadmap
list_objectivesList workspace objectives (OKRs)
Teaching Your AI Agent
Add a rules file to your repo so the AI knows how to use Elixium effectively.
Rules File Locations
- GitHub Copilot:
.github/copilot-instructions.md - Cursor:
.cursor/rules/elixium.md - Windsurf:
.windsurf/rules/elixium.md - Claude Code:
CLAUDE.mdat repo root - Codex CLI:
AGENTS.mdat repo root
Sample Rules Content
# Elixium Integration At the start of each session: 1. Call `get_iteration_context` to load the board 2. Review Current lane for active work When implementing a story: 1. Call `prepare_implementation` for full context 2. Follow TDD: write tests first 3. Update story state to "started" 4. Commit with story ID in message When complete: 1. Update story state to "finished" 2. Call `record_learning` with outcomes
Built-in Workflows
Initialize ready-to-use workflows in your project:
# Initialize Elixium workflows
npx @elixium.ai/mcp-server init
This creates .agent/workflows/ with:
load-board-context.md— Load board at session startimplement-story.md— Full story implementation flowmanage-board.md— Create/update stories and epics
Security
Hosted Connection: OAuth 2.1 (recommended)
The sign-in flow puts no long-lived secret in any file: sessions use short-lived access tokens with rotating refresh tokens (reuse revokes the whole chain), are scoped to the one workspace you pick with your own permission level, and can be revoked anytime. See API & MCP Security for the full surface.
Tenant-Scoped API Keys (stdio path)
Each API key is hardcoded to your workspace. Even if a key is compromised, it only provides access to your specific projects. Keys can be rotated or revoked at any time from workspace settings.
.cursor/mcp.json to your .gitignore. Claude Code's .claude/settings.local.json is gitignored by default. Remote entries contain no secret and are safe to commit.Troubleshooting
Quick Diagnostic Checklist
- Restart your IDE / agent — MCP servers are loaded at startup. After changing config, you must fully restart (not just reload the window). For Claude Code: exit with
Ctrl+Cor/exit, then relaunch. - Test the command in your terminal first — Run the server manually to check for errors:npx -y @elixium.ai/mcp-server@latestIf this fails or hangs, your IDE won't be able to start it either.
- Verify Node.js is available — The stdio MCP server requires Node.js 18+:node --version # Should be v18+
- Check the config key name — GitHub Copilot uses
"servers", all others use"mcpServers". Using the wrong key silently fails. - Verify your API key — Go to your workspace Command Center (Profile tab) and confirm the key is active and not revoked.
Common Errors
"Invalid API Key" or "401 Unauthorized"
- Double-check the key — copy/paste from Command Center, don't type it manually
- Make sure
ELIXIUM_API_URLincludes your tenant subdomain (e.g.,https://my-team.elixium.ai/api, nothttps://elixium.ai/api) - Check the key hasn't been revoked in workspace settings
- Check for duplicate config files — If you have both
.mcp.json(project root) and.claude/settings.local.json, the.mcp.jsonfile takes precedence. A stale key in.mcp.jsonwill override your updated key. Runcat /proc/$(pgrep -f elixium-mcp)/environ | tr '\0' '\n' | grep ELIXIUM_API_KEYto verify which key the running server is actually using. - Fully quit your IDE — A window reload may not restart the MCP server process. Quit completely and reopen to pick up config changes.
"Board not found" or wrong board
- Confirm
ELIXIUM_BOARD_SLUG(stdio) or theX-Elixium-Boardheader (remote) matches your board URL exactly (case-sensitive) - Default slug is
main— check your board URL to verify - Unpinned remote sessions use your server-side default board — pin per the Pin Your Board section above
"Connection closed" or "Failed to parse message"
- npx stdout pollution (most common): When npx downloads the package for the first time, it prints installation output ("changed 38 packages...") to stdout. MCP uses stdout for JSON-RPC, so the IDE can't parse it and the connection drops. Fix: pre-install globally so npx has nothing to download:Then update your config to use the installed binary:
# Install once
npm install -g @elixium.ai/mcp-server
"command": "elixium-mcp-server", "args": []
- Version managers (asdf, nvm, fnm): These can print reshimming or version-switch messages to stdout/stderr when npx runs, causing the same parse failure. The global install fix above avoids this.
- Windows users: You must wrap npx with
cmd /c:"command": "cmd", "args": ["/c", "npx", "-y", "@elixium.ai/mcp-server@latest"]
- If npx isn't found, use the full path:
which npx(macOS/Linux) orwhere npx(Windows) to find it - Corporate proxies can block npx downloads — the global install with
npm install -g @elixium.ai/mcp-serveralso fixes this
Tools not appearing after connection
- The server may be connected but the env vars are missing — check the required vars (
ELIXIUM_API_KEY,ELIXIUM_API_URL) are set in theenvblock - Try asking your AI: "What MCP tools are available?" to see if Elixium tools are listed
IDE-Specific Diagnostics
🟣 Claude Code
- Run
/mcpto see all server connection statuses - Run
/doctorto validate config files and diagnose errors - Config files:
.mcp.json(project, shareable) or~/.claude/settings.json(user) - Config precedence: If a
.mcp.jsonfile exists in your project root, it takes priority over.claude/settings.local.json. Use only one to avoid stale-key issues when regenerating API keys. - After changing config, fully quit VS Code (not just reload window) — the MCP server process may persist across reloads with the old environment variables.
🐙 GitHub Copilot (VS Code)
- Open Output panel → select "GitHub Copilot" channel for MCP logs
- Check
.vscode/mcp.jsonuses"servers"(not"mcpServers") - Requires VS Code 1.102+ and Copilot extension
🎯 Cursor
- Go to Settings → MCP to see connected servers and connection status
- Config file:
.cursor/mcp.jsonin project root - Restart Cursor completely after config changes (not just reload)
Still stuck? If none of the above helps, check that the config JSON is valid (no trailing commas, correct brackets). You can validate it by pasting into jsonlint.com or running cat your-config.json | python3 -m json.tool.
Need Help?
Book a quick call with our team to get set up.
📅 Book a 30-min Demo