Anaplan MCP
This server is an MCP interface to Anaplan that lets AI assistants browse and manage Anaplan models, data, and actions through structured tools.
Explore workspaces and models: list workspaces, models, modules, line items, saved views, lists, dimensions, imports/exports/processes/files/actions, versions, users, and task history.
Read data: read cell values from module views, fetch list items, list dimension items, lookup items by name/code, and handle large-volume reads via paginated view/list read requests.
Write data: write cell values, add/update/delete list items, upload files, and manage list item indexes.
Run actions: execute imports, exports, processes, and delete actions; poll task status, cancel tasks, and download error dumps/logs from failed runs.
Administer models: open/close models, bulk delete closed models, set current period, set fiscal year, and set version switchover dates.
Download/upload files: transfer model files locally or to Anaplan, with optional compression and binary-safe saving to Downloads.
Get metadata and details: inspect module/view layouts, line item formulas and dimensions, import/export/process definitions, model calendar/status, and user/tenant information.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Anaplan MCP list all models in the 'Finance' workspace"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Anaplan MCP
Unofficial MCP server for Anaplan
Setup guide: platform-aware install walkthrough for Windows, macOS, and Linux with OAuth2 / Certificate / Basic Auth options.
A Model Context Protocol (MCP) server that connects AI assistants to Anaplan's Integration API v2. Gives LLMs like Claude direct access to browse workspaces, manage data, run imports/exports, and administer models through 70 structured tools, using your existing Anaplan credentials and permissions.
Built in TypeScript. Supports both stdio (local) and Streamable HTTP (remote) transports. Works with Claude Desktop, Claude Code, claude.ai, and any MCP-compatible client. Includes a built-in orchestration guide that teaches the AI assistant the correct tool sequences for every workflow.
Why This Exists
Anaplan's Integration API is powerful but requires technical expertise to use directly. Most teams rely on a handful of model builders to navigate complex models, extract data, and run imports - creating bottlenecks when others need access to the same information.
This server wraps the API in 70 structured tools that AI assistants like Claude can call on your behalf. Explore models, pull data, run actions, and onboard new team members - all by asking in plain English instead of writing API calls or waiting for someone who knows the model.
For business users: 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.
For model builders and consultants: Analyze model structure, trace formula dependencies, review line item configurations, and identify performance issues - all through conversation instead of clicking through hundreds of modules manually.
For IT and platform teams: Standard API access using your existing authentication and permissions. No new credentials, no elevated access. Open source for auditability. Anaplan data is processed by your AI assistant - locally or through your provider's environment depending on your setup.
Related MCP server: Equinix Fabric MCP
Common Use Cases
Model Documentation:
"Show me the structure of the Supply Planning model"
"List all line items and their formulas in the Revenue module"
"What dimensions does the Margin line item use?"
Data Review:
"Pull the current pricing data for all products"
"Show me which list items were recently added"
"Read the forecast numbers for Q3 and summarize"
Impact Analysis:
"What modules use the Product list as a dimension?"
"Show all line items that reference Cost Per Unit"
"Which views include the Region dimension?"
Automation:
"Run the monthly demand import and show me the result"
"Export sales actuals and save to Downloads"
"Add these 50 new products to the master list"
Onboarding:
"Walk me through the modules in this model"
"How is this model structured? What are the key lists?"
"What changed in this model since last quarter?"
What It Can and Can't Do
What it can do
Browse workspaces, models, modules, lists, and views
Read cell data and list items
Write cell values and manage list items (add, update, delete)
Run imports, exports, processes, and delete actions
Upload and download files
Manage models (open, close, delete, set periods and fiscal year)
Query users, versions, and task history
Model Building Limitations
The Anaplan API does not support:
Creating modules or line items programmatically
Defining formulas through API
Building model structure from scratch
Configuring model calendar programmatically
For model building, use Anaplan's UI or Agent Studio.
Prerequisites
Node.js 18+ - download here
An Anaplan account with API access (any auth method - basic, certificate, or OAuth)
An MCP-compatible client - Claude Desktop (recommended), Claude Code, or any other MCP client
Setup
1. Clone and build
git clone https://github.com/larasrinath/anaplan-mcp.git
cd anaplan-mcp
npm install
npm run build2. Connect to Claude Desktop
Claude Desktop is the easiest way to use this server. Here's how to set it up:
Step 1: Open the config file
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json
If the file doesn't exist yet, create it with {} as the contents.
Tip (Windows): You can type
%APPDATA%\Claudein the File Explorer address bar to jump straight to the folder.
Step 2: Add the Anaplan server
Replace <path> with the absolute path to your cloned repo (e.g. /Users/you/anaplan-mcp on macOS/Linux or C:/Users/you/anaplan-mcp on Windows - always use forward slashes).
Choose one auth method only. For most users, use OAuth2 so Claude can show a sign-in link in chat. Do not set OAuth, certificate, and basic env vars together.
Recommended: OAuth2 (device grant)
{
"mcpServers": {
"anaplan": {
"command": "node",
"args": ["<path>/dist/index.js"],
"env": {
"ANAPLAN_CLIENT_ID": "your-client-id"
}
}
}
}On first use, Claude shows a link in chat, approve it in Anaplan, then retry your request. OAuth tokens are kept in memory only. If the MCP process restarts, or an OAuth session is idle for more than 60 minutes, you'll be prompted to authorize again unless you provide ANAPLAN_REFRESH_TOKEN yourself.
OAuth support is device grant only. ANAPLAN_CLIENT_SECRET, ANAPLAN_OAUTH_AUTHORIZATION_CODE, and ANAPLAN_OAUTH_REDIRECT_URI are ignored by the server.
If you do not want OAuth, use one of these alternatives instead:
Certificate auth
"env": {
"ANAPLAN_CERTIFICATE_PATH": "/path/to/cert.pem",
"ANAPLAN_PRIVATE_KEY_PATH": "/path/to/key.pem"
}ANAPLAN_CERTIFICATE_ENCODED_DATA_FORMAT can be added optionally; defaults to v2. Set v1 only for legacy tenants.
Basic auth
"env": {
"ANAPLAN_USERNAME": "user@company.com",
"ANAPLAN_PASSWORD": "your-password"
}Use this only if you want email/password auth instead of OAuth or certificate auth. If your Anaplan account uses SSO, basic auth may not work unless your tenant allows exception users.
If your config file already has content, add mcpServers inside the existing top-level object - don't create a second {} block.
Step 3: Restart Claude Desktop
Quit Claude Desktop completely (right-click the system tray icon and quit - don't just close the window) and reopen it. You should see the Anaplan tools available (look for the hammer icon in the chat input area).
Troubleshooting:
"Unexpected non-whitespace" error - Your JSON is invalid. Make sure there's only one
{}object in the file and no trailing commas. Paste your config into jsonlint.com to check.Server disconnected - Run
node C:/path/to/anaplan-mcp/dist/index.jsin a terminal to see the actual error. Common causes: wrong path inargs, missingnpm run build, or Node.js not installed.401 Unauthorized when using tools - Your Anaplan credentials are wrong, or your account uses SSO (in which case basic auth won't work - use certificate or OAuth2 instead).
OAuth refresh failed / reauthorization required - The MCP server is up and reached Anaplan, but the saved OAuth session is no longer valid. Re-authorize in your MCP client, then retry the tool.
Model opens in the browser but is missing from discovery / returns metadata 404 - Discovery can omit accessible models, including models in another customer/tenant. Extract the IDs after
/workspaces/and/models/in the browser URL and pass them directly toshow_modulesorshow_imports.show_modeldetailsnow checks these read-only endpoints if global model metadata returns 404 and reports verified access separately from unavailable metadata. Names require discovery, so use explicit IDs for omitted models. This does not grant additional permissions or prove that writes/actions are allowed; no customer prefix or header is added to the Integration API.
Connect to Claude Code
Copy .mcp.json.example to .mcp.json and fill in your credentials. The file is gitignored by default - never commit credentials to version control.
cp .mcp.json.example .mcp.jsonAlternatively, use the CLI:
claude mcp add anaplan -- node /absolute/path/to/anaplan-mcp/dist/index.jsOther MCP clients
Any MCP-compatible client that supports stdio transport can connect. The server expects to be launched as a subprocess with stdin/stdout for communication. Pass Anaplan credentials via environment variables.
Browser-based AI (claude.ai, ChatGPT)
The server also supports Streamable HTTP transport for remote MCP connections from claude.ai, ChatGPT, and other browser-based AI assistants. Deploy to a cloud platform (Fly.io recommended) and connect via the remote MCP integration settings.
Remote HTTP mode is designed for per-session Anaplan OAuth, not a single shared Anaplan user. Set ANAPLAN_CLIENT_ID on the server so each remote session can authorize against Anaplan with its own identity. Basic auth (ANAPLAN_USERNAME/ANAPLAN_PASSWORD) and certificate auth (ANAPLAN_CERTIFICATE_PATH/ANAPLAN_PRIVATE_KEY_PATH) are intentionally not supported in remote HTTP mode — they would collapse every session onto one shared Anaplan identity, breaking per-user permissions and auditability. They remain available for stdio/local use only. If you want an extra outer gate in front of the endpoint, you can also set ANAPLAN_MCP_HTTP_AUTH_TOKEN and have your client or reverse proxy send it as Authorization: Bearer <token>.
See the Remote Deployment Guide for full setup instructions, platform recommendations, and troubleshooting.
Configuration
Environment variables
All configuration is done through environment variables. There are no config files, CLI flags, or settings menus.
Method | Env Vars | Description |
OAuth2 (device grant) |
| Highest priority. Device authorization flow. Claude shows you the URL and code in chat; authorize in browser then retry. Tokens stay in memory only, so restart or >60 minutes of idle time requires another device login unless you set |
Certificate |
| Second priority. PEM certificate + private key, authenticates via CACertificate flow. Data format defaults to |
Basic |
| Lowest priority. Email + password, sends base64 credentials to auth endpoint |
You only need one set of credentials. If multiple are configured, the server picks the highest-priority method automatically.
HTTP transport security
These apply only to npm run start:http / remote MCP deployments:
Variable | Description |
| Required for remote HTTP mode. Each HTTP session uses this OAuth client to authenticate the end user with Anaplan |
| Optional extra edge protection. When set, callers must also send it as |
| Optional JSON body limit for remote HTTP requests. Defaults to |
Where to set environment variables
Claude Code config: Use the
"env"block in.mcp.json(file is gitignored by default)Claude Desktop config: Use the
"env"block in the JSON config (keeps credentials scoped to the server)Shell profile: Export in
.bashrc/.zshrcfor Claude Code CLI usageSystem environment: Set at the OS level if you prefer
Security note: Never commit credentials to version control. Env files and MCP config files are gitignored by default in this repo.
Permissions and Safety
What the server can do
This server has full access to whatever your Anaplan credentials allow. The 70 tools cover both read and write operations:
Read-only tools (safe to use freely):
show_*tools,read_cells,get_list_items,download_file,get_action_statusWrite tools (modify data):
write_cells,add_list_items,update_list_items,delete_list_itemsAction tools (trigger Anaplan processes):
run_import,run_export,run_process,run_deleteAdmin tools (model management):
close_model,open_model,bulk_delete_models,set_currentperiod,set_fiscalyear
Tool approval in Claude Desktop
Claude Desktop prompts you before each tool call. You'll see the tool name and parameters, and can approve or deny. This gives you a chance to review before any action runs. You can also use the "Allow for this chat" option for tools you trust.
Recommendations
Start with read-only. Ask Claude to explore your workspaces and models before running any write operations. Get comfortable with the tool output first.
Test in a dev workspace. If you have a non-production Anaplan workspace, use that while getting familiar with the tools.
Use least-privilege credentials. If your Anaplan admin can create a service account with limited workspace access, use that instead of your personal admin account.
Review before confirming write operations. When Claude proposes to run an import, write cells, or delete items, read the parameters carefully before approving.
Exports and imports are asynchronous. The server polls until they complete (up to 5 minutes). You can cancel a running task with
cancel_taskif needed.
Tools
Model Exploration (37 tools)
Tool | Description |
| List workspaces visible to discovery (may omit otherwise accessible workspaces) |
| Get workspace details (size and active status) |
| List models in a workspace. Optional |
| List models visible to discovery across workspaces. Optional |
| Get model details including state and workspace; on metadata 404, report partial read-access checks without inventing model metadata |
| Check model status (legacy endpoint, often returns 405) |
| List modules in a model |
| Get module details by filtering module list |
| List line items in a module ( |
| List all line items in a model ( |
| List dimensions for a line item |
| List dimension items for a line item/dimension pair |
| List saved and default views in a module |
| List all views in a model (cross-module) |
| Get view axis metadata (rows, columns, pages) |
| List lists (dimensions) in a model |
| Get items from a list |
| Get list metadata including parent/properties/count |
| List all items in a model-level dimension |
| List selected dimension items for a view |
| Resolve dimension items by names/codes |
| List import actions in a model |
| Get import metadata |
| List export actions in a model |
| Get export metadata |
| List process actions in a model |
| Get process metadata |
| List files in a model |
| List model actions (including deletes) |
| Get action metadata |
| Get current period |
| Get fiscal year/calendar settings |
| List version metadata |
| Get current authenticated user |
| List users in tenant scope |
| Get user details by ID |
| List task history for imports/exports/processes/actions |
Bulk Data Operations (28 tools)
Tool | Description |
| Run export task, download output, optionally save locally with |
| Upload file chunks, run import, and poll task completion |
| Run process task and poll completion |
| Run delete action task |
| Initialize chunked upload, upload chunks, and complete file upload |
| Download file by reading all chunk payloads. Text returns inline; binary files should use |
| Delete model file (irreversible) |
| Get status for import/export/process/action task |
| Close (archive) a model |
| Open (wake up) a closed model |
| Delete multiple closed models |
| Set current period |
| Update model fiscal year |
| Set version switchover date |
| Download failed import dump chunks (CSV) |
| Download failed process dump chunks (CSV) |
| Cancel running import/export/process/action task |
| Create large-volume view read request |
| Get large-volume view read request status |
| Download a CSV page from view read request |
| Delete large-volume view read request |
| Preview up to 1000 records from a large list (CSV) before a full large read request |
| Create large-volume list read request |
| Get large-volume list read request status |
| Download a CSV page from list read request |
| Delete large-volume list read request |
| Reset list item index numbering |
| Download Optimizer solver log for a completed action |
Transactional Operations (5 tools)
Tool | Description |
| Read cell data from a module view |
| Write values to specific module cells |
| Add new items to a list |
| Update existing list items |
| Delete list items |
Orchestration Guide
The server exposes a built-in MCP resource (anaplan://orchestration-guide) that AI assistants read automatically. This guide teaches the correct tool sequences for every workflow category:
Navigation -- workspace -> model -> module -> line items/views
Reading data -- discover modules, find views, read cells (with fallback to large volume reads for >1M cells)
Writing data -- resolve line item dimensions and item IDs before calling write_cells
Bulk imports -- inspect import definition, upload data to source file, run import, check status, download error dump if failed
Bulk exports -- single-step run_export handles the full lifecycle
Processes -- run chained actions, monitor with get_action_status
Large volume reads -- create request, poll until complete, download pages, clean up
List mutations -- find list items, then add/update/delete
Every tool description also includes prerequisite hints ("Use show_imports first to find importId") and parameter descriptions explain where each value comes from ("from show_lineitems or show_alllineitems"). Key workflow tools append "Next steps" guidance to their responses.
Architecture
src/
auth/ # Authentication providers (basic, certificate, oauth) + token manager
api/ # HTTP client with retry logic + 17 domain-specific API wrappers
tools/ # MCP tool registrations (exploration, bulk, transactional) + response hints
resources/ # MCP resource content (orchestration guide)
server.ts # Wires auth > client > APIs > MCP server + registers resources
index.ts # Entry point (stdio transport)
http.ts # Entry point (Streamable HTTP transport)
docs/
README.md # Integration documentation index
api/ # Anaplan Integration API v2 reference
architecture/ # Runtime diagrams (request flow, trust boundary, subsystem map)
guides/ # Integration tool workflows and remote deploymentThree layers:
Auth layer - pluggable providers behind a common
AuthProviderinterface. TheAuthManagerselects the right provider from env vars and handles token lifecycle.API layer -
AnaplanClienthandles all HTTP communication with the Anaplan API. 17 domain wrappers provide typed methods for each endpoint. Auto-paginates list endpoints using Anaplan'smeta.pagingmetadata.Tools layer - registers MCP tools on the server with zod schemas for input validation. Each tool delegates to the appropriate API wrapper and formats results. Key tools include next-step hints to guide multi-tool workflows.
See the documentation index for Integration API and tool guides. For detailed runtime diagrams (request flow, trust boundary, subsystem map) see docs/architecture/overview.md.
Custom Skills
The skills/ folder holds Claude Code project-level skills - reusable instruction sets that the AI assistant loads automatically during your session.
A template is provided at skills/example.md. Copy it, rename it, and fill in your instructions. Claude Code will pick it up as a skill available in this project.
Skills are gitignored by default (personal workflows vary), with only the example tracked. Add your own without worrying about committing them.
Disclaimers
Unofficial personal project - not affiliated with, endorsed by, or supported by Anaplan. Uses the official Anaplan Integration API v2 - no undocumented endpoints. Users are responsible for compliance with Anaplan's Terms of Service. No warranty provided; use at your own risk.
License
MIT - see LICENSE file for details. Covers the code in this repository only. Anaplan's API and service are subject to Anaplan's Terms of Service and Acceptable Use Policy.
Available Tools
70 toolsadd_list_itemsA
Add new items to a list. Supports parent (hierarchy placement) and subsets (subset membership). Use show_lists to find listId. Item names must be unique.
Inputs: workspaceId (required), modelId (required), listId (required), items (required).
bulk_delete_modelsA
Bulk delete closed models (WARNING: irreversible). Models must be closed first.
Inputs: workspaceId (required), modelIds (required).
cancel_taskA
Cancel a running task. taskId comes from the run_* response or show_tasks.
Inputs: workspaceId (required), modelId (required), actionType (required), actionId (required), +1 more.
close_modelA
Close (archive) a model. Requires workspace admin. Must be closed before bulk_delete_models.
Inputs: workspaceId (required), modelId (required).
create_list_readrequestA
Start a large volume list read (for lists too large for get_list_items). Lifecycle: create -> poll with get_list_readrequest -> download pages with get_list_readrequest_page -> cleanup with delete_list_readrequest.
Inputs: workspaceId (required), modelId (required), listId (required).
create_view_readrequestA
Start a large volume view read (for views too large for read_cells). Lifecycle: create -> poll with get_view_readrequest -> download pages with get_view_readrequest_page -> cleanup with delete_view_readrequest.
Inputs: workspaceId (required), modelId (required), viewId (required), exportType.
delete_fileA
Delete a file from a model (WARNING: irreversible). Use show_files to find the fileId.
Inputs: workspaceId (required), modelId (required), fileId (required).
delete_list_itemsA
Remove items from a list (WARNING: irreversible). Specify id or code for each item. Use get_list_items to find values.
Inputs: workspaceId (required), modelId (required), listId (required), items (required).
delete_list_readrequestA
Delete a large volume list read request to free server resources. Always call this after downloading all pages.
Inputs: workspaceId (required), modelId (required), listId (required), requestId (required).
delete_view_readrequestA
Delete a large volume view read request to free server resources. Always call this after downloading all pages.
Inputs: workspaceId (required), modelId (required), viewId (required), requestId (required).
download_fileA
Download file content from a model. Text files are returned inline; for binary files, set saveToDownloads=true to preserve the exact bytes.
Inputs: workspaceId (required), modelId (required), fileId (required), saveToDownloads, +1 more.
download_importdumpA
Download error details from a failed import task as CSV. Data is ephemeral (~48 hours). Prerequisites: importId from show_imports, taskId from run_import response or show_tasks.
Inputs: workspaceId (required), modelId (required), importId (required), taskId (required).
download_optimizer_logA
Download Optimizer solver log for a completed optimizer action. Logs are removed after 48 hours.
Inputs: workspaceId (required), modelId (required), actionId (required), correlationId (required).
download_processdumpA
Download error details from a failed process task as CSV. Data is ephemeral (~48 hours). Prerequisites: processId from show_processes, taskId from run_process response, objectId from the failed step.
Inputs: workspaceId (required), modelId (required), processId (required), taskId (required), +1 more.
get_action_statusA
Check status of a running task. Poll until taskState is COMPLETE or FAILED. Use includeProcessDetails=true for step timing. taskId from run_* response.
Inputs: workspaceId (required), modelId (required), actionType (required), actionId (required), +2 more.
get_list_itemsA
Get items in a list. Use includeAll=true for subsets, properties, and selective access details. Returns item IDs for write_cells. For >1M items, use create_list_readrequest.
Inputs: workspaceId (required), modelId (required), listId (required), includeAll, +2 more.
get_list_readrequestA
Poll status of a large volume list read. When status is COMPLETE, use get_list_readrequest_page to download each page. requestId comes from create_list_readrequest response.
Inputs: workspaceId (required), modelId (required), listId (required), requestId (required).
get_list_readrequest_pageA
Download one page (CSV) from a completed large volume list read. Pages are 0-based. After all pages, use delete_list_readrequest.
Inputs: workspaceId (required), modelId (required), listId (required), requestId (required), +1 more.
get_view_readrequestA
Poll status of a large volume view read. When status is COMPLETE, use get_view_readrequest_page to download each page (0-based). requestId comes from create_view_readrequest response.
Inputs: workspaceId (required), modelId (required), viewId (required), requestId (required).
get_view_readrequest_pageA
Download one page (CSV) from a completed large volume view read. Pages are 0-based. After downloading all pages, use delete_view_readrequest to free server resources.
Inputs: workspaceId (required), modelId (required), viewId (required), requestId (required), +1 more.
lookup_dimensionitemsA
Look up dimension items by name or code to get their IDs. Useful for resolving human-readable names to itemIds before write_cells.
Inputs: workspaceId (required), modelId (required), dimensionId (required), names, +1 more.
open_modelA
Open (wake up) a model. May return 202 if model is loading.
Inputs: workspaceId (required), modelId (required).
preview_listA
Preview up to 1000 records from a large list (CSV) before initiating a full large read request
Inputs: workspaceId (required), modelId (required), listId (required).
read_cellsA
Read cell data from a module view. Use pages param to select specific page dimensions. For reports across ALL products/customers, use run_export instead -- do NOT call read_cells in a loop per item. viewId can be a saved view or moduleId (default). For >1M cells, use create_view_readrequest.
Inputs: workspaceId (required), modelId (required), moduleId (required), viewId (required), +4 more.
reset_list_indexB
Reset list item index numbering. Note: requires model ID and list ID (name resolution not supported for this tool).
Inputs: modelId (required), listId (required).
run_deleteA
Execute a delete action on a model. Use show_actions first to find the delete action ID.
Inputs: workspaceId (required), modelId (required), deleteActionId (required).
run_exportA
Execute an export and return the data inline. Best for bulk reports across all products/customers/regions -- prefer this over calling read_cells in a loop. Handles the full run-wait-download lifecycle. Use show_exports first.
Inputs: workspaceId (required), modelId (required), exportId (required), saveToDownloads, +1 more.
run_importA
Upload CSV/JSON data to a file, then execute an import action. Use mappingParameters to target a specific dimension (e.g., import into 'Actual' version). Prerequisites: show_imports for importId, show_files for fileId. Check results with get_action_status; download_importdump for failures.
Inputs: workspaceId (required), modelId (required), importId (required), fileId (required), +2 more.
run_processA
Execute a process (chain of imports/exports/deletes). Use mappingParameters to target a specific dimension at runtime. Use show_processes first. Monitor with get_action_status; download_processdump for failures.
Inputs: workspaceId (required), modelId (required), processId (required), mappingParameters.
set_currentperiodA
Set current period for a model (WARNING: may cause data loss if periods are removed). Use show_currentperiod to see the current value first.
Inputs: workspaceId (required), modelId (required), periodText (required).
set_fiscalyearA
Update fiscal year for model calendar (WARNING: may affect time ranges). Use show_modelcalendar to see the current value first.
Inputs: workspaceId (required), modelId (required), year (required).
set_versionswitchoverA
Set version switchover date (WARNING: affects version boundaries). Use show_versions to find versionId. Note: requires model ID (name resolution not supported).
Inputs: modelId (required), versionId (required), date (required).
show_actiondetailsA
Get action definition metadata. Use run_delete to execute delete actions.
Inputs: workspaceId (required), modelId (required), actionId (required).
show_actionsA
List available actions (including delete actions) in a model. Use run_delete to execute a delete action.
Inputs: workspaceId (required), modelId (required), limit, search.
show_alllineitemsA
List all line items in a model (cross-module). Note: requires model ID (name resolution not supported). Use includeAll=true for formulas and dimensions.
Inputs: modelId (required), includeAll, limit, search.
show_allmodelsA
List all models across all workspaces. Filter by state param (PRODUCTION, UNLOCKED, etc). Use modelDetails=true for memory/dates. Returns IDs needed by ID-only tools.
Inputs: state, modelDetails, limit, search.
show_allviewsA
List all views in a model (cross-module, includes default and saved). Note: requires model ID (name resolution not supported).
Inputs: modelId (required), includeSubsidiaryViews, limit, search.
show_currentperiodA
Get current period for a model. Use set_currentperiod to change it.
Inputs: workspaceId (required), modelId (required).
show_currentuserA
Get current authenticated user info
Inputs: no named parameters.
show_dimensionitemsA
List all items in a dimension. Returns itemId values needed for write_cells dimension coordinates. Note: requires model ID (name resolution not supported).
Inputs: modelId (required), dimensionId (required), limit, search.
show_exportdetailsC
Get export definition metadata including format and target.
Inputs: workspaceId (required), modelId (required), exportId (required).
show_exportsA
List available export actions. Use run_export to execute and download data in one step.
Inputs: workspaceId (required), modelId (required), limit, search.
show_filesA
List files in a model. File IDs are needed for upload_file (before run_import) and download_file.
Inputs: workspaceId (required), modelId (required), limit, search.
show_importdetailsA
Get import definition metadata including source file and column mapping. Check this before run_import to understand the expected data format.
Inputs: workspaceId (required), modelId (required), importId (required).
show_importsA
List available import actions in a model. Use show_importdetails to see source file and mapping, then run_import to execute.
Inputs: workspaceId (required), modelId (required), limit, search.
show_lineitem_dimensionsA
List dimensions for a line item. Returns dimensionId values needed by write_cells and show_dimensionitems. Note: requires model ID (name resolution not supported).
Inputs: modelId (required), lineItemId (required).
show_lineitem_dimensions_itemsA
List dimension items for a specific line item's dimension. Combines show_lineitem_dimensions + show_dimensionitems in one call. Note: requires model ID (name resolution not supported).
Inputs: modelId (required), lineItemId (required), dimensionId (required), limit, +1 more.
show_lineitemsA
List line items in a module. Line item IDs are needed for write_cells. Use includeAll=true for formulas, formats, and dimensions.
Inputs: workspaceId (required), modelId (required), moduleId (required), includeAll, +2 more.
show_listmetadataB
Get list metadata including properties, parent, and item count.
Inputs: workspaceId (required), modelId (required), listId (required).
show_listsA
List all dimensions (lists) in a model. List IDs are needed for get_list_items, add/update/delete_list_items, and large volume list reads.
Inputs: workspaceId (required), modelId (required), limit, search.
show_modelcalendarA
Get model calendar including fiscal year settings. Use set_fiscalyear to change the fiscal year.
Inputs: workspaceId (required), modelId (required).
show_modeldetailsC
Get model details including status and workspace binding.
Inputs: workspaceId (required), modelId (required), modelDetails.
show_modelsB
List models in a workspace. Filter by state param (PRODUCTION, UNLOCKED, etc). Use modelDetails=true for memory/dates. Use show_modules next.
Inputs: workspaceId (required), state, modelDetails, limit, +1 more.
show_modelstatusA
Check model status including memory usage and export progress.
Inputs: workspaceId (required), modelId (required).
show_moduledetailsA
Get module details with default view dimension metadata (rows, columns, pages). The default viewId equals the moduleId -- use it with read_cells directly.
Inputs: workspaceId (required), modelId (required), moduleId (required).
show_modulesA
List all modules in a model. Use show_lineitems to see a module's line items, or show_savedviews to find views for read_cells.
Inputs: workspaceId (required), modelId (required), limit, search.
show_processdetailsA
Get process definition metadata including the chain of import/export actions.
Inputs: workspaceId (required), modelId (required), processId (required), showImportDataSource.
show_processesB
List available processes (chained import/export actions). Use run_process to execute, then get_action_status to monitor.
Inputs: workspaceId (required), modelId (required), limit, search.
show_savedviewsA
List saved views in a module. Use includeSubsidiaryViews=true for unsaved subsidiary views. View IDs needed for read_cells. Tip: moduleId works as default viewId.
Inputs: workspaceId (required), modelId (required), moduleId (required), includeSubsidiaryViews, +2 more.
show_tasksA
List task history for an import, export, process, or action. Returns taskIds for use with get_action_status, cancel_task, or download_importdump/download_processdump.
Inputs: workspaceId (required), modelId (required), actionType (required), actionId (required), +2 more.
show_userdetailsB
Get user details by ID
Inputs: userId (required).
show_usersB
List all users in the tenant
Inputs: sort, limit, search.
show_versionsA
List version metadata (Current, Forecast, etc.) for a model. Version IDs are needed for set_versionswitchover. Note: requires model ID (name resolution not supported).
Inputs: modelId (required), limit, search.
show_viewdetailsA
Get view dimension layout (rows, columns, pages). Dimension IDs from here are needed for write_cells and show_viewdimensionitems.
Inputs: workspaceId (required), modelId (required), moduleId (required), viewId (required).
show_viewdimensionitemsB
List items in a dimension as filtered by a view. Useful for understanding what data a view includes. Note: requires model ID (name resolution not supported).
Inputs: modelId (required), viewId (required), dimensionId (required), limit, +1 more.
show_workspacedetailsA
Get workspace details including size and active status.
Inputs: workspaceId (required), tenantDetails.
show_workspacesA
List all accessible Anaplan workspaces. Use tenantDetails=true for size/quota info. Start here, then use show_models.
Inputs: limit, search, tenantDetails.
update_list_itemsA
Update existing items in a list. Use get_list_items to find item IDs. Important: if an item has a code value, you must include the code field in the update or Anaplan returns an error.
Inputs: workspaceId (required), modelId (required), listId (required), items (required).
upload_fileA
Upload CSV or text data to an Anaplan file (overwrites existing). Use compress=true for large files (>50MB). Typically followed by run_import. Use show_files for fileId.
Inputs: workspaceId (required), modelId (required), fileId (required), data (required), +1 more.
write_cellsA
Write values to specific cells. Supports both ID-based and name-based targeting: use lineItemName/dimensionName/itemName instead of IDs to skip the dimension resolution chain. For ID-based writes, use show_lineitem_dimensions then show_dimensionitems.
Inputs: workspaceId (required), modelId (required), moduleId (required), data (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 70 tools
Many tools have overlapping purposes, such as show_models, show_allmodels, show_modeldetails, and show_modelstatus, which could confuse an agent. While descriptions are detailed, the sheer number of similar show_* tools makes it hard to distinguish without careful reading.
All tools follow a consistent verb_noun pattern using snake_case (e.g., show_models, run_import, delete_file). The naming is predictable and adheres to a uniform convention throughout the set.
With 70 tools, the server is excessively large. Many tools could be consolidated (e.g., show_models and show_allmodels could be a single tool with a parameter). The high count overwhelms the user and suggests scope creep.
The tool set covers the full lifecycle of Anaplan model management, including CRUD for lists, imports/exports, processes, views, users, and workspace operations. There are no obvious gaps for typical administrative tasks.
Maintenance
Related MCP Connectors
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA universal MCP server that connects any REST API to AI assistants via OpenAPI or Postman specifications. It enables dynamic tool creation with GraphQL-style field selection and automatic schema inference for efficient data retrieval.9 npm6-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to manage network infrastructure through the Equinix Fabric API, including ports, connections, and service profiles. It provides 22 tools for tasks like creating virtual connections, managing service tokens, and querying metro locations.1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI assistants the ability to connect to, query, profile, and monitor data sources — turning any LLM into an interactive data engineering copilot.MIT
- AlicenseAqualityDmaintenanceA read-only MCP server for Anaplan that exposes 5 tools for business users to explore data through an AI assistant, with session caching and metadata gating.5MIT