set_page_margins
Adjust page margins in a Word document by specifying top, right, bottom, and left values. Simplify document formatting for precise layout control.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bottom | No | ||
| filePath | Yes | ||
| left | No | ||
| right | No | ||
| top | No |
Implementation Reference
- src/services/DocumentService.ts:192-219 (handler)The core handler function that implements the set_page_margins tool by creating a new docx Document instance with the specified page margins (in twips) and overwriting the target file.async setPageMargins(filePath: string, margins: PageMargins): Promise<APIResponse> { try { const doc = new Document({ sections: [{ properties: { page: { margin: { top: margins.top || 1440, // 默认 1 英寸 (1440 twips) right: margins.right || 1440, bottom: margins.bottom || 1440, left: margins.left || 1440, }, }, }, children: [], }], }); 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}` }; } }
- src/types/index.ts:51-56 (schema)TypeScript interface defining the PageMargins type used as input for the setPageMargins handler.export interface PageMargins { top?: number; right?: number; bottom?: number; left?: number; }
- src/mcp-server.ts:150-176 (registration)MCP server registration for the 'set_page_margins' tool, including Zod schema for input validation and wrapper handler delegating to DocumentService.server.tool( "set_page_margins", { filePath: z.string(), top: z.number().optional(), right: z.number().optional(), bottom: z.number().optional(), left: z.number().optional(), }, async (params) => { const result = await docService.setPageMargins(params.filePath, { top: params.top, right: params.right, bottom: params.bottom, left: params.left, }); return { content: [ { type: "text", text: result.success ? "页面边距已设置" : result.error!, }, ], isError: !result.success, }; } );
- src/server.ts:82-94 (schema)JSON schema definition for the 'set_page_margins' tool exposed in the HTTP server's tools list endpoint.name: 'set_page_margins', description: '设置页面边距', parameters: { properties: { filePath: { type: 'string', description: '文档路径' }, top: { type: 'number', description: '上边距' }, right: { type: 'number', description: '右边距' }, bottom: { type: 'number', description: '下边距' }, left: { type: 'number', description: '左边距' }, }, required: ['filePath'], type: 'object', },
- src/server.ts:158-165 (registration)Dispatch handler in the HTTP server's tool call switch statement that invokes DocumentService.setPageMargins.case 'set_page_margins': result = await docService.setPageMargins(parameters.filePath, { top: parameters.top, right: parameters.right, bottom: parameters.bottom, left: parameters.left, }); break;