generate_documentation
Generate detailed documentation and comments for code to improve readability and maintainability. Supports multiple programming languages and documentation formats.
Instructions
为代码生成详细的文档和注释
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 要生成文档的代码 | |
| language | Yes | 编程语言 | |
| docType | Yes | 文档类型 |
Implementation Reference
- src/index.ts:205-223 (handler)MCP tool handler for 'generate_documentation': validates arguments using Zod, calls generateDocumentation helper, and formats response as MCP content.private async handleGenerateDocumentation(args: any) { const schema = z.object({ code: z.string(), language: z.string(), docType: z.enum(['inline', 'markdown', 'jsdoc']).default('markdown') }); const { code, language, docType } = schema.parse(args); const result = await generateDocumentation(code, language, docType); return { content: [ { type: 'text', text: result } ] }; }
- src/index.ts:69-87 (schema)Input schema for the generate_documentation tool, defining parameters: code (string), language (string), docType (enum: inline/markdown/jsdoc).inputSchema: { type: 'object', properties: { code: { type: 'string', description: '要生成文档的代码' }, language: { type: 'string', description: '编程语言' }, docType: { type: 'string', enum: ['inline', 'markdown', 'jsdoc'], description: '文档类型' } }, required: ['code', 'language', 'docType'] }
- src/index.ts:66-88 (registration)Tool registration in ListTools response: defines name, description, and references inputSchema for generate_documentation.{ name: 'generate_documentation', description: '为代码生成详细的文档和注释', inputSchema: { type: 'object', properties: { code: { type: 'string', description: '要生成文档的代码' }, language: { type: 'string', description: '编程语言' }, docType: { type: 'string', enum: ['inline', 'markdown', 'jsdoc'], description: '文档类型' } }, required: ['code', 'language', 'docType'] } },
- src/tools/docGenerator.ts:6-20 (helper)Core helper function implementing documentation generation: dispatches to inline comments, JSDoc, or Markdown based on docType.export async function generateDocumentation( code: string, language: string, docType: 'inline' | 'markdown' | 'jsdoc' = 'markdown' ): Promise<string> { switch (docType) { case 'inline': return generateInlineComments(code, language); case 'jsdoc': return generateJSDoc(code, language); case 'markdown': default: return generateMarkdownDoc(code, language); } }