Skip to main content
Glama

add_table

Insert structured data tables into Microsoft Word documents programmatically by specifying headers and rows for organized content presentation.

Instructions

Add a table to the document

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
docIdYesDocument identifier
headersYesTable header row
rowsYesTable data rows

Implementation Reference

  • The switch case that handles the 'add_table' tool invocation, calling the underlying documentManager.addTable method and returning a formatted success message.
    case "add_table": documentManager.addTable(args.docId, args.headers, args.rows); return { content: [ { type: "text", text: `Table added with ${args.headers.length} columns and ${args.rows.length} rows.`, }, ], };
  • Defines the input schema for the add_table tool, specifying docId, headers as array of strings, and rows as 2D array of strings.
    inputSchema: { type: "object", properties: { docId: { type: "string", description: "Document identifier", }, headers: { type: "array", items: { type: "string" }, description: "Table header row", }, rows: { type: "array", items: { type: "array", items: { type: "string" }, }, description: "Table data rows", }, }, required: ["docId", "headers", "rows"], },
  • src/index.ts:24-28 (registration)
    Registers all document tools, including 'add_table', for the MCP server by returning the documentTools array in response to list tools requests.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: documentTools, }; });
  • Implements the core logic for adding a table to a document, constructing TableRows for headers (with bold and shading) and data rows using the docx library, then appending to the document paragraphs.
    addTable(docId: string, headers: string[], rows: string[][]): void { const docInfo = this.getDocument(docId); const tableRows: TableRow[] = []; // Add header row const headerRow = new TableRow({ children: headers.map( (header) => new TableCell({ children: [new Paragraph({ children: [new TextRun({ text: header, bold: true })], })], shading: { fill: "D3D3D3", }, }) ), }); tableRows.push(headerRow); // Add data rows rows.forEach((row) => { const tableRow = new TableRow({ children: row.map( (cell) => new TableCell({ children: [new Paragraph(cell)], }) ), }); tableRows.push(tableRow); }); const table = new Table({ rows: tableRows, width: { size: 100, type: WidthType.PERCENTAGE, }, }); // Tables need to be added differently - we'll add as a section child docInfo.paragraphs.push(table as any); this.updateDocument(docId); }

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/bibash44/word-documet-mcp-server'

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