{"versions":{"0.0.1":{"name":"codegen-mcp","version":"0.0.1","description":"MCP server for code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.1","gitHead":"2352099569c4897d087b729f8a093201e7003e3a","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-MYdzQv8l24lq6L6uh0KYBG8893R2rvukcW5Hd+QDNqLODdafyoXENQS1UrC+p+GX5YhzafqzBEpeQvM1ndjUwg==","shasum":"45d1af968745ff5fb4f7431da4a1c8047c3e8d88","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.1.tgz","fileCount":12,"unpackedSize":7051,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCcohQwyR2iUNl0XVBZxvVnx8B7u0l/HfdRQdCGoHyfTQIhALZjYSqmerpESRfWYsDoUZgVSZtVU/1e5H2VSuyz/0ep"}],"size":2932},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.1_1759542875959_0.040184032094279676"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-04T01:54:36.163Z","publish_time":1759542876163,"_source_registry_name":"default","contributors":[]},"0.0.2":{"name":"codegen-mcp","version":"0.0.2","description":"MCP server for code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.2","gitHead":"b536a31aaf346de31c0deec63923ea8cbe917818","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-DBFhoM9r9hApVgJAm+ZweD4XqaxjRwUes5J9/xJP/63ks6ll+QiXXXREn3iQ0gtCx61TOYiYqvhjh9/GfaU6uA==","shasum":"05664aad274722de6e1a140411a32b74df2c2e62","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.2.tgz","fileCount":18,"unpackedSize":40289,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCaMQecGSvYesjNRHkbPSYsEVuOlfPLbjNqpENXlO3xkQIgZwtJfilhcn+9FyOnSPkvolrE2/aOJlwxuvILIWmd3qU="}],"size":11328},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.2_1759544906522_0.8110609960212347"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-04T02:28:26.738Z","publish_time":1759544906738,"_source_registry_name":"default","contributors":[]},"0.0.3":{"name":"codegen-mcp","version":"0.0.3","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.3","gitHead":"65b91dad1d096c007c08d186f5a371c9d5634a45","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-3T/d1WEXPJ0laDNPHxE8A950lkIxA4HJLPvCixwxCjqGnqI+Ca0roGU5UqbvNo/coPhxtEweV3p1HR+zqu0VNA==","shasum":"b3570c36e61c15b4b61656ac131642050269f4fb","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.3.tgz","fileCount":46,"unpackedSize":204869,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzq45We+yap3oT5xBIRavQd162eGpbL7FO0MSvPg92wAIgWi4GmTTSFO2MboeH/rzVtMh6UVZwATGtx4ujNbVCG2s="}],"size":46304},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.3_1760009008469_0.5031673301511499"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-09T11:23:28.667Z","publish_time":1760009008667,"_source_registry_name":"default","contributors":[]},"0.0.4":{"name":"codegen-mcp","version":"0.0.4","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.4","gitHead":"65b91dad1d096c007c08d186f5a371c9d5634a45","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-FL2/bE020FY6YaKDOp3wc1mUiS23KQNTTS/OsKDhdjufHVRouCUgjtLPT4/eda0OO2HLzWxpUeljoxJoLI9F8g==","shasum":"e9607d2fade3ed536680661cffe70c20c01fb02e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.4.tgz","fileCount":51,"unpackedSize":267675,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBj2kUiq36FUmxhbsiW1y915+rsWOvZknfcet4hQYDrJAiBXUlhTY/xp6muEkte9LNxEIj2dTUomjOWH0IZOQ0DC6g=="}],"size":61402},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.4_1760010509561_0.5525613687832056"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-09T11:48:29.783Z","publish_time":1760010509783,"_source_registry_name":"default","contributors":[]},"0.0.5":{"name":"codegen-mcp","version":"0.0.5","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.5","gitHead":"65b91dad1d096c007c08d186f5a371c9d5634a45","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-LmE5uqOUvRvYoPgb/bSvlHQbC9ghXJ+tUUytPiAghqUmTBcruSyEMSWErdKdmWrnOcl4FpFVfErQXAZpgo06/Q==","shasum":"6e9a8409f12d54ce8d71e64f5964c02f737ac165","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.5.tgz","fileCount":42,"unpackedSize":177416,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDsYR6fNI+PoaQd1+N3j4k9DEJTZIoFq3tEm7s0FD3u3AiEAoaXYT0z45d/FEkDi1h8w4DhsX+hYtfJ63+Na9LqDxXY="}],"size":40265},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.5_1760011097000_0.6121270775966796"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-09T11:58:17.173Z","publish_time":1760011097173,"_source_registry_name":"default","contributors":[]},"0.0.6":{"name":"codegen-mcp","version":"0.0.6","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.6","gitHead":"42b9478276a5437f7b8f53fba6286f80378e8894","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-MPy5WA8K2f1EuQ6fktreGSzqxJHBfaxjvMhMU0EeTAdeONY5Y7La9CrutjWZjiGHUEk3m3bEzakwltzzu14R+Q==","shasum":"306ec55f79efe622cde6e2fef365d877e66b6f08","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.6.tgz","fileCount":42,"unpackedSize":177439,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICuQ8Z/bRLXb1YOQAkx8MQJvWXdrpqjZ+8s9IIKHepfVAiAQ+xdovfZ7aMtmwE770rO57roCbIRJrDc1827uVWwNEg=="}],"size":40274},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.6_1760013962561_0.4181892940268206"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-09T12:46:02.748Z","publish_time":1760013962748,"_source_registry_name":"default","contributors":[]},"0.0.7":{"name":"codegen-mcp","version":"0.0.7","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.7","gitHead":"42b9478276a5437f7b8f53fba6286f80378e8894","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Bj2SYspjYCK//7kWH8vV13ucmdnHwoTyoWVGfw7HkKLmTxLw8PHmXXSimtGUtZEU87ZusK8KnMj2WBZ9xmL7yQ==","shasum":"c9b7447dbe8c0f775195ffca219a100e670af3a1","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.7.tgz","fileCount":42,"unpackedSize":176769,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCSGT14rYNLqd0faee0Mkbwf6Te2Vubbqyf4bQ49OOTKgIhAOYFNvZ/IOBL3bJEwHTUDc59xSDxQapOQt0lmUTju01l"}],"size":40287},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.7_1760014803051_0.47830648292741085"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-09T13:00:03.314Z","publish_time":1760014803314,"_source_registry_name":"default","contributors":[]},"0.0.8":{"name":"codegen-mcp","version":"0.0.8","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.8","gitHead":"6a69c1d07c6e8736675f24a41ee13bbb5a415f06","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-t5E9EBDpTm0nAei+MMKcHebRLdZAujzzQ94GLNLOj5pvQ8C+fPN+nZjgv1xqu8xiLtc5LR6FHAN3o719swX8Qw==","shasum":"af017a8cf03da8eb90553f2382f17f1e0e654bbd","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.8.tgz","fileCount":42,"unpackedSize":178203,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDASSWqdHO0PfhbmSAJutcdUMY1f6AKI472yqYeFdRq3gIhALMIfv9Tuphaxx7JvnOM01Qsy7ZO2dQwlnEfyRKdhtU1"}],"size":40633},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.8_1760066468493_0.6432145337513908"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-10T03:21:08.701Z","publish_time":1760066468701,"_source_registry_name":"default","contributors":[]},"0.0.9":{"name":"codegen-mcp","version":"0.0.9","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.9","gitHead":"ac8200b576be66a487f84382384c1193825bf2dd","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mB3Z6Rh0Xvp6e8iNbhvjNcYDqwlkU6fHodXU4ZYhyGZf5gQs4x1TxoStJPtyLhXzPORdAjxZzqPAsmH7LQb8mA==","shasum":"5c68b0fd36ba2367611e61a980a6407f2efc024a","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.9.tgz","fileCount":42,"unpackedSize":178526,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA1O8cP5u3sBSABfZCX98isJmKPirW8sZ4jQ1AIteOckAiA+CWu9JyJIHr+N9CKmUZF3rzSaIWilH+bUWbBtItVdLA=="}],"size":40706},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.9_1760069424287_0.20025941804435865"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-10T04:10:24.476Z","publish_time":1760069424476,"_source_registry_name":"default","contributors":[]},"0.0.10":{"name":"codegen-mcp","version":"0.0.10","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.10","gitHead":"269272f3e5d4c8632cf3ce13c09ed0600ca4caa9","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-bAC3g7KF4QKtx0KX4LbYIOFKRH6gwEbzrM4DHn5sa7EQhwgJSN3oXYlvBZDLc/KBzx2uASSjfuOTlQtz8QR7Pg==","shasum":"e3ac183d8d6fa04c1b34e4ed63ff91a08673414d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.10.tgz","fileCount":42,"unpackedSize":179294,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDqzgN3+aLasDDazdD7qtOV+3w266VcDDY1DJbm6mX+fAiAWFc0x+aJvVyLauimV6qZe+DYnptLDFw3O4p84UBy5oQ=="}],"size":40815},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.10_1760075133256_0.1522075685409292"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-10T05:45:33.451Z","publish_time":1760075133451,"_source_registry_name":"default","contributors":[]},"0.0.11":{"name":"codegen-mcp","version":"0.0.11","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.11","gitHead":"2b0e89116255bd53e865fcaa026b87cc06efccbc","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Mdh1oO5XMP7Sv0yPfLXj03BsG00myNynUnnYYXXsmIDOLYaGHV05nLe9CqkOZBgMgDEb1DrXq41zIcSqrkb3JQ==","shasum":"b491cf1c2de8a39d1d6454dd70dc3f1bc24daf6d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.11.tgz","fileCount":42,"unpackedSize":192924,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDrZj/fZodH7HB1cNlGp+CYWob8Aj4h/EA7fFdAem46rwIhAPM0+gEFKRI7we0cwAy9gf/+GCx8BdXThqBa/XOT+/rv"}],"size":42629},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.11_1760086981751_0.7965821198098137"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-10T09:03:01.928Z","publish_time":1760086981928,"_source_registry_name":"default","contributors":[]},"0.0.12":{"name":"codegen-mcp","version":"0.0.12","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.12","gitHead":"208cb7617c72f08a340fe2f300657d82842aba1e","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-7T8MiVTS9HFKilvrHKjFPxKavwgAG8fxzz/Pdz2twtSupEQNTx8UVpl0oGhA0oshM3K5H0J9ZUGZ2hKLJn4oIg==","shasum":"021cb50574b1f999b93432c7c1847437123320f4","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.12.tgz","fileCount":46,"unpackedSize":205271,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCJlm5u7rHODBsZxXBkBEirAZoKqKS2ErGczlP6m3q+YgIhAKKq5HZQakbRdNJb9AZdppCuw2kuWxGAIFg4K68AfYOF"}],"size":44957},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.12_1760774691332_0.2085686426525779"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-18T08:04:51.550Z","publish_time":1760774691550,"_source_registry_name":"default","contributors":[]},"0.0.13":{"name":"codegen-mcp","version":"0.0.13","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.13","gitHead":"3c712d4320363d1a64e2e02077ec4830c53e4b7b","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-nywX5T4j2k26qok/hz4RSnDNpxoZlPH7frpcTNLx9OTgvhqplwzwDqhDIc4FV8+LerI1cgTUOk7ME9kOuys11w==","shasum":"4cf5f5e46c618cf6b88193f1352be04f3acec193","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.13.tgz","fileCount":46,"unpackedSize":205769,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCNCyQka6PzogBjNfp1c3869uJtX0NrYSFEkov6Ed0B7QIgPWFO3lvmJEl1CxiZFFf01BWbIFoR5MyzTC+dp2EAKb0="}],"size":45083},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.13_1760797603490_0.7911627029158996"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-18T14:26:43.726Z","publish_time":1760797603726,"_source_registry_name":"default","contributors":[]},"0.0.14":{"name":"codegen-mcp","version":"0.0.14","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.14","gitHead":"e81e8964bdb38a7bbcd483fe50e305a2f6b9515b","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-TKmEGOLAM5RZmCBywzdY2A8DF5MkvcjM0lOQVSudZSLgTPMsc1edxuyqm9/FpJapL2OcZI01gDFnIc5aX7jkhA==","shasum":"9134cbf896dd52873b3610c36eef40a6ca20b3cd","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.14.tgz","fileCount":46,"unpackedSize":235126,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDg9wZUb7nU6+hoyhq7GrharO6saNLrXKUt34Pem8UE1QIhAJEYjmnOoqe1dzHruNLzkPcwgaXbtkMgu/gQ3BG/Nzfl"}],"size":47722},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.14_1760949538667_0.45507196426265417"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-20T08:38:58.920Z","publish_time":1760949538920,"_source_registry_name":"default","contributors":[]},"0.0.15":{"name":"codegen-mcp","version":"0.0.15","description":"MCP server for design workflow & code generation","main":"dist/index.js","bin":{"codegen-mcp":"dist/index.js"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js"},"keywords":["mcp","code generation"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.5.0","nunjucks":"^3.2.4"},"devDependencies":{"@types/node":"^20.0.0","@types/nunjucks":"^3.2.3","typescript":"^5.0.0"},"_id":"codegen-mcp@0.0.15","gitHead":"2662f17eea4134dfe763c2a9745a9d51ea88d412","types":"./dist/index.d.ts","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-4awyyxVqkgE6A7uF5NjB8Pvca/SlhcMgXDtmw64/RcgVQ9qMFrqvEA14EMXbo6Xg2yfUyE9KxQQgkyNXARW1Og==","shasum":"b0e9788a2cfeb7e1d5da12bc53911e900ebb375d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/codegen-mcp/-/codegen-mcp-0.0.15.tgz","fileCount":46,"unpackedSize":236311,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCIs0hk229FZ3M8GNVH6MSHkyvqOYwfbzxE/1OZ8UAHCwIgNVT7ekATGFDWIS6ewK3Pd/md7P4lTviDsLQoO1+bt4o="}],"size":48157},"_npmUser":{"name":"anonymous","email":"57425586@qq.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"57425586@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codegen-mcp_0.0.15_1761203368509_0.14502483607434447"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-23T07:09:28.737Z","publish_time":1761203368737,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"0.0.15"},"name":"codegen-mcp","time":{"created":"2025-10-04T01:54:40.972Z","modified":"2025-10-23T07:09:45.098Z","0.0.1":"2025-10-04T01:54:36.163Z","0.0.2":"2025-10-04T02:28:26.738Z","0.0.3":"2025-10-09T11:23:28.667Z","0.0.4":"2025-10-09T11:48:29.783Z","0.0.5":"2025-10-09T11:58:17.173Z","0.0.6":"2025-10-09T12:46:02.748Z","0.0.7":"2025-10-09T13:00:03.314Z","0.0.8":"2025-10-10T03:21:08.701Z","0.0.9":"2025-10-10T04:10:24.476Z","0.0.10":"2025-10-10T05:45:33.451Z","0.0.11":"2025-10-10T09:03:01.928Z","0.0.12":"2025-10-18T08:04:51.550Z","0.0.13":"2025-10-18T14:26:43.726Z","0.0.14":"2025-10-20T08:38:58.920Z","0.0.15":"2025-10-23T07:09:28.737Z"},"readme":"# CodeGen MCP Server\n\n基于 MCP (Model Context Protocol) 的智能代码生成服务器，通过 Nunjucks 模板引擎和灵活的 JSON 配置实现快速、可定制的代码生成。\n\n> 🚀 **新功能**：通用工作流引擎！[5分钟快速开始 →](QUICK-START-WORKFLOW.md)\n\n## 项目概述\n\nCodeGen MCP Server 是一个强大的代码生成工具，专为现代开发工作流设计。它通过 MCP 协议与 AI 助手（如 Claude）无缝集成，支持从简单的单文件生成到复杂的多层架构项目脚手架搭建。\n\n### 核心特性\n\n- ✅ **MCP 协议集成** - 与 AI 助手原生集成，支持智能代码生成\n- ✅ **强大的模板引擎** - 基于 Nunjucks，支持变量、循环、条件、过滤器等高级语法\n- ✅ **灵活的配置系统** - 支持最小化配置，自动推断完整配置\n- ✅ **智能文件命名** - 支持文件名和目录名的变量替换\n- ✅ **多项目支持** - 内置 Maven 项目、Web 前端等多种模板\n- ✅ **自动目录管理** - 智能创建输出目录结构\n- ✅ **完整错误处理** - 详细的错误信息和验证机制\n- ✅ **非模板文件支持** - 自动复制非模板文件（如图片、配置文件等）\n- ✅ **丰富的过滤器** - 内置多种命名转换过滤器（驼峰、下划线、短横线等）\n\n## 快速开始\n\n### 安装\n\n**方式一：全局安装（推荐）**\n```bash\nnpm install -g codegen-mcp\n```\n\n**方式二：从源码构建**\n```bash\ngit clone <repository-url>\ncd codegen-mcp\nnpm install\nnpm run build\n```\n\n### 配置 MCP 客户端\n\n在您的 MCP 客户端配置文件（如 Claude Desktop 的配置）中添加：\n\n**生产环境配置（推荐）：**\n```json\n{\n  \"mcpServers\": {\n    \"codegen-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"codegen-mcp\"]\n    }\n  }\n}\n```\n\n**开发环境配置：**\n```json\n{\n  \"mcpServers\": {\n    \"codegen-mcp-dev\": {\n      \"command\": \"node\",\n      \"args\": [\"D:/absolute/path/to/codegen-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\n### 基本使用\n\n通过 MCP 客户端调用 `generate_code` 工具：\n\n```json\n{\n  \"templateDir\": \"D:/path/to/template\",\n  \"configJsonFile\": \"D:/path/to/config.json\",\n  \"outputDir\": \"D:/path/to/output\"\n}\n```\n\n**参数说明：**\n- `templateDir`: 模板目录路径（必需）\n- `configJsonFile`: JSON 配置文件路径（必需）\n- `outputDir`: 代码输出目录路径（必需）\n\n## 模板开发指南\n\n### 模板文件规则\n\n#### 文件命名约定\n- **模板文件**：使用 `.njk` 扩展名（如 `{{className}}.java.njk`）\n- **非模板文件**：保持原扩展名，会被直接复制到输出目录\n- **变量替换**：文件名和目录名都支持 `{{variableName}}` 语法\n\n#### 支持的 Nunjucks 语法\n```nunjucks\n{# 1. 变量输出 #}\n{{variableName}}\n\n{# 2. 访问对象属性 #}\n{{project.name}}\n{{table.columns[0].name}}\n\n{# 3. 循环 #}\n{% for field in fields %}\n  private {{field.type}} {{field.name}};\n{% endfor %}\n\n{# 4. 条件判断 #}\n{% if table.workflow.enabled %}\n  // 工作流相关代码\n{% endif %}\n\n{# 5. 过滤器 #}\n{{className | capitalize}}    // 首字母大写\n{{fieldName | lower}}         // 首字母小写\n{{name | upper}}              // 全大写\n{{name | snakeCase}}          // 驼峰转下划线\n{{name | kebabCase}}          // 驼峰转短横线\n{{package | path}}            // com.example => com/example\n```\n\n### 内置过滤器完整列表\n\n| 过滤器 | 说明 | 示例 | 输出 |\n|-------|------|------|------|\n| `capitalize` | 首字母大写 | `{{\"userName\" \\| capitalize}}` | `UserName` |\n| `lower` / `camel` | 首字母小写（驼峰） | `{{\"UserName\" \\| lower}}` | `userName` |\n| `upper` | 全大写 | `{{\"user\" \\| upper}}` | `USER` |\n| `snakeCase` | 驼峰转下划线 | `{{\"userName\" \\| snakeCase}}` | `user_name` |\n| `kebabCase` | 驼峰转短横线 | `{{\"userName\" \\| kebabCase}}` | `user-name` |\n| `pascal` | 帕斯卡命名 | `{{\"userName\" \\| pascal}}` | `UserName` |\n| `path` | 包名转路径 | `{{\"com.example\" \\| path}}` | `com/example` |\n| `className` | 项目名转类名 | `{{\"cms.demo\" \\| className}}` | `Demo` |\n| `includes` | 字符串包含检查 | `{{\"test\" \\| includes(\"es\")}}` | `true` |\n\n### 配置文件结构\n\n#### 最小化配置（推荐）\n\n配置系统支持智能推断，您只需提供必要字段：\n\n```json\n{\n  \"project\": {\n    \"name\": \"cms.demo\",\n    \"basePackage\": \"foo.bar.cms.demo\"\n  },\n  \"table\": {\n    \"name\": \"t_user\",\n    \"columns\": [\n      {\n        \"name\": \"id\",\n        \"type\": \"BIGINT\",\n        \"comment\": \"用户ID\",\n        \"unique\": true\n      },\n      {\n        \"name\": \"username\",\n        \"type\": \"VARCHAR(50)\",\n        \"comment\": \"用户名\"\n      }\n    ]\n  }\n}\n```\n\n#### 完整配置结构\n\n系统会自动推断和填充以下字段：\n\n```json\n{\n  \"project\": {\n    \"name\": \"cms.demo\",              // 必需\n    \"shortName\": \"demo\",             // 自动推断\n    \"basePackage\": \"foo.bar.cms.demo\", // 必需\n    \"basePackagePath\": \"foo/bar/cms/demo\", // 自动推断\n    \"groupId\": \"foo.bar.cms\",        // 自动推断\n    \"version\": \"0.0.1-SNAPSHOT\",     // 默认值\n    \"author\": \"generator\",            // 默认值\n    \"databaseType\": \"mysql\",          // 默认值\n    \"workflowEnabled\": true,          // 默认值\n    \"currentDate\": \"2025-10-09\"       // 自动生成\n  },\n  \"table\": {\n    \"name\": \"t_user\",                 // 必需\n    \"moduleName\": \"user\",             // 自动推断\n    \"entityName\": \"User\",             // 自动推断\n    \"lowerCaseName\": \"user\",          // 自动推断\n    \"kebabCaseName\": \"user\",          // 自动推断\n    \"businessType\": \"FSMCUSER\",       // 自动推断\n    \"columns\": [\n      {\n        \"name\": \"id\",                 // 必需\n        \"javaName\": \"id\",             // 自动推断\n        \"type\": \"BIGINT\",             // 必需\n        \"javaType\": \"Long\",           // 自动推断\n        \"jdbcType\": \"BIGINT\",         // 自动推断\n        \"comment\": \"用户ID\",          // 可选\n        \"unique\": true,               // 可选\n        \"nullable\": true,             // 默认 true\n        \"audit\": false                // 默认 false\n      }\n    ],\n    \"queryConditions\": [...],         // 自动推断\n    \"indexes\": [...],                 // 自动推断\n    \"workflow\": {                     // 自动生成\n      \"enabled\": true,\n      \"submitMethod\": \"submitUserApproval\",\n      \"approveMethod\": \"approveUser\",\n      \"refuseMethod\": \"refuseUser\",\n      \"businessType\": \"FSMCUSER\",\n      \"moduleCode\": \"USER\"\n    }\n  }\n}\n```\n\n## 实战示例\n\n### 示例 1：简单 Java 实体类生成\n\n#### 1. 创建模板文件\n\n创建模板目录 `template/entity/`，添加文件 `{{table.entityName}}.java.njk`：\n\n```nunjucks\npackage {{project.basePackage}}.entity;\n\nimport java.io.Serializable;\n\n/**\n * {{table.name}} - {{table.entityName}} 实体类\n *\n * @author {{project.author}}\n * @date {{project.currentDate}}\n */\npublic class {{table.entityName}} implements Serializable {\n\n    {% for column in table.columns %}\n    /** {{column.comment}} */\n    private {{column.javaType}} {{column.javaName}};\n    {% endfor %}\n\n    // Getter and Setter methods\n    {% for column in table.columns %}\n    public {{column.javaType}} get{{column.javaName | capitalize}}() {\n        return this.{{column.javaName}};\n    }\n\n    public void set{{column.javaName | capitalize}}({{column.javaType}} {{column.javaName}}) {\n        this.{{column.javaName}} = {{column.javaName}};\n    }\n    {% endfor %}\n}\n```\n\n#### 2. 创建配置文件 `config.json`\n\n```json\n{\n  \"project\": {\n    \"name\": \"myapp\",\n    \"basePackage\": \"com.example.myapp\",\n    \"author\": \"张三\"\n  },\n  \"table\": {\n    \"name\": \"t_user\",\n    \"columns\": [\n      {\"name\": \"id\", \"type\": \"BIGINT\", \"comment\": \"主键ID\"},\n      {\"name\": \"user_name\", \"type\": \"VARCHAR(50)\", \"comment\": \"用户名\"},\n      {\"name\": \"email\", \"type\": \"VARCHAR(100)\", \"comment\": \"邮箱\"}\n    ]\n  }\n}\n```\n\n#### 3. 通过 MCP 调用生成代码\n\n```json\n{\n  \"templateDir\": \"D:/templates/entity\",\n  \"configJsonFile\": \"D:/config/user-config.json\",\n  \"outputDir\": \"D:/output/myapp\"\n}\n```\n\n#### 4. 生成结果\n\n输出文件：`D:/output/myapp/User.java`\n\n```java\npackage com.example.myapp.entity;\n\nimport java.io.Serializable;\n\n/**\n * t_user - User 实体类\n *\n * @author 张三\n * @date 2025-10-09\n */\npublic class User implements Serializable {\n\n    /** 主键ID */\n    private Long id;\n    /** 用户名 */\n    private String userName;\n    /** 邮箱 */\n    private String email;\n\n    // ... getter/setter 方法\n}\n```\n\n### 示例 2：完整 Maven 项目脚手架\n\n本项目内置了完整的 Maven 多模块项目模板（`template/cms-init/`），可快速生成企业级项目结构：\n\n```json\n{\n  \"project\": {\n    \"name\": \"cms.demo\",\n    \"basePackage\": \"foo.bar.cms.demo\"\n  }\n}\n```\n\n生成的项目结构：\n```\ncms.demo/\n├── pom.xml\n├── cms.demo.common/\n├── cms.demo.service/\n├── cms.demo.impl/\n├── cms.demo.web/\n├── cms.demo.war/\n└── cms.demo.job/\n```\n\n### 示例 3：Web 前端项目初始化\n\n使用 `template/web-init/` 模板生成 Vue.js 项目：\n\n```json\n{\n  \"project\": {\n    \"name\": \"web.demo\",\n    \"shortName\": \"demo\"\n  }\n}\n```\n\n## 项目架构\n\n### 目录结构\n\n```\ncodegen-mcp/\n├── src/                           # 源代码目录\n│   ├── index.ts                  # MCP 服务器主入口\n│   ├── code-generator.ts         # 代码生成核心引擎\n│   ├── prepare-config.ts         # 配置预处理和智能推断\n│   └── types/\n│       └── module.types.ts       # TypeScript 类型定义\n├── template/                      # 内置模板库\n│   ├── cms-init/                 # Maven 项目初始化模板\n│   ├── cms-crud/                 # Maven CRUD 模块模板\n│   ├── web-init/                 # Vue.js 项目初始化模板\n│   ├── web-crud/                 # Vue.js CRUD 页面模板\n│   ├── config-minimal.json       # 最小化配置示例\n│   └── config-single-table.json  # 单表配置示例\n├── example/                       # MCP 配置示例\n│   ├── mcp-server.json           # 生产环境配置\n│   └── mcp-server-dev.json       # 开发环境配置\n├── test/                          # 测试文件\n│   ├── test-generate-code.js\n│   ├── test-maven-project.js\n│   └── test-web-init.js\n├── dist/                          # 编译输出目录（自动生成）\n├── package.json                   # 项目元数据和依赖\n├── tsconfig.json                  # TypeScript 编译配置\n├── README.md                      # 项目文档（本文件）\n├── INTRO.md                       # 设计文档和技术细节\n└── ROADMAP.md                     # 版本规划和路线图\n```\n\n### 核心模块\n\n#### 1. MCP 服务器（`src/index.ts`）\n- 实现 MCP 协议标准\n- 提供 `generate_code` 工具\n- 处理请求验证和错误处理\n- 支持 stdio 传输协议\n\n#### 2. 代码生成引擎（`src/code-generator.ts`）\n- Nunjucks 模板渲染\n- 文件和目录遍历\n- 变量替换和过滤器处理\n- 智能目录结构创建\n\n#### 3. 配置处理器（`src/prepare-config.ts`）\n- 配置验证和规范化\n- 智能字段推断\n- 审计字段自动添加\n- 查询条件和索引自动生成\n\n## 开发指南\n\n### 环境要求\n\n- Node.js >= 16.0.0\n- npm >= 7.0.0\n- TypeScript >= 5.0.0\n\n### 本地开发\n\n```bash\n# 1. 克隆仓库\ngit clone <repository-url>\ncd codegen-mcp\n\n# 2. 安装依赖\nnpm install\n\n# 3. 开发模式（自动编译）\nnpm run dev\n\n# 4. 构建生产版本\nnpm run build\n\n# 5. 启动服务器\nnpm start\n```\n\n### 测试\n\n```bash\n# 运行基础测试\nnode test/test-generate-code.js\n\n# 测试 Maven 项目生成\nnode test/test-maven-project.js\n\n# 测试 Web 项目生成\nnode test/test-web-init.js\n```\n\n### 创建自定义模板\n\n1. 在 `template/` 目录创建模板文件夹\n2. 使用 `.njk` 扩展名编写模板\n3. 在文件名中使用 `{{}}` 变量语法\n4. 创建对应的配置 JSON 文件\n5. 通过 MCP 调用测试\n\n---\n\n## 通用工作流引擎（NEW ✨）\n\n### 简介\n\nCodeGen MCP 提供了一套**通用的四阶段工作流引擎**，专为解决复杂设计任务的 LLM 上下文限制问题。通过 MCP 工具管理 Prompt 和工作流进度，让 LLM 在独立上下文中执行智能工作。\n\n**工作流模式**：\n```\nArchitect (架构设计) → Plan (任务规划) → Execute (执行实现) → Review (质量审查)\n```\n\n**核心理念**：\n- **MCP 职责**：管理 Prompts、追踪进度、保存文件（不执行智能决策）\n- **LLM 职责**：根据 Prompt 指引，自主分析、设计、生成（所有智能工作）\n- **通用性**：同一引擎支持多种场景（数据库设计、API 设计、组件库等）\n\n### MCP 工具\n\n工作流引擎提供 4 个 MCP 工具：\n\n| 工具名称 | 功能 | 使用场景 |\n|---------|------|---------|\n| `workflow_get_prompt` | 获取阶段 Prompt 和上下文 | 开始新阶段或获取任务上下文 |\n| `workflow_save_result` | 保存阶段结果和更新状态 | 完成阶段工作后保存文件 |\n| `workflow_get_status` | 获取工作流状态和进度 | 查看整体进度和下一步建议 |\n| `workflow_list_items` | 列出 Execute 阶段任务清单 | 查看待执行任务 |\n\n### 快速开始\n\n```typescript\n// 1. 启动架构设计（首次调用自动初始化工作流）\nworkflow_get_prompt({\n  stage: \"architect\",\n  workDir: \"/path/to/work\",\n  workflowType: \"database-design\"  // 首次调用时必需\n})\n\n// 2. 保存架构设计结果\nworkflow_save_result({\n  stage: \"architect\",\n  workDir: \"/path/to/work\",\n  files: [{ path: \"architecture/设计说明.md\", content: \"...\" }],\n  metadata: { status: \"completed\" }\n})\n\n// 3. 继续任务规划、执行实现、质量审查...\n// 后续阶段无需再指定 workflowType（自动从状态中读取）\nworkflow_get_prompt({\n  stage: \"plan\",\n  workDir: \"/path/to/work\"  // workflowType 可省略\n})\n```\n\n**智能初始化**：首次调用 `workflow_get_prompt` 且 `stage=\"architect\"` 时，工作流会自动初始化。后续阶段自动从状态文件读取工作流类型，无需重复指定。\n\n### 内置工作流\n\n#### 1. 数据库设计工作流 (`database-design`)\n\n解决企业级数据库设计（15-50张表）的上下文限制问题。\n\n- **Architect**: 设计表清单、ER图、模块划分\n- **Plan**: 拆分成 2-4 张表的任务批次\n- **Execute**: 自主设计表结构 JSON 配置\n- **Review**: 交叉验证一致性和完整性\n\n详见：[数据库设计工作流](#数据库设计工作流new)\n\n#### 2. API 设计工作流 (`api-design`)\n\n解决大规模 RESTful API 设计（20-50个端点）的上下文限制问题。\n\n- **Architect**: 设计资源清单、路由规划、认证方案\n- **Plan**: 按模块拆分成 3-6 个端点的批次\n- **Execute**: 设计 OpenAPI 3.0 规范文件\n- **Review**: 审查 RESTful 规范性、Schema 一致性\n\n文档：`prompts/api-design/README.md`\n\n### 创建自定义工作流\n\n1. 创建 Prompts 目录结构：\n```\nmy-prompts/\n└── my-workflow/\n    ├── workflow.config.json\n    ├── architect.md\n    ├── plan.md\n    ├── execute.md\n    └── review.md\n```\n\n2. 配置环境变量：\n```json\n{\n  \"mcpServers\": {\n    \"codegen-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"codegen-mcp\"],\n      \"env\": {\n        \"WORKFLOW_PROMPTS_DIR\": \"/path/to/my-prompts\"\n      }\n    }\n  }\n}\n```\n\n3. 编写 Prompt 文件（参考 `prompts/database-design/` 或 `prompts/api-design/`）\n\n### 详细文档\n\n完整的工作流引擎文档请参阅：**[docs/WORKFLOW-ENGINE.md](docs/WORKFLOW-ENGINE.md)**\n\n内容包括：\n- MCP 工具详细参考\n- 配置指南\n- 创建自定义工作流步骤\n- 设计原则和最佳实践\n- 技术架构\n\n### AI 助手使用指南\n\n如果您是 AI 助手（如 Claude），或者想指导 AI 正确使用这些工具：\n\n- **[AI 使用指南（详细版）](docs/AI-USAGE-GUIDE.md)** - 面向 AI 助手的完整使用指南\n- **[AI 系统提示词](docs/AI-SYSTEM-PROMPT.md)** - 精简版系统提示词\n- **[用户提示词模板](docs/USER-PROMPT-TEMPLATE.md)** - 用户可以直接复制的提示词模板\n\n---\n\n## 数据库设计工作流（NEW）\n\n为企业级系统设计数据库时，面对几十张表的复杂场景，我们提供了**四阶段分治式设计工作流**，有效解决 LLM 上下文限制问题。\n\n### 工作流概览\n\n```\n┌──────────────────┐\n│ 阶段一：架构设计  │  /db-design-start\n│ 产出：表清单+ER图 │\n└──────────────────┘\n         ↓\n┌──────────────────┐\n│ 阶段二：任务拆分  │  /db-design-plan\n│ 产出：独立任务文件│\n└──────────────────┘\n         ↓\n┌──────────────────┐\n│ 阶段三：表设计    │  /db-design-table task-XX\n│ 产出：JSON配置    │  （多次迭代，每次2-4张表）\n└──────────────────┘\n         ↓\n┌──────────────────┐\n│ 阶段四：配置审查  │  /db-design-review\n│ 产出：审查报告    │\n└──────────────────┘\n```\n\n### 快速开始\n\n#### 步骤 1：架构设计\n```\n执行：/db-design-start\n\n提供：业务需求描述 / 需求文档 / 原型设计\n\n生成：db-design/数据库设计说明.md\n  - 模块划分\n  - 表清单（15张表）\n  - ER 图\n  - 表关系说明\n```\n\n#### 步骤 2：任务拆分\n```\n执行：/db-design-plan\n\n生成：\n  - db-design/tasks/task-01-订单核心.md\n  - db-design/tasks/task-02-订单扩展.md\n  - ...（6个任务文件）\n  - db-design/tasks-status.json（状态追踪）\n\n每个任务文件包含：\n  ✅ 要设计的表清单（2-4张）\n  ✅ 输入资源路径（需求文档、原型页面）\n  ✅ 表关系说明\n  ✅ 设计指引和验证清单\n  ❌ 不包含字段建议（由表设计师自主分析）\n```\n\n#### 步骤 3：逐表设计（多次迭代）\n```\n第1次：/db-design-table task-01\n  读取：任务文件 + 需求文档 + 原型\n  分析：业务需求，提取字段\n  生成：db-design/configs/t_order_info.json\n       db-design/configs/t_order_item.json\n\n第2次：/db-design-table task-02\n  ...（重复6次，完成所有15张表）\n```\n\n#### 步骤 4：配置审查\n```\n执行：/db-design-review\n\n检查：\n  ✅ 命名规范\n  ✅ 数据类型一致性\n  ✅ 外键关系完整性\n  ✅ 索引设计合理性\n\n生成：db-design/审查报告.md\n  - 🔴 严重问题（必须修复）\n  - ⚠️ 警告问题（建议修复）\n  - ✅ 优秀实践\n  - 💡 改进建议\n```\n\n### 核心优势\n\n| 对比维度 | 传统单次设计 | 四阶段工作流 |\n|---------|-------------|-------------|\n| 上下文压力 | ❌ 极高 | ✅ 分批处理 |\n| 输出质量 | ⚠️ 前高后低 | ✅ 全程稳定 |\n| 可维护性 | ❌ 难以修改 | ✅ 单表独立 |\n| 可扩展性 | ❌ 需重新生成 | ✅ 增量调整 |\n| 并行能力 | ❌ 不支持 | ✅ 可并行设计 |\n\n### 设计理念\n\n#### 1. 自顶向下\n- 架构师：规划整体，不陷入细节\n- 任务拆分器：组织资源，不提前设计\n- 表设计师：自主分析，深入细节\n- 审查师：全局验证，发现问题\n\n#### 2. 任务即文件\n每个任务文件是**独立的、自包含的工作单元**：\n- ✅ 包含完整上下文和输入资源路径\n- ✅ 可在不同对话中执行（上下文隔离）\n- ✅ 可并行执行（多个任务同时进行）\n\n#### 3. 资源驱动设计\n任务拆分器**不提供字段建议**，只整理输入资源：\n- 需求文档章节路径\n- 原型页面路径\n- 业务规则文档路径\n- 依赖表配置路径\n\n表设计师根据这些资源**自主设计**字段、类型、约束。\n\n### 文件结构示例\n\n```\ndb-design/\n├── 数据库设计说明.md          # 阶段一输出\n├── tasks/                     # 阶段二输出\n│   ├── task-01-订单核心.md\n│   ├── task-02-订单扩展.md\n│   └── ...\n├── tasks-status.json         # 任务状态追踪\n├── configs/                  # 阶段三输出\n│   ├── t_order_info.json\n│   ├── t_order_item.json\n│   └── ...\n└── 审查报告.md               # 阶段四输出\n```\n\n### 相关文档\n\n- [`.claude/prompts/db-architect.md`](.claude/prompts/db-architect.md) - 架构设计师指引\n- [`.claude/prompts/db-task-planner.md`](.claude/prompts/db-task-planner.md) - 任务拆分器指引\n- [`.claude/prompts/db-table-designer.md`](.claude/prompts/db-table-designer.md) - 表设计师指引\n- [`.claude/prompts/db-config-reviewer.md`](.claude/prompts/db-config-reviewer.md) - 配置审查师指引\n\n---\n\n## 常见问题\n\n### Q: 如何调试模板？\nA: 在模板中使用 `{{variableName | dump}}` 查看变量内容，或检查生成的文件输出。\n\n### Q: 支持哪些数据库类型映射？\nA: 支持 MySQL、Oracle、PostgreSQL 常见类型，详见 `src/prepare-config.ts:314`。\n\n### Q: 如何添加自定义过滤器？\nA: 在 `src/code-generator.ts:47` 的 `filters` 对象中添加新过滤器函数。\n\n### Q: 配置推断规则可以自定义吗？\nA: 可以修改 `src/prepare-config.ts` 中的推断函数，如 `inferEntityName`、`inferModuleName` 等。\n\n### Q: 如何处理中文路径？\nA: Windows 系统建议使用绝对路径，且避免路径中包含特殊字符。\n\n## 错误处理\n\n### 常见错误类型\n\n| 错误代码 | 说明 | 解决方案 |\n|---------|------|---------|\n| `TEMPLATE_DIR_NOT_FOUND` | 模板目录不存在 | 检查 templateDir 路径是否正确 |\n| `GENERATION_ERROR` | 代码生成失败 | 检查模板语法和配置格式 |\n| `配置文件不存在` | JSON 文件路径错误 | 验证 configJsonFile 路径 |\n| `项目名称是必需的` | 缺少必需配置字段 | 补充 project.name 和 project.basePackage |\n\n### 错误响应格式\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"错误描述\",\n    \"details\": \"详细信息（可选）\"\n  }\n}\n```\n\n## 技术栈\n\n- **MCP SDK**: @modelcontextprotocol/sdk ^0.5.0\n- **模板引擎**: Nunjucks ^3.2.4\n- **运行时**: Node.js (ES Modules)\n- **语言**: TypeScript 5.0+\n- **构建工具**: tsc\n\n## 贡献指南\n\n欢迎提交 Issue 和 Pull Request！\n\n1. Fork 本项目\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 开启 Pull Request\n\n## 版本历史\n\n- **v0.0.2** (当前版本)\n  - 完善配置推断系统\n  - 新增多种内置过滤器\n  - 优化目录处理逻辑\n\n- **v0.0.1**\n  - 初始版本发布\n  - 基础代码生成功能\n  - MCP 协议集成\n\n## 相关文档\n\n- [INTRO.md](./INTRO.md) - 设计文档和技术细节\n- [ROADMAP.md](./ROADMAP.md) - 版本规划和未来特性\n- [MCP 官方文档](https://modelcontextprotocol.io/)\n- [Nunjucks 文档](https://mozilla.github.io/nunjucks/)\n\n## 许可证\n\nMIT License\n\nCopyright (c) 2025\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.","users":{}}