Skip to main content
Glama
anaplan-user-mcp

anaplan-user-mcp

by larasrinath

anaplan-user-mcp

A business-user-focused MCP server for Anaplan — read-only, session-cached, and gated by AI-layer metadata.

Unlike full-featured Anaplan MCP servers with dozens of tools, anaplan-user-mcp exposes just 5 tools designed for guided data exploration by business users through an AI assistant.

How It Works

The Iron Door

Not every Anaplan model is accessible. A model must be explicitly prepared for AI consumption by including two sentinel modules:

  • AI Model Metadata — marks the model as AI-accessible

  • AI Module Metadata — defines which modules are exposed

Within admitted models, only line items tagged with AI LI Metadata appear. Everything else is invisible. No writes, no bulk actions, no admin operations — read-only by design.

Session Flow

identify_user → init_session → list_accessible_models → read_module_summary / read_module_detail
  1. identify_user — discover which workspaces the credentials can access

  2. init_session — scan all models, admit those passing the iron door, cache metadata

  3. list_accessible_models — browse the cached models

  4. read_module_summary — one-call rollup: resolves list dimensions to top-level items, reads aggregated data

  5. read_module_detail — drill into a specific dimension slice

Related MCP server: Anaplan MCP

Setup

Prerequisites

  • Node.js 18+

  • Anaplan credentials (any of: username/password, OAuth client, or certificate)

Install

git clone https://github.com/larasrinath/anaplan-user-mcp.git
cd anaplan-user-mcp
npm install
npm run build

Configure Credentials

Set one of these authentication methods via environment variables:

Basic Auth:

export ANAPLAN_USERNAME="your-email@example.com"
export ANAPLAN_PASSWORD="your-password"

OAuth:

export ANAPLAN_CLIENT_ID="your-client-id"
export ANAPLAN_CLIENT_SECRET="your-client-secret"  # optional for device grant

Certificate:

export ANAPLAN_CERTIFICATE_PATH="/path/to/cert.pem"
export ANAPLAN_PRIVATE_KEY_PATH="/path/to/key.pem"

Add to Your MCP Client

Claude Desktop / Claude Code — add to your MCP config:

{
  "mcpServers": {
    "anaplan-user": {
      "command": "node",
      "args": ["/path/to/anaplan-user-mcp/dist/index.js"],
      "env": {
        "ANAPLAN_USERNAME": "your-email@example.com",
        "ANAPLAN_PASSWORD": "your-password"
      }
    }
  }
}

Or run directly:

npm start

The server communicates over stdio using the MCP protocol.

Development

npm run dev          # Run with tsx (no build step)
npm run build        # Compile TypeScript → dist/
npm run typecheck    # Type-check without emitting

Architecture

src/
├── auth/            # Token lifecycle (basic, certificate, OAuth)
├── api/             # Read-only Anaplan API wrappers
├── session/         # Iron-door cache (types + SessionCacheManager)
├── tools/           # 5 MCP tools + table formatter
├── transport/       # stdio transport (content-length + line framing)
├── server.ts        # McpServer factory
└── index.ts         # Entry point

The auth layer, HTTP client, and transport are shared with anaplan-mcp. API modules have write methods removed.

Preparing an Anaplan Model

For a model to be accessible through this server:

  1. Create a module named AI Model Metadata in the model

  2. Create a module named AI Module Metadata in the model

  3. Tag line items you want to expose with AI LI Metadata

Only tagged line items in models with both sentinel modules will appear in the session cache.

License

MIT

Available Tools

5 tools
identify_userA

List the Anaplan workspaces accessible to the current credentials. Call this first to understand what the user can see.

Inputs: no named parameters.

init_sessionA

Scan all accessible models, admit only those with AI Model Metadata and AI Module Metadata sentinel modules, cache their modules and tagged line items. Must be called once before any data-reading tool.

Inputs: no named parameters.

list_accessible_modelsA

List all AI-layer models from the session cache with their modules and line item counts. Requires init_session.

Inputs: no named parameters.

read_module_detailA

Read module data with explicit page selections to drill into a specific slice. Use when the user asks to filter by a specific dimension member instead of the top-level rollup.

Inputs: model (required), module (required), pages.

read_module_summaryA

Read a pre-computed rollup of a module's data. Automatically resolves list dimensions to their topLevelItem for aggregated results. One call returns line item metadata + cell data.

Inputs: model (required), module (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct step in the workflow: user identification, session initialization, model listing, summary read, and detail read. The two read tools are clearly differentiated by rollup vs. explicit page selection, so no ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun snake_case pattern (identify_user, init_session, list_accessible_models, read_module_summary, read_module_detail). The verbs are all in imperative form and the nouns are clear.

    Tool Count5/5

    With 5 tools, the server is well-scoped for a read-only Anaplan user/MCP workflow. Each tool is necessary and there is no redundancy or excessive surface area.

    Completeness5/5

    The tool set covers the full lifecycle from user identification through session initialization, model listing, and both aggregate and detailed data reading. No obvious gaps for the stated purpose of read-only access and data extraction.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      An MCP server that bridges AI assistants with data warehouses through Cube.js to enable governed, natural language semantic analytics queries. It provides tools for metadata discovery and secure query execution while enforcing governance policies like PII blocking and access limits.
      3
      263 npm
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      An MCP server that connects AI assistants to Anaplan's Integration API v2, enabling users to browse workspaces, manage model data, and execute bulk operations like imports and exports. It provides 25 structured tools to navigate model hierarchies and perform transactional tasks through natural language.
      70
      7
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      A read-only MCP server that provides AI coding tools with database schema structure (tables, columns, keys, relationships) without exposing row data.
      3
      Apache 2.0