Productivity & teams
Redmine
Issues, time entries and projects in your Redmine, from your agent.
12 endpoints
Connect Anaplan imports, processes, exports and model users to your agent or reporting workflow. Use MCP or REST from n8n, Make, Zapier and scripts.
12 tools Read and write
Yes. Anaplan has an official REST API, the Integration API v2.0, and an official MCP server, the AI Gateway, which Anaplan's help describes as read-only access for workspaces using Agent Studio (checked 6 Nov 2026). Cotlet runs 12 Anaplan tools hosted, over MCP for agents and REST for scripts, with no API credentials or developer setup, inside the ChatGPT and Claude apps.
| What you need | Integration API | AI Gateway | Cotlet |
|---|---|---|---|
| Run an import or a process | Yes, with a token | Read-only in the help | Yes, after your OK |
| Use it in the ChatGPT or Claude app | Not on its own | Yes, with a client ID | Yes, sign in once |
| Start without a token or an admin setup | Needs a token | Needs Agent Studio | Yes, sign in once |
| Add users and set model roles | SCIM API for user admins | Read-only in the help | Yes, after your OK |
Checked 6 Nov 2026. Sources: Anaplan Help: Integration API v2.0 · Anaplan Help: Connect external AI to Anaplan AI Gateway · Anaplan Help: Authentication, access, and permissions · Anaplan AI Gateway
Use your own login in its Cotlet Cloud Browser.
Connect your agent or create a Cotlet API key.
Ask your agent or send an HTTP request.
We never keep your Anaplan password, and no import, process or user change runs until you approve it. Who can see your session
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the three steps below.
Add the Cotlet address. Sign up, log in to Anaplan in its Cloud Browser and press Enable for agents. Then add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.
Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.
Ask in plain words. Name the workspace and the model, and your agent picks the tool.
One shared address, https://cotlet.dev/mcp/v1, also carries Anaplan next to your other apps. If you enable Anaplan after connecting, refresh the connector so the new tools show up.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet-anaplan \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet-anaplan": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet-anaplan]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: anaplan_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: anaplan_write The Actions pane is open to workspace administrators only. History shows at most the 1000 most recent changes, so a longer range is read in slices.
Returns the models of the Models page, the way Anaplan shows them: name, workspace, status, mode and when you last visited. You see only the models your login has access to.
MCP callanaplan_read → list_models
REST endpointGET https://cotlet.dev/api/v1/anaplan/models
| Name | Type | Description |
|---|---|---|
| workspace string | string | Only models of this workspace. |
| status string | string | online or offline. |
| mode string | string | Standard, Deployed or Locked. |
{
"models": [
{
"name": "Revenue Planning",
"workspace": "Finance",
"status": "Online",
"mode": "Standard",
"last_visited": "2026-11-04"
},
{
"name": "Headcount Forecast",
"workspace": "People",
"status": "Online",
"mode": "Deployed",
"last_visited": "2026-10-29"
},
{
"name": "Supply Chain S&OP",
"workspace": "Operations",
"status": "Offline",
"mode": "Standard",
"last_visited": "2026-09-12"
}
]
} Returns each action by name and type, the way the Actions pane shows them, with the data sources of the imports. The Actions pane is open to workspace administrators only; any other role gets APP_PERMISSION_DENIED.
MCP callanaplan_read → list_actions
REST endpointGET https://cotlet.dev/api/v1/anaplan/actions
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| type string | string | import, export or process. Leave out for all. |
{
"workspace": "workspace",
"model": "model"
} {
"actions": [
{
"name": "Actuals Load",
"type": "import",
"data_source": "actuals.csv"
},
{
"name": "Forecast Export",
"type": "export"
},
{
"name": "Month End Close",
"type": "process"
}
]
} Returns the rows of the History dialog: ID, date and time in UTC, user, description and, for changes made through Anaplan CoModeler, the method AI-Assisted. Security changes to an access driver are marked. The dialog shows at most the 1000 most recent changes, so a longer range is read in slices. A change made in the Administration console has no user.
MCP callanaplan_read → get_model_history
REST endpointGET https://cotlet.dev/api/v1/anaplan/model-history
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| from string required | string | Start of the range, ISO date and time. |
| to string | string | End of the range. Defaults to now. |
{
"workspace": "workspace",
"model": "model",
"from": "from"
} {
"changes": [
{
"id": 48213,
"time": "2026-11-03T14:22:10Z",
"user": "dana@example.com",
"description": "Line item Forecast in module Revenue changed",
"security_change": false
},
{
"id": 48214,
"time": "2026-11-03T14:25:41Z",
"user": "dana@example.com",
"description": "Access driver of list Regions changed",
"security_change": true
}
],
"shown": 2,
"truncated": false
} Uses Export this view on the card, so the file holds what you see, with your filters and your access. Anything you cannot see in the model is left out. Large, densely populated grids export slowly and can slow the model down, so the agent exports one card at a time. Returns the file as a download link.
MCP callanaplan_read → export_grid_view
REST endpointGET https://cotlet.dev/api/v1/anaplan/grid-views/export
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| page string required | string | Name of the page that holds the grid. |
| card string required | string | Name of the grid card. |
| format string | string | csv, txt, xls, xlsx or pdf. Defaults to csv. |
| include_empty_rows boolean | boolean | Include empty rows. Defaults to false. |
{
"workspace": "workspace",
"model": "model",
"page": "page",
"card": "card"
} {
"file": "Forecast.xlsx",
"format": "xlsx",
"rows": 184,
"download_url": "https://files.cotlet.dev/d/9f3c1a/Forecast.xlsx"
} Runs the export from the Actions pane and returns the file as a download link. Exports shared with Everyone are open to all users through the API. An export an admin runs ignores selective access, so the file can hold data some users cannot see. It changes nothing in the model, so it does not wait for your OK.
MCP callanaplan_read → run_export
REST endpointGET https://cotlet.dev/api/v1/anaplan/exports/run
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| action string required | string | Name of the export from list_actions. |
{
"workspace": "workspace",
"model": "model",
"action": "action"
} {
"action": "Forecast Export",
"status": "completed",
"file": "forecast-export.csv",
"rows": 412,
"download_url": "https://files.cotlet.dev/d/2b7e44/forecast-export.csv"
} An upload changes nothing until an import or process uses the file. Imports and processes can overwrite plan numbers, so they wait for you.
Uploads a new file to a source listed on the Import Data Sources tab of the Actions pane, the way an admin does with Edit. Needs a workspace administrator. The model does not change until run_import or run_process uses the file, so this reaches no one. A new upload replaces the old file; run it again with the old file to undo.
MCP callanaplan_write → upload_import_file
REST endpointPOST https://cotlet.dev/api/v1/anaplan/import-files
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| data_source string required | string | Name of the import data source, from list_actions. |
| file_url string required | string | HTTPS link to the CSV file, or a file uploaded with cotlet_upload_file. |
{
"workspace": "workspace",
"model": "model",
"data_source": "data source",
"file_url": "https://example.com"
} {
"data_source": "Actuals Load",
"file": "actuals-october.csv",
"size_bytes": 48210,
"uploaded": true
} Runs the import from the Actions pane with its current data source and returns the result. Cells without dynamic cell access are not updated. Import actions can overwrite plan numbers other people work in, and there is no one-call undo, so the call waits for you. By default you confirm each call; you can switch that off for this tool.
MCP callanaplan_write → run_import
REST endpointPOST https://cotlet.dev/api/v1/anaplan/import/run
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| action string required | string | Name of the import from list_actions. |
{
"workspace": "Finance",
"model": "Revenue Planning",
"action": "Actuals Load"
} {
"action": "Actuals Load",
"status": "completed",
"rows_imported": 1240,
"rows_failed": 3,
"failure_dump": "Actuals Load failures.csv"
} Selects the process in the Actions tab, chooses the import files and clicks Run. Returns the Results Summary, or Process Failed with the message. Your model role must have access to all the data the actions in the process use. A process can delete data, so the call waits for you. By default you confirm each call; you can switch that off for this tool.
MCP callanaplan_write → run_process
REST endpointPOST https://cotlet.dev/api/v1/anaplan/process/run
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| process string required | string | Name of the process from list_actions. |
| import_files array | array | Files for the process imports: data source name and file link for each set of imports that share a file. |
{
"workspace": "workspace",
"model": "model",
"process": "process"
} {
"process": "Month End Close",
"status": "completed",
"results_summary": [
"Actuals Load: 1240 rows imported",
"Clear Forecast Staging: completed"
]
} Needs a workspace administrator. Setting No Access deletes line item data that references the user.
Returns the Users tab of the Users pane: name, email, model role and whether the user is a workspace administrator. Needs a workspace administrator; any other role gets APP_PERMISSION_DENIED. Roles are the ones the model defines, always including Full Access and No Access.
MCP callanaplan_read → list_users
REST endpointGET https://cotlet.dev/api/v1/anaplan/users
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
{
"workspace": "workspace",
"model": "model"
} {
"users": [
{
"name": "Dana Whitfield",
"email": "dana@example.com",
"role": "Full Access",
"workspace_admin": true
},
{
"name": "Omar Haddad",
"email": "omar@example.com",
"role": "Planner",
"workspace_admin": false
},
{
"name": "Priya Nair",
"email": "priya@example.com",
"role": "Viewer",
"workspace_admin": false
}
]
} Uses Add User on the Users tab. Anaplan adds the user to every model of the workspace and emails them a link to it; other models start with No Access. The new user gets the Full Access role unless you pass a role. Fails when the tenant limits adding users to user administrators in Administration. By default you confirm each call; you can switch that off for this tool.
MCP callanaplan_write → add_user
REST endpointPOST https://cotlet.dev/api/v1/anaplan/users
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| email string required | string | Email address, standard format, up to 60 characters. |
| first_name string required | string | First name. |
| last_name string required | string | Last name. |
| role string | string | Model role from list_users. Defaults to Full Access. |
| workspace_admin boolean | boolean | Make the user a workspace administrator. Defaults to false. |
| sso_only boolean | boolean | Require single sign-on for this user. Defaults to false. |
{
"workspace": "workspace",
"model": "model",
"email": "jane@example.com",
"first_name": "first name",
"last_name": "last name"
} {
"email": "sam@example.com",
"name": "Sam Rivera",
"workspace": "Finance",
"role": "Planner",
"workspace_admin": false,
"sso_only": true,
"invitation_sent": true
} Changes the cell of the Users tab that shows the role. Setting No Access deletes line item data that references the user in every module with the Users list as a dimension, and you cannot set it for the account that is signed in. Changing access reaches the user at once. By default you confirm each call; you can switch that off for this tool.
MCP callanaplan_write → set_user_role
REST endpointPUT https://cotlet.dev/api/v1/anaplan/user-role
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| email string required | string | Email of the user, from list_users. |
| role string required | string | Model role, from list_users. |
{
"workspace": "workspace",
"model": "model",
"email": "jane@example.com",
"role": "role"
} {
"email": "omar@example.com",
"model": "Revenue Planning",
"previous_role": "Viewer",
"role": "Planner"
} Uses the Models tab of the Model Management dialog, open to workspace administrators. An offline model is closed for every user until it is brought online again. Reverse the call with the other status. By default you confirm each call; you can switch that off for this tool.
MCP callanaplan_write → set_model_status
REST endpointPUT https://cotlet.dev/api/v1/anaplan/model-status
| Name | Type | Description |
|---|---|---|
| workspace string required | string | Workspace name, as shown in the model selector or on the Models page. |
| model string required | string | Model name inside the workspace, from list_models. |
| status string required | string | online or offline. |
{
"workspace": "workspace",
"model": "model",
"status": "status"
} {
"model": "Supply Chain S&OP",
"workspace": "Operations",
"status": "Online",
"previous_status": "Offline"
} Your logged-in Anaplan profile, encrypted with AES-256-GCM, in Finland. Not the password.
The 12 Anaplan tools. Never the cookie or your password.
Your models, as your login sees them: lists, grids, actions, users.
Formulas, module structure, deleting models, tenant settings and billing.
You sign in yourself with your SSO or authenticator app. We never type it.
Disable for agents, reset the browser, or change your Anaplan password.
Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.
When Anaplan moves a button or renames a field, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Upload an import file | Upload the old file again |
| Run an import | No one-call undo; it can overwrite plan numbers |
| Run a process | No one-call undo; a process can delete data |
| Set a user role | Set the previous role, except No Access, which deletes line item data |
| Take a model offline | Call it again with the other status |
5 of 12 tools ask first: run_import, run_process, add_user, set_user_role, set_model_status. Reads, exports and file uploads change nothing in the model, so they run at once. Switch the wait off per tool for a scheduled run.
An export an admin runs ignores selective access, so the file can hold data some users cannot see.
{
"name": "run_import",
"arguments": {
"workspace": "Finance",
"model": "Revenue Planning",
"action": "Actuals Load"
}
} curl -X POST https://cotlet.dev/api/v1/anaplan/import/run \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workspace":"Finance","model":"Revenue Planning","action":"Actuals Load"}' {
"action": "Actuals Load",
"status": "completed",
"rows_imported": 1240,
"rows_failed": 3,
"failure_dump": "Actuals Load failures.csv"
} Scripts and cron jobs reach the same tools over REST at /api/v1/anaplan, with the same key and price. A call your Anaplan role does not allow fails with a permission error, and a failed call costs nothing. The tools table lists the REST path of each tool.
About $10 a monthfor a planning admin on one model, 1,790 credits. Your Anaplan contract is billed by Anaplan as before.
| Job | Calls | Credits |
|---|---|---|
| Weekly actuals load: list, upload, import | 3 × 4 | 120 |
| Month-end close process | 2 × 1 | 20 |
| Weekly review of model changes | 1 × 4 | 40 |
| Weekly forecast grid to a spreadsheet | 2 × 4 | 80 |
| Access review and two role changes | 3 × 1 | 30 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 1,790 |
The month is our example: one weekly load, one close, one weekly review and export, one access review. Anaplan does not publish its prices. A buyer's guide puts a mid-market deployment at 15 to 30 named users and 3 to 5 model builders (Metapraxis, 2026). Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| Anaplan AI Gateway | Official remote MCP server on your Anaplan login, for Claude, ChatGPT and other AI apps. | Anaplan's help calls it read-only. Needs Agent Studio and a client ID created by Anaplan. |
| Integration API v2.0 | Official REST API: files, imports, exports, processes and cell data. | You write and host the calls and hold the token. |
| larasrinath/anaplan-mcp | Open source MCP server, 70 tools on the Integration API, MIT license. | You install and host it with API credentials. 7 stars, last commit 17 Sep 2026. No add-user tool. |
| shashemi23/anaplan-mcp, palimkarakshay/anaplan-kit-mcp | A Claude Code plugin built on the first server, and a server with a formula reference and blueprint linting for model builders. | The plugin is for Claude Code. The second is mostly offline helpers. 0 stars each. |
| StackOne | Hosted MCP with 43 actions, among them run import, run process and create SCIM user. | Needs a StackOne account. The page lists no price. |
| Nexatron | Hosted MCP for Claude, ChatGPT and Copilot. | Its page says questions only read Anaplan. Price on request by email. |
| n8n-nodes-anaplan-fixed | Community n8n node that imports data into modules and lists. | Last published Jun 2025, 5 downloads last month. Zapier has no Anaplan app. |
If read access inside Agent Studio is all you need, Anaplan's own AI Gateway is the direct way. If you run a developer team that wants to build on the Integration API, use it. Cotlet fits when you want an agent to load files, run imports and processes and manage model users, without API credentials or a server to run.
Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Anaplan tools.
Sign up at cotlet.dev, log in to Anaplan once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Anaplan account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Anaplan: load this month's actuals and run the import; run the month-end close process; audit who changed a model. You ask in plain words, and anything that reaches other people waits for your OK first.
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Create a free account at https://cotlet.dev, open Anaplan under Integrations in the console and log in to Anaplan in its Cloud Browser. The trial starts with your first app, no card asked.
Yes. You sign in yourself in your Cloud Browser, with your company SSO or your authenticator app, and Cotlet never sees your password or MFA code. Anaplan says that once SSO is on, users sign in through SSO unless they are exception users, so use the login you use every day.
Your own role in the model decides. Anaplan lets workspace administrators run actions from the Actions pane and add users, and other users can run only the actions published to a dashboard. Reading model history needs a model builder, and setting up a history export needs a workspace administrator. A call without the role fails with APP_PERMISSION_DENIED.
Use it when you only need your AI to read models. Anaplan's help describes it as read-only access to Anaplan models and data, enabled for workspaces using Agent Studio. Cotlet is for the jobs it leaves out: uploading a file, running an import or process, adding users and setting roles. The two can run side by side.
No. Cotlet works in your signed-in Anaplan session, so you need no integration user, token or client ID. Your own role in the model still decides what a call can do.
Only the door is different. Both expose the same 12 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with Anaplan, Inc.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy