{
  "id": "12-anaplan",
  "slug": "anaplan",
  "normalized_name": "anaplan",
  "name": "Anaplan (PlanIQ / Anaplan Forecaster)",
  "vendor_url": "anaplan.com",
  "category": "forecasting-revenue",
  "what_it_does": "Connected-planning platform whose AI forecasting engine - originally branded PlanIQ, now superseded by \"Anaplan Forecaster\" (launched October 2025) - generates time-series demand/sales/revenue forecasts that feed directly into a customer's broader Anaplan models.",
  "ai_features": "Genuinely ML-based: the vendor names specific algorithms (DeepAR+, Prophet) combining statistical and machine-learning techniques on internal plus enriched external data to uncover patterns and correlations; Anaplan Forecaster is described as the next generation of PlanIQ with expanded ML algorithms and improved explainability. Separately, \"CoModeler\" (natural-language model building) and role-based AI agents are LLM-workflow features, not the forecasting engine itself.",
  "mcp_status": "official",
  "mcp_url": "https://www.anaplan.com/platform/intelligence/ - the \"Anaplan AI Gateway\" feature page states: \"Securely connect any LLM interface or enterprise agent to Anaplan through a governed MCP connection, with controls for permissions, auditability, consumption management, and rate limiting.\" No separate dedicated MCP docs/repo page was found beyond this feature description. The only resolving server URL found for Anaplan is third-party, not first-party: https://github.com/larasrinath/anaplan-mcp (individually owned, community at most).",
  "mcp_auth": "unknown - described only as a \"governed MCP connection\" with permission/audit controls; the specific credential mechanism (API key vs. OAuth) is not disclosed on the page found.",
  "api_gate": "enterprise-only (/pricing resolves to a contact form promising an Anaplan expert will connect with you, with no pricing page and no developer or API portal link in nav or footer)",
  "revops_role": "Enterprise connected-planning platform where sales/demand forecasting is one module among many (finance, supply chain, workforce); the AI Gateway/MCP layer is Anaplan's play to make that planning data agent-accessible.",
  "tier": "RESEARCHED",
  "last_checked": "2026-09-07",
  "sources": "https://www.anaplan.com/platform/anaplan-planiq/, https://www.anaplan.com/platform/intelligence/, https://help.anaplan.com/drive-intelligent-forecasting-with-planiq-7333fab4-7118-45d9-8504-4137bc114e04, https://www.globenewswire.com/news-release/2025/12/09/3202449/0/en/Anaplan-Introduces-Role-Based-AI-Agents-to-Advance-Industry-Leading-Enterprise-Scenario-Planning-and-Analysis-Platform.html, https://www.pulsemcp.com/servers?q=anaplan, https://www.anaplan.com/pricing/, https://github.com/larasrinath/anaplan-mcp",
  "notes": "Marked official rather than none-found because Anaplan's own product page explicitly names MCP with a linkable URL, satisfying the schema's \"URL required\" law - the same judgment call made for the Default entry in 06-revops-infra.md - even though no dedicated MCP docs/repo page exists yet. Re-check as this matures; it currently reads as an early/generic capability statement rather than a documented integration. [api_gate 2026-08-25] Reclassified unknown -> enterprise-only from the vendor's own page (https://www.anaplan.com/pricing/): /pricing resolves to a contact form promising an Anaplan expert will connect with you, with no pricing page and no developer or API portal link in nav or footer. 2026-09-07: larasrinath/anaplan-mcp (7 stars) is a real server: src/server.ts plus src/tools/{bulk,exploration,transactional}.ts, README \"MCP server for Anaplan Integration API v2.\" Owner is an individual, so third-party (https://github.com/larasrinath/anaplan-mcp). 2026-09-07: LAW 1 FLAG, NOT DOWNGRADED. What the official claim actually rests on: the \"Anaplan AI Gateway\" feature page at https://www.anaplan.com/platform/intelligence/, which describes a governed MCP connection but publishes no resolving server URL. The finder searched GitHub owner anaplan, npm, PyPI and the official registry and probed https://mcp.anaplan.com/mcp with no first-party result; the only real servers found (larasrinath/anaplan-mcp, VinzenzKlass/anaplan-mcp, FireEden/anaplan-mcp-model-management) are all third-party. A human should decide whether official survives law 1.",
  "mcp_status_bucket": "official",
  "api_gate_bucket": "enterprise-only",
  "mcp_urls": [
    "https://www.anaplan.com/platform/intelligence/",
    "https://github.com/larasrinath/anaplan-mcp"
  ],
  "source_urls": [
    "https://www.anaplan.com/platform/anaplan-planiq/",
    "https://www.anaplan.com/platform/intelligence/",
    "https://help.anaplan.com/drive-intelligent-forecasting-with-planiq-7333fab4-7118-45d9-8504-4137bc114e04",
    "https://www.globenewswire.com/news-release/2025/12/09/3202449/0/en/Anaplan-Introduces-Role-Based-AI-Agents-to-Advance-Industry-Leading-Enterprise-Scenario-Planning-and-Analysis-Platform.html",
    "https://www.pulsemcp.com/servers?q=anaplan",
    "https://www.anaplan.com/pricing/",
    "https://github.com/larasrinath/anaplan-mcp"
  ],
  "source_annotations": [],
  "vendor_domain": "anaplan.com",
  "display_name": "Anaplan (PlanIQ / Anaplan Forecaster)",
  "docs_url": null,
  "jobs": [
    "read-pipeline-forecast",
    "model-revenue-plan"
  ],
  "jobs_tagged_by": "machine-pass",
  "jobs_tagged_on": "2026-08-25",
  "github_url": null,
  "github_stars": null,
  "github_last_commit": null,
  "github_archived": null,
  "github_fetched_on": null,
  "github_candidates": [
    "https://github.com/larasrinath/anaplan-mcp",
    "https://github.com/larasrinath/anaplan-mcp"
  ],
  "docs_digest": null,
  "docs_last_crawled": null,
  "submission": null,
  "mcp_tools": [
    {
      "name": "add_list_items",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "bulk_delete_models",
      "description": "Bulk delete closed models (WARNING: irreversible). Models must be closed first.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "cancel_task",
      "description": "Cancel a running task. taskId comes from the run_* response or show_tasks.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "close_model",
      "description": "Close (archive) a model. Requires workspace admin. Must be closed before bulk_delete_models.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "create_list_readrequest",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "create_view_readrequest",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "delete_file",
      "description": "Delete a file from a model (WARNING: irreversible). Use show_files to find the fileId.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "delete_list_items",
      "description": "Remove items from a list (WARNING: irreversible). Specify id or code for each item. Use get_list_items to find values.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "delete_list_readrequest",
      "description": "Delete a large volume list read request to free server resources. Always call this after downloading all pages.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "delete_view_readrequest",
      "description": "Delete a large volume view read request to free server resources. Always call this after downloading all pages.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "download_file",
      "description": "Download file content from a model. Text files are returned inline; for binary files, set saveToDownloads=true to preserve the exact bytes.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "download_importdump",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "download_optimizer_log",
      "description": "Download Optimizer solver log for a completed optimizer action. Logs are removed after 48 hours.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "download_processdump",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "get_action_status",
      "description": "Check status of a running task. Poll until taskState is COMPLETE or FAILED. Use includeProcessDetails=true for step timing. taskId from run_* response.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "get_list_items",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "get_list_readrequest",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "get_list_readrequest_page",
      "description": "Download one page (CSV) from a completed large volume list read. Pages are 0-based. After all pages, use delete_list_readrequest.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "get_view_readrequest",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "get_view_readrequest_page",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "lookup_dimensionitems",
      "description": "Look up dimension items by name or code to get their IDs. Useful for resolving human-readable names to itemIds before write_cells.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "open_model",
      "description": "Open (wake up) a model. May return 202 if model is loading.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "preview_list",
      "description": "Preview up to 1000 records from a large list (CSV) before initiating a full large read request",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "read_cells",
      "description": "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 (d",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "reset_list_index",
      "description": "Reset list item index numbering. Note: requires model ID and list ID (name resolution not supported for this tool).",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "run_delete",
      "description": "Execute a delete action on a model. Use show_actions first to find the delete action ID.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "run_export",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "run_import",
      "description": "Upload CSV/JSON data to a file, then execute an import action. Use mappingParameters to target a specific dimension (e.g., import into",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "run_process",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "set_currentperiod",
      "description": "Set current period for a model (WARNING: may cause data loss if periods are removed). Use show_currentperiod to see the current value first.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "set_fiscalyear",
      "description": "Update fiscal year for model calendar (WARNING: may affect time ranges). Use show_modelcalendar to see the current value first.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "set_versionswitchover",
      "description": "Set version switchover date (WARNING: affects version boundaries). Use show_versions to find versionId. Note: requires model ID (name resolution not supported).",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_actiondetails",
      "description": "Get action definition metadata. Use run_delete to execute delete actions.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_actions",
      "description": "List available actions (including delete actions) in a model. Use run_delete to execute a delete action.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_alllineitems",
      "description": "List all line items in a model (cross-module). Note: requires model ID (name resolution not supported). Use includeAll=true for formulas and dimensions.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_allmodels",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_allviews",
      "description": "List all views in a model (cross-module, includes default and saved). Note: requires model ID (name resolution not supported).",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_currentperiod",
      "description": "Get current period for a model. Use set_currentperiod to change it.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_currentuser",
      "description": "Get current authenticated user info",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_dimensionitems",
      "description": "List all items in a dimension. Returns itemId values needed for write_cells dimension coordinates. Note: requires model ID (name resolution not supported).",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_exportdetails",
      "description": "Get export definition metadata including format and target.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_exports",
      "description": "List available export actions. Use run_export to execute and download data in one step.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_files",
      "description": "List files in a model. File IDs are needed for upload_file (before run_import) and download_file.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_importdetails",
      "description": "Get import definition metadata including source file and column mapping. Check this before run_import to understand the expected data format.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_imports",
      "description": "List available import actions in a model. Use show_importdetails to see source file and mapping, then run_import to execute.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_lineitem_dimensions",
      "description": "List dimensions for a line item. Returns dimensionId values needed by write_cells and show_dimensionitems. Note: requires model ID (name resolution not supported).",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_lineitem_dimensions_items",
      "description": "List dimension items for a specific line item",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_lineitems",
      "description": "List line items in a module. Line item IDs are needed for write_cells. Use includeAll=true for formulas, formats, and dimensions.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_listmetadata",
      "description": "Get list metadata including properties, parent, and item count.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_lists",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_modelcalendar",
      "description": "Get model calendar including fiscal year settings. Use set_fiscalyear to change the fiscal year.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_modeldetails",
      "description": "Get model details including status and workspace binding.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_models",
      "description": "List models in a workspace. Filter by state param (PRODUCTION, UNLOCKED, etc). Use modelDetails=true for memory/dates. Use show_modules next.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_modelstatus",
      "description": "Check model status including memory usage and export progress.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_moduledetails",
      "description": "Get module details with default view dimension metadata (rows, columns, pages). The default viewId equals the moduleId -- use it with read_cells directly.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_modules",
      "description": "List all modules in a model. Use show_lineitems to see a module",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_processdetails",
      "description": "Get process definition metadata including the chain of import/export actions.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_processes",
      "description": "List available processes (chained import/export actions). Use run_process to execute, then get_action_status to monitor.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_savedviews",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_tasks",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "show_userdetails",
      "description": "Get user details by ID",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_users",
      "description": "List all users in the tenant",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_versions",
      "description": "List version metadata (Current, Forecast, etc.) for a model. Version IDs are needed for set_versionswitchover. Note: requires model ID (name resolution not supported).",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_viewdetails",
      "description": "Get view dimension layout (rows, columns, pages). Dimension IDs from here are needed for write_cells and show_viewdimensionitems.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_viewdimensionitems",
      "description": "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).",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_workspacedetails",
      "description": "Get workspace details including size and active status.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "show_workspaces",
      "description": "List all accessible Anaplan workspaces. Use tenantDetails=true for size/quota info. Start here, then use show_models.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "update_list_items",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "upload_file",
      "description": "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.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "write_cells",
      "description": "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_dime",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    }
  ],
  "mcp_tool_count": 70,
  "mcp_tools_evidence": "source",
  "mcp_tools_repo": "larasrinath/anaplan-mcp",
  "mcp_tools_repo_party": "third-party",
  "mcp_catalog_shape": "fixed",
  "mcp_catalog_note": null,
  "mcp_tools_fetched_on": "2026-09-27",
  "cli_status": "none-found",
  "cli_party": null,
  "cli_binary": null,
  "cli_install": [],
  "cli_login": null,
  "cli_commands_seen": [],
  "cli_docs_url": null,
  "cli_repo": null,
  "cli_packages": [],
  "cli_evidence": null,
  "cli_checked_on": "2026-09-27",
  "github_org": null,
  "github_org_status": "unresolved",
  "github_org_url": null,
  "github_org_evidence": {
    "rule": null,
    "reason": "github candidates were seen but none passed the evidence rules",
    "candidates_rejected": [
      {
        "login": "larasrinath",
        "from": "rule 2",
        "type": "User",
        "website": "larasrinath.com",
        "rejected": "website larasrinath.com does not match anaplan.com"
      },
      {
        "login": "anaplaninc",
        "from": "rule 3 (Anaplan)",
        "type": "Organization",
        "website": null,
        "rejected": "website (none) does not match anaplan.com"
      },
      {
        "login": "anaplan-engineering",
        "from": "rule 3 (Anaplan)",
        "type": "Organization",
        "website": null,
        "rejected": "website (none) does not match anaplan.com"
      },
      {
        "login": "AnaplanTestEnv",
        "from": "rule 3 (Anaplan)",
        "type": "Organization",
        "website": null,
        "rejected": "website (none) does not match anaplan.com"
      },
      {
        "login": "anaplan-gitops",
        "from": "rule 3 (Anaplan)",
        "type": "Organization",
        "website": null,
        "rejected": "website (none) does not match anaplan.com"
      },
      {
        "login": "anaplan-hjs",
        "from": "rule 3 (Anaplan)",
        "type": "Organization",
        "website": null,
        "rejected": "website (none) does not match anaplan.com"
      }
    ]
  },
  "github_org_repos": 0,
  "github_org_repos_mcp": 0,
  "github_org_repos_cli": 0,
  "github_org_latest_activity": null,
  "github_org_recent_repos": [],
  "github_org_checked_on": "2026-09-08",
  "mcp_endpoint": null,
  "mcp_docs_url": "https://www.anaplan.com/platform/intelligence/",
  "endpoint_status": "docs-only",
  "endpoint_http_status": 200,
  "endpoint_last_probed": "2026-09-04",
  "endpoint_wall_note": null,
  "canonical": true,
  "canonical_id": "12-anaplan",
  "also_listed_in": [],
  "source_file": "12-forecasting-revenue.md",
  "source_line": 283,
  "file_index": 14,
  "category_num": "12",
  "category_slug": "forecasting-revenue",
  "category_label": "Forecasting & Revenue",
  "heading": "Anaplan",
  "missing_schema_fields": [],
  "extra_fields": {},
  "display_rank": 162
}
