Anaplan MCP
Unofficial MCP server for Anaplan
The Problem
Anaplan’s Integration API is powerful but requires serious technical expertise. Most teams rely on a handful of model builders to navigate complex models, extract data, and run imports. Everyone else waits. That bottleneck slows down data reviews, onboarding, impact analysis, and routine workflows that should be self-serve.
The Solution: Anaplan MCP
This server wraps the Anaplan Integration API v2 in structured tools that AI assistants like Claude can call on your behalf. Instead of writing API calls or waiting for someone who knows the model, you ask in plain English:
Show me the structure of the Supply Planning model
Pull the current pricing data for all products
Run the monthly demand import and show me the result
Built in TypeScript with support for both stdio (local) and Streamable HTTP (remote) transports. Works with Claude Desktop, Claude Code, claude.ai, and any MCP-compatible client.
Who It’s For
Stop waiting for someone to pull data or explain how a model works. Ask Claude to show you the numbers, walk you through module structure, or run your regular imports.
Analyze model structure, trace formula dependencies, review line item configurations, and identify performance issues through conversation instead of clicking through hundreds of modules manually.
Standard API access using your existing authentication and permissions. No new credentials, no elevated access. Open source for auditability.
What It Can Do
Browse workspaces, models, modules, lists, views, and line items. Inspect import, export, and process definitions. Query users, versions, calendar settings, and task history.
Run imports, exports, processes, and delete actions with automatic task polling. Upload and download files with chunked transfer for large datasets. Manage models and large-volume reads for datasets over 1M cells.
Read cell data from module views. Write values to specific cells. Add, update, and delete list items.
Common Use Cases
Explore structure, list line items with formulas, check dimension usage, and understand how a model is composed.
Pull current data, identify recently added items, read forecast numbers, and get summaries without building custom exports.
Find which modules use a specific list as a dimension, trace line-item references, and identify what a change would affect.
Run monthly imports, export actuals, add batches of new products to master lists, and chain multi-step workflows.
Walk new team members through module structure, explain how the model is organized, and answer questions about what each piece does.
anaplan://orchestration-guide) that AI assistants read automatically. It teaches the correct tool sequences for every workflow: navigation patterns, read and write prerequisites, bulk import lifecycles, large-volume read pagination, and list mutation flows. Every tool description also includes prerequisite hints and next-step guidance, so the AI always knows what to call and in what order.For implementation details (internals, module layout, client compatibility matrix, architecture diagrams), see the GitHub README. That is the canonical technical reference and always reflects the latest release.
Setup Guide
stdio transport). Remote or cloud-hosted MCP deployment is not covered on this page.Prerequisites
Ensure these are in place before starting.
| Requirement | Min Version | Where to get it |
|---|---|---|
| Node.js | 18 or higher | nodejs.org LTS installer, or platform instructions below |
| Git | Any recent | Platform instructions below |
| Claude Desktop | Latest | claude.ai/download |
| Anaplan account | With API access | Ask your Anaplan admin to enable API access if needed |
node --version. You should see v18.x.x or higher. If the command is not found, follow the install instructions in Phase 1, Step 2.Phase 1: Clone and build the server
Complete this phase once, regardless of which auth method you choose.
Open a terminal
Windows + R, type cmd, and press Enter. Or search for “Command Prompt” in the Start menu. No admin privileges needed.Cmd + Space and type “Terminal”.Ctrl + Alt + T.Install Node.js and Git (if not already present)
Run node --version and git --version first. If both report a valid version, skip this step.
- Node.js: download the LTS installer from nodejs.org and run it with default options.
- Git: download from git-scm.com/download/win and install with default options.
# Option A: Homebrew (recommended)
brew install node
# Option B: direct installer
# Download the .pkg from https://nodejs.org and run it
Git installs automatically on first use (triggers Xcode Command Line Tools dialog):
git --version
# Click "Install" in the dialog that appears
Node.js (pick one):
# Option A: nvm (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc # or ~/.zshrc on zsh
nvm install --lts
# Option B: package manager
sudo apt install nodejs npm # Debian/Ubuntu
sudo dnf install nodejs # Fedora/RHEL
Some distro package managers ship an older Node.js version. After installing, run node --version and confirm it is still 18 or higher. If not, use nvm.
Git:
sudo apt install git # Debian/Ubuntu
sudo dnf install git # Fedora/RHEL
After installing, open a new terminal window and confirm with node --version and git --version.
Navigate to your projects folder
Keep the repo in your user folder for easy access.
cd %USERPROFILE%
mkdir Projects
cd Projects
cd ~
mkdir -p Projects
cd Projects
Clone the repository
git clone https://github.com/larasrinath/anaplan-mcp.git
cd anaplan-mcp
C:\Users\<your-username>\Projects\anaplan-mcp.~/Projects/anaplan-mcp.Install dependencies
npm install
Wait for it to finish. Warnings are normal. Only lines starting with npm ERR! indicate a real problem.
If you see EACCES errors, do not use sudo. Fix ownership first, then retry:
sudo chown -R $(whoami) ~/.npm
npm install
Build the TypeScript source
npm run build
Compiles TypeScript to JavaScript. Only needed on first setup and after git pull. Success means no errors, and a dist/ folder appears inside anaplan-mcp.
Note your absolute path
You will need this exact path when configuring Claude Desktop.
echo %CD%
Output will look like: C:\Users\<your-username>\Projects\anaplan-mcp.
claude_desktop_config.json, always use forward slashes in paths. Example: C:/Users/<your-username>/Projects/anaplan-mcp/dist/index.js.pwd
/Users/<your-username>/Projects/anaplan-mcp./home/<your-username>/Projects/anaplan-mcp.Copy this path. You will paste it into the config file in Phase 2.
Phase 2: Configure authentication
Pick your auth method below and the guide will filter to show only the steps that apply. Review the comparison table first if you’re not sure which to choose.
Authentication methods at a glance
| OAuth2 (Recommended) | Certificate | Basic Auth | |
|---|---|---|---|
| Best for | Most users, SSO tenants | Service accounts, automation | Simple, non-SSO accounts |
| What you need | OAuth2 client ID (device grant flow) | Paths to your certificate .pem and private key .pem files | Your Anaplan login email and password |
| Token lifetime | 60 min idle (in-memory) | Session-based | Session-based |
| SSO compatible | Yes | Yes | No |
Option A: OAuth2 (recommended)
OAuth2 is recommended for most users, especially if your Anaplan account uses SSO. On first use, Claude Desktop shows an authorization link in chat. Click it, approve in Anaplan, then retry your request.
What you need: an Anaplan OAuth2 Client ID. Ask your workspace admin to create an OAuth2 client (Device Grant type) and share the Client ID.
Open the Claude Desktop config file
Windows + R, type %APPDATA%\Claude, press Enter. Open claude_desktop_config.json in Notepad. If the file does not exist yet, create it as an empty file.If the folder does not exist yet:
mkdir -p ~/Library/Application\ Support/Claude
# Open the config folder in Finder
open ~/Library/Application\ Support/Claude
# Or edit directly in terminal
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
If the folder does not exist yet:
mkdir -p ~/.config/Claude
# Edit in terminal
nano ~/.config/Claude/claude_desktop_config.json
# Or with a GUI editor
gedit ~/.config/Claude/claude_desktop_config.json
Paste the OAuth2 configuration
If this is your only MCP server, you can replace the entire file contents with the block below. Otherwise, add or update only the anaplan entry inside mcpServers. Substitute your actual path and Client ID.
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["C:/Users/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_CLIENT_ID": "your-client-id-here"
}
}
}
}
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["/Users/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_CLIENT_ID": "your-client-id-here"
}
}
}
}
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["/home/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_CLIENT_ID": "your-client-id-here"
}
}
}
}
Save and fully restart Claude Desktop
Cmd + Q, or right-click the Dock icon and choose Quit. Reopen Claude Desktop.Option B: Certificate authentication
Best for service accounts and automation pipelines. Requires a .pem certificate and private key registered with your Anaplan tenant.
What you need:
- A
.pemcertificate file registered in your Anaplan tenant - The matching private key
.pemfile - The absolute paths to both files
Open the Claude Desktop config file
Windows + R, type %APPDATA%\Claude, press Enter. Open claude_desktop_config.json in Notepad. If the file does not exist yet, create it as an empty file.If the folder does not exist yet:
mkdir -p ~/Library/Application\ Support/Claude
# Open the config folder in Finder
open ~/Library/Application\ Support/Claude
# Or edit directly in terminal
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
If the folder does not exist yet:
mkdir -p ~/.config/Claude
# Edit in terminal
nano ~/.config/Claude/claude_desktop_config.json
# Or with a GUI editor
gedit ~/.config/Claude/claude_desktop_config.json
Paste the Certificate configuration
If this is your only MCP server, you can replace the file contents with the block below. Otherwise, add or update only the anaplan entry inside mcpServers. Use absolute paths to your .pem files. On Windows, use forward slashes.
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["C:/Users/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_CERTIFICATE_PATH": "C:/certs/anaplan-cert.pem",
"ANAPLAN_PRIVATE_KEY_PATH": "C:/certs/anaplan-key.pem"
}
}
}
}
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["/Users/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_CERTIFICATE_PATH": "/Users/<your-username>/certs/anaplan-cert.pem",
"ANAPLAN_PRIVATE_KEY_PATH": "/Users/<your-username>/certs/anaplan-key.pem"
}
}
}
}
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["/home/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_CERTIFICATE_PATH": "/home/<your-username>/certs/anaplan-cert.pem",
"ANAPLAN_PRIVATE_KEY_PATH": "/home/<your-username>/certs/anaplan-key.pem"
}
}
}
}
"ANAPLAN_CERTIFICATE_ENCODED_DATA_FORMAT": "v1" inside the env block. Most tenants do not need this.Save and fully restart Claude Desktop
Fully quit Claude Desktop and reopen it. No browser authorization step is needed for certificate auth.Option C: Basic Authentication (Username / Password)
Simplest to configure but only works for accounts that do not use SSO. If your company uses Single Sign-On to log in to Anaplan, use Option A or B instead.
Open the Claude Desktop config file
Windows + R, type %APPDATA%\Claude, press Enter. Open claude_desktop_config.json in Notepad. If the file does not exist yet, create it as an empty file.If the folder does not exist yet:
mkdir -p ~/Library/Application\ Support/Claude
# Open the config folder in Finder
open ~/Library/Application\ Support/Claude
# Or edit directly in terminal
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
If the folder does not exist yet:
mkdir -p ~/.config/Claude
# Edit in terminal
nano ~/.config/Claude/claude_desktop_config.json
# Or with a GUI editor
gedit ~/.config/Claude/claude_desktop_config.json
Paste the Basic Auth configuration
If this is your only MCP server, you can replace the file contents with the block below. Otherwise, add or update only the anaplan entry inside mcpServers.
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["C:/Users/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_USERNAME": "you@company.com",
"ANAPLAN_PASSWORD": "your-anaplan-password"
}
}
}
}
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["/Users/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_USERNAME": "you@company.com",
"ANAPLAN_PASSWORD": "your-anaplan-password"
}
}
}
}
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["/home/<your-username>/Projects/anaplan-mcp/dist/index.js"],
"env": {
"ANAPLAN_USERNAME": "you@company.com",
"ANAPLAN_PASSWORD": "your-anaplan-password"
}
}
}
}
Your password sits in plain text in this config file. Never commit it to source control, and keep the file private.
chmod 600 <config-file-path>.Save and fully restart Claude Desktop
Fully quit Claude Desktop and reopen it.Phase 3: Verify the connection
Confirm tools are loaded
After reopening Claude Desktop, look for a hammer icon (🛠️) in the chat input area. Click it. You should see Anaplan tools listed.
If the hammer icon is not there, see Troubleshooting below.
Run a safe first test
Type this into Claude Desktop:
“Show me my Anaplan workspaces”
Claude will ask you to approve the show_workspaces tool call. Click Allow. You should see your workspace names and IDs returned.
OAuth2 only: complete the authorization flow
If using OAuth2, Claude shows a URL on first use.
- Copy the URL Claude displays and open it in your browser.
- Log in to Anaplan and approve the device request.
- Return to Claude Desktop and re-run your request.
Tokens are kept in memory. After 60 minutes idle or a Claude Desktop restart, you will need to re-authorize.
Environment variable reference
This section follows the auth selector above and shows only the variables for the currently selected auth method.
| Variable | Description |
|---|---|
ANAPLAN_CLIENT_ID | Your Anaplan OAuth2 client ID (device grant flow) |
| Variable | Description |
|---|---|
ANAPLAN_CERTIFICATE_PATH | Absolute path to your .pem certificate file |
ANAPLAN_PRIVATE_KEY_PATH | Absolute path to your private key .pem file |
ANAPLAN_CERTIFICATE_ENCODED_DATA_FORMAT | Optional. Set v1 for legacy tenants only. Defaults to v2 |
| Variable | Description |
|---|---|
ANAPLAN_USERNAME | Your Anaplan login email address |
ANAPLAN_PASSWORD | Your Anaplan password |
Troubleshooting
| Symptom | Fix |
|---|---|
Unexpected non-whitespace error | JSON config is invalid. Paste it into
jsonlint.com. Common causes: trailing comma or duplicate {} block. |
Server disconnected in Claude | Run node C:/Users/<your-username>/Projects/anaplan-mcp/dist/index.js in Command Prompt to see the real error. Common causes: wrong path (use forward slashes), missing npm run build, or Node.js not installed. |
401 Unauthorized | Credentials are wrong, or tenant uses SSO. Switch from Basic to Certificate or OAuth2. |
| OAuth refresh failed | Session expired (60 min idle or server restarted). Re-authorize in Claude Desktop and retry. |
| Hammer icon missing in Claude | Claude Desktop was not fully restarted. Right-click the system-tray icon and choose Quit, then reopen. |
npm run build fails | Node.js version too old. Run node --version. Install Node.js 18+ from
nodejs.org. |
'node' is not recognized | Node.js not installed or not in PATH. Reinstall from nodejs.org with the installer’s default options, then open a fresh Command Prompt. |
| Backslash paths cause errors in JSON | In claude_desktop_config.json, always use forward slashes. Example: C:/Users/<your-username>/Projects/anaplan-mcp/dist/index.js. |
| Symptom | Fix |
|---|---|
Unexpected non-whitespace error | JSON config is invalid. Paste it into
jsonlint.com. Common causes: trailing comma or duplicate {} block. |
Server disconnected in Claude | Run node ~/Projects/anaplan-mcp/dist/index.js in Terminal to see the real error. Common causes: wrong path, missing npm run build, or Node.js not installed. |
401 Unauthorized | Credentials are wrong, or tenant uses SSO. Switch from Basic to Certificate or OAuth2. |
| OAuth refresh failed | Session expired (60 min idle or server restarted). Re-authorize in Claude Desktop and retry. |
| Hammer icon missing in Claude | Claude Desktop was not fully restarted. Press Cmd + Q (or right-click the Dock icon and choose Quit), then reopen. |
npm run build fails | Node.js version too old. Run node --version. Upgrade via brew upgrade node, or install Node.js 18+ from
nodejs.org. |
command not found: node | Node.js not installed or not in PATH. Install with brew install node, then open a fresh Terminal. |
EACCES / permission denied on npm install | Do not use sudo. Fix npm ownership: sudo chown -R $(whoami) ~/.npm, then retry npm install. |
| Config file not found | The folder may not exist yet. Create it: mkdir -p ~/Library/Application\ Support/Claude. |
| Symptom | Fix |
|---|---|
Unexpected non-whitespace error | JSON config is invalid. Paste it into
jsonlint.com. Common causes: trailing comma or duplicate {} block. |
Server disconnected in Claude | Run node ~/Projects/anaplan-mcp/dist/index.js in your terminal to see the real error. Common causes: wrong path, missing npm run build, or Node.js not installed. |
401 Unauthorized | Credentials are wrong, or tenant uses SSO. Switch from Basic to Certificate or OAuth2. |
| OAuth refresh failed | Session expired (60 min idle or server restarted). Re-authorize in Claude Desktop and retry. |
| Hammer icon missing in Claude | Claude Desktop was not fully restarted. Right-click the tray icon and choose Quit, then reopen. |
npm run build fails | Node.js version too old. Run node --version. Install 18+ via nvm install --lts, or sudo apt install nodejs on Debian/Ubuntu. |
command not found: node | Node.js not installed or not in PATH. Install via nvm (recommended) or sudo apt install nodejs npm, then open a fresh terminal. |
EACCES / permission denied on npm install | Do not use sudo. Fix npm ownership: sudo chown -R $(whoami) ~/.npm, then retry npm install. |
| Config file not found | The folder may not exist yet. Create it: mkdir -p ~/.config/Claude. |
When in doubt, open a terminal and run the server directly:
node C:/Users/<your-username>/Projects/anaplan-mcp/dist/index.js
node ~/Projects/anaplan-mcp/dist/index.js
The error output is always the fastest way to diagnose any issue.
Quick reference: key paths
| Item | Path |
|---|---|
| Claude Desktop config | %APPDATA%\Claude\claude_desktop_config.json |
| Server entry point | C:\Users\<your-username>\Projects\anaplan-mcp\dist\index.js |
| Source code | C:\Users\<your-username>\Projects\anaplan-mcp\src\ |
| Orchestration guide | anaplan://orchestration-guide (auto-loaded by Claude) |
| Item | Path |
|---|---|
| Claude Desktop config | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Server entry point | ~/Projects/anaplan-mcp/dist/index.js |
| Source code | ~/Projects/anaplan-mcp/src/ |
| Orchestration guide | anaplan://orchestration-guide (auto-loaded by Claude) |
| Item | Path |
|---|---|
| Claude Desktop config | ~/.config/Claude/claude_desktop_config.json |
| Server entry point | ~/Projects/anaplan-mcp/dist/index.js |
| Source code | ~/Projects/anaplan-mcp/src/ |
| Orchestration guide | anaplan://orchestration-guide (auto-loaded by Claude) |
- Posted on:
- February 9, 2026
- Length:
- 15 minute read, 3015 words
- Categories:
- Projects
- Tags:
- Anaplan MCP TypeScript AI Open Source
- See Also:
- MacOS ex-Retina Display