Connectors · Industry
iManage Work MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to iManage Work and the rest of your systems. It gives your agent 152 iManage Work actions (71 reads, 67 writes and 14 that wait for a confirmation) and holds the iManage Work credential itself, so the agent never does. It paces iManage Work's limits and records every call. Connecting iManage Work needs your own iManage Work OAuth app and one admin sign-in.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "imanage_work.folders.list", intent: "check which iManage Work account is connected"}# Search folders in a library · read · 1 upstream call- 152actionsin one signed file
- 71readlook, never change
- 67writecreate and update
- 14wait for a yesdestructive, confirmed first
Set up
Connect iManage Work in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect iManage Work.
OAuth 2.0, authorization code. You register your own OAuth app with iManage Work, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
Before the first sign-in, iManage Work needs an OAuth app of your own, registered in its developer portal. actionlake has no iManage Work app to lend you.
access_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idClient ID of an application registered in iManage Control Center (Applications > add a Custom application with OAuth…client_secretClient secret of the same Control Center applicationcustomer_idYour iManage Work customer idhostWhere your iManage Work lives: your hostlibrary_idYour iManage Work library id
account { op: "connections.requirements", service: "imanage_work" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "imanage_work.folders.list" }# search folders in a library · read · 1 upstream callcheck { action: "imanage_work.folders.subfolders.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
iManage Work at a glance
- Sign-in
- OAuth 2.0, authorization code. You register your own OAuth app with iManage Work, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
- You provide
access_tokenrefresh_tokenclient_idclient_secret- Setup fields
customer_idhostlibrary_id- Limits we pace to
- 300 calls a minute, per connection
- API covered
- IManage Work Universal API v2 (REST, /work/api/v2), at your iManage Work instance's API base URL, which you enter when connecting
- Built from
- iManage Work's documentation, read 23 October 2026OpenAPI spec (GitHub)OpenAPI spec (GitHub)cloudimanage.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 65 of 71 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 7, so ask can line iManage Work up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in iManage Work.
152 actions in 20 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 71readlook, never change
- 67writecreate and update
- 14destructivewait for a confirmation
Documents
3115 read · 14 write · 2 destructive
Search documents in a library · Get a document profile · Update a document profile · Delete a document
Folders
2311 read · 10 write · 2 destructive
Search folders in a library · Create a subfolder · Update a folder · Get a folder
Workspaces
209 read · 9 write · 2 destructive
Search workspaces in a library · Create a workspace · Get a workspace · Update a workspace
Roles
93 read · 3 write · 3 destructive
List library roles · Create a library role · Get a library role · Update a library role
Tabs
83 read · 4 write · 1 destructive
List a tab's children · Create a folder in a tab · Get a workspace tab · Replace a workspace tab's profile
Groups
73 read · 4 write · 0 destructive
List groups of a library · Create a group · Get a group · Update a group
Users
74 read · 3 write · 0 destructive
List users of a library · Get a library user · Add users to a library · List a user's groups
Lookups
62 read · 3 write · 1 destructive
Create a lookup value · List lookup values of a custom field · Get a lookup value · Update lookup values of a custom field
12 more areas · 41 actions
- Classes 5
- Subclasses 5
- Types 5
- Global users 4
- Recent documents 4
- Recent workspaces 4
- Captions 3
- Library 3
- Search folders 3
- Templates 3
- Discovery 1
- Libraries 1
Top actions
The iManage Work API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 37 of iManage Work's 38 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
imanage_work.folders.listSearch folders in a library | Search folders in a library. | read | content.folder.list62 connectors |
imanage_work.discovery.getGet API discovery and the signed-in user | Get API discovery and the signed-in user. | read | identity.current_user.get307 connectors |
imanage_work.documents.listSearch documents in a library | Search documents in a library. | read | content.document.list28 connectors |
imanage_work.users.listList users of a library | List users of a library. | read | identity.user.list474 connectors |
imanage_work.groups.listList groups of a library | List groups of a library. | read | identity.group.list262 connectors |
imanage_work.roles.listList library roles | List library roles. | read | identity.role.list184 connectors |
imanage_work.folders.subfolders.createCreate a subfolder | Create a subfolder. | write | content.folder.create62 connectors |
imanage_work.workspaces.listSearch workspaces in a library | Search workspaces in a library. | read | work.workspace.list50 connectors |
imanage_work.folders.deleteDelete a folder | Delete a folder. | destructive | content.folder.delete46 connectors |
imanage_work.global_users.createCreate a user | Create a user. | write | identity.user.create262 connectors |
imanage_work.groups.createCreate a group | Create a group. | write | identity.group.create205 connectors |
imanage_work.roles.createCreate a library role | Create a library role. | write | identity.role.create105 connectors |
Try it
Prompts to paste into Claude.
Each one names the iManage Work actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Who has access in iManage Work? List every user and their role.
calls
imanage_work.users.list - Writewrite
Create a subfolder in iManage Work. Show me exactly what you will send before you save it.
calls
imanage_work.folders.subfolders.create
Governance for iManage Work
Destructive actions wait for a yes.
14 iManage Work actions are destructive. These are all of them:
- Delete a folder
imanage_work.folders.delete - Delete a document
imanage_work.documents.delete - Delete a library role
imanage_work.roles.delete - Delete a workspace
imanage_work.workspaces.delete - Remove a related document
imanage_work.documents.related.remove - Remove a document from a folder
imanage_work.folders.documents.remove - Delete a workspace name-value pair
imanage_work.workspaces.name_value_pairs.delete - Assign a role to a user
imanage_work.roles.users.add - Delete a workspace tab
imanage_work.tabs.delete - Delete a document type
imanage_work.types.delete - Delete a document class
imanage_work.classes.delete - Delete a lookup value
imanage_work.lookups.delete - Delete a subclass
imanage_work.subclasses.delete - Remove a role from a user
imanage_work.roles.users.remove
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a folder?
intent: the user asked me to delete a folder
account { op: "keys.create", name: "imanage-work-agent", allowed_actions: ["imanage_work.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "imanage_work.folders.delete", approver: "[email protected]" }, { match: "imanage_work.documents.delete", approver: "[email protected]" }, { match: "imanage_work.roles.delete", approver: "[email protected]" } ]}Cost
What iManage Work costs on actionlake.
Every iManage Work action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call iManage Work refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 152 iManage Work actions
- 152actions pageeach page of a long list is one call
- 65reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every iManage Work action.
152 actions by area: the id your agent calls, what it does, and its effect.
Documents31
imanage_work.documents.checked_out.listList checked-out documentsreadimanage_work.documents.checkout.createCheck out a documentwriteimanage_work.documents.checkout.getGet a document's checkout informationreadimanage_work.documents.checkout.updateUpdate a document's checkoutwriteimanage_work.documents.copyCopy a documentwriteimanage_work.documents.declareDeclare a document as a recordwriteimanage_work.documents.deleteDelete a documentdestructiveimanage_work.documents.getGet a document profilereadimanage_work.documents.history.createAdd a document history entrywriteimanage_work.documents.history.listList a document's historyreadimanage_work.documents.listSearch documents in a libraryreadimanage_work.documents.list_allSearch documents across all librariesreadimanage_work.documents.lockLock a documentwriteimanage_work.documents.name_value_pairs.getGet a document's name-value pairsreadimanage_work.documents.name_value_pairs.replaceReplace a document's name-value pairswriteimanage_work.documents.name_value_pairs.updateUpdate a document's name-value pairswriteimanage_work.documents.operations.getGet the operations allowed on a documentreadimanage_work.documents.path.getGet a document's location pathreadimanage_work.documents.related.addRelate documents to a documentwriteimanage_work.documents.related.listList a document's related documentsreadimanage_work.documents.related.removeRemove a related documentdestructiveimanage_work.documents.searchSearch documents in a library (filter body)readimanage_work.documents.search_allSearch documents across all libraries (filter body)readimanage_work.documents.security.getGet a document's securityreadimanage_work.documents.security.updateUpdate a document's securitywriteimanage_work.documents.shareShare a documentwriteimanage_work.documents.undeclareUndeclare a document recordwriteimanage_work.documents.unlockUnlock a documentwriteimanage_work.documents.updateUpdate a document profilewriteimanage_work.documents.versions.latestGet a document's latest versionreadimanage_work.documents.versions.listList a document's versionsread
Folders23
imanage_work.folders.children.listList a folder's childrenreadimanage_work.folders.deleteDelete a folderdestructiveimanage_work.folders.document_shortcuts.createAdd document shortcuts to a folderwriteimanage_work.folders.documents.listList the documents in a folderreadimanage_work.folders.documents.moveMove a document to another folderwriteimanage_work.folders.documents.removeRemove a document from a folderdestructiveimanage_work.folders.folder_shortcuts.createAdd folder shortcuts to a folderwriteimanage_work.folders.getGet a folderreadimanage_work.folders.listSearch folders in a libraryreadimanage_work.folders.list_allSearch folders across all librariesreadimanage_work.folders.moveMove a folderwriteimanage_work.folders.name_value_pairs.getGet a folder's name-value pairsreadimanage_work.folders.name_value_pairs.updateUpdate a folder's name-value pairswriteimanage_work.folders.operations.getGet the operations allowed on a folderreadimanage_work.folders.path.getGet a folder's location pathreadimanage_work.folders.replaceReplace a folder's profilewriteimanage_work.folders.searchSearch folders in a library (filter body)readimanage_work.folders.search_allSearch folders across all libraries (filter body)readimanage_work.folders.search_folders.createCreate a search folder in a folderwriteimanage_work.folders.security.getGet a folder's securityreadimanage_work.folders.security.updateUpdate a folder's securitywriteimanage_work.folders.subfolders.createCreate a subfolderwriteimanage_work.folders.updateUpdate a folderwrite
Workspaces20
imanage_work.workspaces.children.listList a workspace's childrenreadimanage_work.workspaces.createCreate a workspacewriteimanage_work.workspaces.deleteDelete a workspacedestructiveimanage_work.workspaces.folders.createCreate a folder in a workspacewriteimanage_work.workspaces.getGet a workspacereadimanage_work.workspaces.listSearch workspaces in a libraryreadimanage_work.workspaces.list_allSearch workspaces across all librariesreadimanage_work.workspaces.name_value_pairs.addAdd name-value pairs to a workspacewriteimanage_work.workspaces.name_value_pairs.deleteDelete a workspace name-value pairdestructiveimanage_work.workspaces.name_value_pairs.getGet a workspace's name-value pairsreadimanage_work.workspaces.name_value_pairs.replaceReplace a workspace's name-value pairswriteimanage_work.workspaces.name_value_pairs.updateUpdate a workspace's name-value pairswriteimanage_work.workspaces.operations.getGet the operations allowed on a workspacereadimanage_work.workspaces.searchSearch workspaces in a library (filter body)readimanage_work.workspaces.search_allSearch workspaces across all libraries (filter body)readimanage_work.workspaces.search_folders.createCreate a search folder in a workspacewriteimanage_work.workspaces.security.getGet a workspace's securityreadimanage_work.workspaces.security.updateUpdate a workspace's securitywriteimanage_work.workspaces.tabs.createCreate a tab in a workspacewriteimanage_work.workspaces.updateUpdate a workspacewrite
Roles9
imanage_work.roles.createCreate a library rolewriteimanage_work.roles.deleteDelete a library roledestructiveimanage_work.roles.getGet a library rolereadimanage_work.roles.listList library rolesreadimanage_work.roles.replaceReplace a library rolewriteimanage_work.roles.updateUpdate a library rolewriteimanage_work.roles.users.addAssign a role to a userdestructiveimanage_work.roles.users.listList the users holding a rolereadimanage_work.roles.users.removeRemove a role from a userdestructive
Tabs8
imanage_work.tabs.children.listList a tab's childrenreadimanage_work.tabs.deleteDelete a workspace tabdestructiveimanage_work.tabs.folders.createCreate a folder in a tabwriteimanage_work.tabs.getGet a workspace tabreadimanage_work.tabs.replaceReplace a workspace tab's profilewriteimanage_work.tabs.security.getGet a tab's securityreadimanage_work.tabs.security.updateUpdate a tab's securitywriteimanage_work.tabs.updateUpdate a workspace tabwrite
Groups7
imanage_work.groups.createCreate a groupwriteimanage_work.groups.getGet a groupreadimanage_work.groups.listList groups of a libraryreadimanage_work.groups.members.addAdd members to a groupwriteimanage_work.groups.members.listList a group's membersreadimanage_work.groups.members.replaceReplace a group's memberswriteimanage_work.groups.updateUpdate a groupwrite
Users7
imanage_work.users.addAdd users to a librarywriteimanage_work.users.getGet a library userreadimanage_work.users.groups.listList a user's groupsreadimanage_work.users.listList users of a libraryreadimanage_work.users.replaceReplace a library user's settingswriteimanage_work.users.roles.listList a user's rolesreadimanage_work.users.updateUpdate a library userwrite
Lookups6
imanage_work.lookups.createCreate a lookup valuewriteimanage_work.lookups.deleteDelete a lookup valuedestructiveimanage_work.lookups.getGet a lookup valuereadimanage_work.lookups.listList lookup values of a custom fieldreadimanage_work.lookups.replaceUpdate lookup values of a custom fieldwriteimanage_work.lookups.updateUpdate a lookup valuewrite
Classes5
imanage_work.classes.createCreate a document classwriteimanage_work.classes.deleteDelete a document classdestructiveimanage_work.classes.getGet a document classreadimanage_work.classes.listList document classesreadimanage_work.classes.updateUpdate a document classwrite
Subclasses5
imanage_work.subclasses.createCreate a subclasswriteimanage_work.subclasses.deleteDelete a subclassdestructiveimanage_work.subclasses.getGet a subclassreadimanage_work.subclasses.listList a class's subclassesreadimanage_work.subclasses.updateUpdate a subclasswrite
Types5
imanage_work.types.createCreate a document typewriteimanage_work.types.deleteDelete a document typedestructiveimanage_work.types.getGet a document typereadimanage_work.types.listList document typesreadimanage_work.types.updateUpdate a document typewrite
Global users4
imanage_work.global_users.createCreate a userwriteimanage_work.global_users.getGet a user of the customerreadimanage_work.global_users.listList users of the customerreadimanage_work.global_users.updateUpdate a userwrite
Recent documents4
imanage_work.recent_documents.addAdd documents to the user's recent documents in a librarywriteimanage_work.recent_documents.add_allAdd documents to the user's recent documentswriteimanage_work.recent_documents.listList the user's recent documents in a libraryreadimanage_work.recent_documents.list_allList the user's recent documents across librariesread
Recent workspaces4
imanage_work.recent_workspaces.addAdd workspaces to the user's recent workspaces in a librarywriteimanage_work.recent_workspaces.add_allAdd workspaces to the user's recent workspaceswriteimanage_work.recent_workspaces.listList the user's recent workspaces in a libraryreadimanage_work.recent_workspaces.list_allList the user's recent workspaces across librariesread
Captions3
imanage_work.captions.getGet a profile field captionreadimanage_work.captions.listList profile field captionsreadimanage_work.captions.updateUpdate a profile field captionwrite
Library3
imanage_work.library.metadata.getGet library profile metadatareadimanage_work.library.operations.getGet the operations allowed in a libraryreadimanage_work.library.trustees.listSearch users and groups (trustees)read
Search folders3
imanage_work.search_folders.getGet a search folderreadimanage_work.search_folders.replaceReplace a search folderwriteimanage_work.search_folders.updateUpdate a search folderwrite
Templates3
imanage_work.templates.createCreate a workspace templatewriteimanage_work.templates.listList workspace templatesreadimanage_work.templates.updateUpdate a workspace templatewrite
Discovery1
imanage_work.discovery.getGet API discovery and the signed-in userread
Libraries1
imanage_work.libraries.listList libraries the user can accessread
Questions
The iManage Work MCP server, answered.
Is there an iManage Work MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 152 iManage Work actions across documents, folders, workspaces and roles, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by iManage Work.
What do I need to connect iManage Work?
Your own iManage Work OAuth app, registered with iManage Work (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no iManage Work app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. Plus your customer id, your host and your library id. The free call account { op: "connections.requirements", service: "imanage_work" } lists exactly what to paste.
Can an AI agent delete or change things in iManage Work?
Only if its key allows it, and only with an explicit confirmation. 14 iManage Work actions are destructive, including delete a folder, delete a document and delete a library role. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my iManage Work API limit?
actionlake paces every call to the limits in the iManage Work service file: 300 calls a minute per connection. Repeated reads are answered from cache (65 iManage Work actions can be), which never reaches iManage Work.
What does an iManage Work action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (152 iManage Work actions page). Cache hits, searches, dry runs and calls iManage Work refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which iManage Work API does it cover?
The iManage Work Universal API v2 (REST, /work/api/v2) at your iManage Work instance's API base URL, which you enter when connecting. It is built from iManage Work's documentation as read on 23 October 2026. 152 actions in 20 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my iManage Work data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your iManage Work credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent iManage Work today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.