Skip to main content
Glama
trainual

Tiptap Collaboration MCP Server

by trainual

batch_import_documents

Import multiple documents in bulk into Tiptap Collaboration MCP Server using a structured JSON format, enabling efficient document versioning and management.

Instructions

Import multiple documents in bulk using a predefined JSON structure

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
documentsYesArray of document arrays, where each inner array represents versions of a single document

Implementation Reference

  • The handler function for the 'batch-import-documents' tool. It sends a PUT request to `/api/admin/batch-import` with the provided documents data, handles errors, and returns success or error messages.
    async ({ documents }) => {
      try {
        const headers: Record<string, string> = {
          'User-Agent': 'tiptap-collaboration-mcp',
          'Content-Type': 'application/json',
        };
    
        const token = getToken();
        if (token) headers['Authorization'] = token;
    
        const response = await fetch(`${getBaseUrl()}/api/admin/batch-import`, {
          method: 'PUT',
          headers,
          body: JSON.stringify(documents),
        });
    
        if (!response.ok) {
          if (response.status === 400) {
            return {
              content: [
                {
                  type: 'text',
                  text: 'Invalid data provided for batch import. Please check the document structure and format.',
                },
              ],
            };
          }
          return {
            content: [
              {
                type: 'text',
                text: `Failed to import documents. HTTP error: ${response.status} ${response.statusText}`,
              },
            ],
          };
        }
    
        return {
          content: [
            {
              type: 'text',
              text: `Successfully imported ${documents.length} document groups with their versions.`,
            },
          ],
        };
      } catch (error) {
        return {
          content: [
            {
              type: 'text',
              text: `Error importing documents: ${
                error instanceof Error ? error.message : 'Unknown error'
              }`,
            },
          ],
        };
      }
    }
  • Zod schema defining the input parameters for the tool: an array of arrays of document objects, each containing created_at, version, name, and tiptap_json.
    {
      documents: z.array(z.array(z.object({
        created_at: z.string().describe('Creation timestamp in ISO format'),
        version: z.number().describe('Document version number'),
        name: z.string().describe('Document name/identifier'),
        tiptap_json: z.object({}).describe('Document content in Tiptap JSON format'),
      }))).describe('Array of document arrays, where each inner array represents versions of a single document'),
    },
  • The registration function `registerBatchImportDocuments` that defines and registers the 'batch-import-documents' tool on the MCP server, including name, description, schema, and handler.
    export default function registerBatchImportDocuments(
      server: McpServer,
      getBaseUrl: () => string,
      getToken: () => string | undefined
    ) {
      server.tool(
        'batch-import-documents',
        'Bulk import multiple documents using predefined JSON structure',
        {
          documents: z.array(z.array(z.object({
            created_at: z.string().describe('Creation timestamp in ISO format'),
            version: z.number().describe('Document version number'),
            name: z.string().describe('Document name/identifier'),
            tiptap_json: z.object({}).describe('Document content in Tiptap JSON format'),
          }))).describe('Array of document arrays, where each inner array represents versions of a single document'),
        },
        async ({ documents }) => {
          try {
            const headers: Record<string, string> = {
              'User-Agent': 'tiptap-collaboration-mcp',
              'Content-Type': 'application/json',
            };
    
            const token = getToken();
            if (token) headers['Authorization'] = token;
    
            const response = await fetch(`${getBaseUrl()}/api/admin/batch-import`, {
              method: 'PUT',
              headers,
              body: JSON.stringify(documents),
            });
    
            if (!response.ok) {
              if (response.status === 400) {
                return {
                  content: [
                    {
                      type: 'text',
                      text: 'Invalid data provided for batch import. Please check the document structure and format.',
                    },
                  ],
                };
              }
              return {
                content: [
                  {
                    type: 'text',
                    text: `Failed to import documents. HTTP error: ${response.status} ${response.statusText}`,
                  },
                ],
              };
            }
    
            return {
              content: [
                {
                  type: 'text',
                  text: `Successfully imported ${documents.length} document groups with their versions.`,
                },
              ],
            };
          } catch (error) {
            return {
              content: [
                {
                  type: 'text',
                  text: `Error importing documents: ${
                    error instanceof Error ? error.message : 'Unknown error'
                  }`,
                },
              ],
            };
          }
        }
      );
    }
  • src/server.ts:46-46 (registration)
    Invocation of the registration function in the main server file to register the tool.
    registerBatchImportDocuments(server, getBaseUrl, getToken);
  • src/server.ts:2-2 (registration)
    Import of the registration module for the batch import documents tool.
    import registerBatchImportDocuments from './tools/batch-import-documents.js';
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/trainual/tiptap-collaboration-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server