Skip to main content
Glama

add_paragraph

Insert formatted text paragraphs into Word documents by specifying file path, content, and styling options like alignment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filePathYes
textYes
styleNo
alignmentNo

Implementation Reference

  • The core handler function for the 'add_paragraph' tool. It reads the existing document file, creates a new DOCX document containing a single paragraph with the specified text, style, and alignment, then overwrites the original file with this new content.
    async addParagraph(filePath: string, options: ParagraphOptions): Promise<APIResponse> { try { const buffer = await fs.readFile(filePath); const doc = new Document({ sections: [{ properties: {}, children: [ new Paragraph({ text: options.text, style: options.style, alignment: options.alignment, }), ], }], }); await Packer.toBuffer(doc).then((buffer) => { return fs.writeFile(filePath, buffer); }); return { success: true }; } catch (error) { const err = error as Error; return { success: false, error: `添加段落失败: ${err.message}` }; } }
  • TypeScript interface defining the structure and types for ParagraphOptions used as input to the addParagraph handler.
    export interface ParagraphOptions { text: string; style?: string; alignment?: 'left' | 'center' | 'right' | 'start' | 'end' | 'both' | 'mediumKashida' | 'distribute' | 'numTab' | 'highKashida' | 'lowKashida' | 'thaiDistribute'; fontSize?: number; bold?: boolean; italic?: boolean; }
  • MCP server registration of the 'add_paragraph' tool, including Zod input schema validation and a wrapper function that invokes the DocumentService handler and formats the MCP response.
    "add_paragraph", { filePath: z.string(), text: z.string(), style: z.string().optional(), alignment: z.enum(['left', 'center', 'right', 'start', 'end', 'both', 'mediumKashida', 'distribute', 'numTab', 'highKashida', 'lowKashida', 'thaiDistribute']).optional(), }, async (params) => { const result = await docService.addParagraph(params.filePath, { text: params.text, style: params.style, alignment: params.alignment, }); return { content: [ { type: "text", text: result.success ? "段落已添加" : result.error!, }, ], isError: !result.success, }; } );
  • src/server.ts:39-50 (registration)
    Tool schema definition and registration in the HTTP server's tools list for 'add_paragraph', used for /tools/list endpoint and dispatched in the switch statement.
    name: 'add_paragraph', description: '向文档添加段落', parameters: { properties: { filePath: { type: 'string', description: '文档路径' }, text: { type: 'string', description: '段落文本' }, style: { type: 'string', description: '段落样式' }, alignment: { type: 'string', description: '对齐方式' }, }, required: ['filePath', 'text'], type: 'object', },
  • src/server.ts:133-139 (registration)
    Dispatch handler in the HTTP server's /tools/call endpoint that routes 'add_paragraph' calls to the DocumentService.addParagraph method.
    case 'add_paragraph': result = await docService.addParagraph(parameters.filePath, { text: parameters.text, style: parameters.style, alignment: parameters.alignment, }); break;

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/puchunjie/doc-tools-mcp'

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