get-legal-hold-content-items
Retrieve content items under legal hold for a specified organization, case, and legal hold ID. Supports pagination to manage large data sets efficiently within the Miro MCP server.
Instructions
Retrieves the list of content items under legal hold (Enterprise only)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| caseId | Yes | The ID of the case for which you want to retrieve the list of content items under hold | |
| cursor | No | Cursor for pagination | |
| legalHoldId | Yes | The ID of the legal hold for which you want to retrieve the list of content items under hold | |
| limit | Yes | The maximum number of items in the result list | |
| orgId | Yes | The ID of the organization for which you want to retrieve the list of content items under hold |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"caseId": {
"description": "The ID of the case for which you want to retrieve the list of content items under hold",
"type": "string"
},
"cursor": {
"description": "Cursor for pagination",
"type": "string"
},
"legalHoldId": {
"description": "The ID of the legal hold for which you want to retrieve the list of content items under hold",
"type": "string"
},
"limit": {
"description": "The maximum number of items in the result list",
"type": "number"
},
"orgId": {
"description": "The ID of the organization for which you want to retrieve the list of content items under hold",
"type": "string"
}
},
"required": [
"orgId",
"caseId",
"legalHoldId",
"limit"
],
"type": "object"
}
Implementation Reference
- The asynchronous handler function that implements the core logic of the 'get-legal-hold-content-items' tool. It constructs a query object if a cursor is provided, calls the MiroClient API to fetch legal hold content items, and returns the formatted response or handles errors appropriately.fn: async ({ orgId, caseId, legalHoldId, limit, cursor }) => { try { const query: any = {}; if (cursor) query.cursor = cursor; const response = await MiroClient.getApi().getLegalHoldContentItems( orgId, caseId, legalHoldId, limit, query ); return ServerResponse.text(JSON.stringify(response.body, null, 2)); } catch (error) { process.stderr.write(`Error retrieving legal hold content items: ${error}\n`); return ServerResponse.error(error); } }
- The ToolSchema definition including the tool name, description, and Zod input schema (args) for validating parameters: orgId, caseId, legalHoldId, limit, and optional cursor.const getLegalHoldContentItemsTool: ToolSchema = { name: "get-legal-hold-content-items", description: "Retrieves the list of content items under legal hold (Enterprise only)", args: { orgId: z.string().describe("The ID of the organization for which you want to retrieve the list of content items under hold"), caseId: z.string().describe("The ID of the case for which you want to retrieve the list of content items under hold"), legalHoldId: z.string().describe("The ID of the legal hold for which you want to retrieve the list of content items under hold"), limit: z.number().describe("The maximum number of items in the result list"), cursor: z.string().optional().nullish().describe("Cursor for pagination") },
- src/index.ts:206-206 (registration)Registers the getLegalHoldContentItemsTool with the ToolBootstrapper instance in the main server index file. The tool is imported on line 105..register(getLegalHoldContentItemsTool)