mcp-docs-service 0.5.1 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/handlers/documents.js +484 -411
- package/dist/index.js +284 -144
- package/package.json +5 -2
- package/dist/index.d.ts +0 -8
- package/dist/index.js.map +0 -1
package/dist/index.js
CHANGED
@@ -16,12 +16,15 @@ import { safeLog, normalizePath } from "./utils/index.js";
|
|
16
16
|
// Import schemas
|
17
17
|
import { ReadDocumentSchema, WriteDocumentSchema, EditDocumentSchema, ListDocumentsSchema, SearchDocumentsSchema, CheckDocumentationHealthSchema, CreateFolderSchema, MoveDocumentSchema, RenameDocumentSchema, UpdateNavigationOrderSchema, CreateSectionSchema, ValidateLinksSchema, ValidateMetadataSchema, } from "./schemas/index.js";
|
18
18
|
// Import handlers
|
19
|
-
import {
|
19
|
+
import { NavigationHandler, HealthCheckHandler } from "./handlers/index.js";
|
20
|
+
// Import our document handler
|
21
|
+
import { DocumentHandler } from "./handlers/documents.js";
|
20
22
|
// Command line argument parsing
|
21
23
|
const args = process.argv.slice(2);
|
22
24
|
let docsDir = path.join(process.cwd(), "docs");
|
23
25
|
let createDir = false;
|
24
26
|
let runHealthCheck = false;
|
27
|
+
let useSingleDoc = false;
|
25
28
|
// Parse arguments
|
26
29
|
for (let i = 0; i < args.length; i++) {
|
27
30
|
if (args[i] === "--docs-dir" && i + 1 < args.length) {
|
@@ -34,12 +37,25 @@ for (let i = 0; i < args.length; i++) {
|
|
34
37
|
else if (args[i] === "--health-check") {
|
35
38
|
runHealthCheck = true;
|
36
39
|
}
|
40
|
+
else if (args[i] === "--single-doc") {
|
41
|
+
useSingleDoc = true;
|
42
|
+
}
|
37
43
|
else if (!args[i].startsWith("--")) {
|
38
44
|
docsDir = path.resolve(args[i]);
|
39
45
|
}
|
40
46
|
}
|
41
47
|
// Normalize path
|
42
48
|
docsDir = normalizePath(docsDir);
|
49
|
+
// Helper function to check if a file exists
|
50
|
+
async function fileExists(filePath) {
|
51
|
+
try {
|
52
|
+
await fs.access(filePath);
|
53
|
+
return true;
|
54
|
+
}
|
55
|
+
catch {
|
56
|
+
return false;
|
57
|
+
}
|
58
|
+
}
|
43
59
|
// Ensure docs directory exists
|
44
60
|
async function ensureDocsDirectory() {
|
45
61
|
try {
|
@@ -86,8 +102,8 @@ This is the documentation directory for your project.
|
|
86
102
|
}
|
87
103
|
}
|
88
104
|
}
|
89
|
-
//
|
90
|
-
const documentHandler = new DocumentHandler(docsDir);
|
105
|
+
// Create handlers
|
106
|
+
const documentHandler = new DocumentHandler(docsDir, useSingleDoc);
|
91
107
|
const navigationHandler = new NavigationHandler(docsDir);
|
92
108
|
const healthCheckHandler = new HealthCheckHandler(docsDir);
|
93
109
|
// Server setup
|
@@ -101,98 +117,225 @@ const server = new Server({
|
|
101
117
|
});
|
102
118
|
// Tool handlers
|
103
119
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
"
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
"
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
120
|
+
if (useSingleDoc) {
|
121
|
+
return {
|
122
|
+
tools: [
|
123
|
+
{
|
124
|
+
name: "read_document",
|
125
|
+
description: "Read a markdown document from the docs directory. Returns the document content " +
|
126
|
+
"including frontmatter. In single-doc mode, this will always return the consolidated document.",
|
127
|
+
inputSchema: zodToJsonSchema(ReadDocumentSchema),
|
128
|
+
},
|
129
|
+
{
|
130
|
+
name: "write_document",
|
131
|
+
description: "Create a new markdown document or completely overwrite an existing document with new content. " +
|
132
|
+
"In single-doc mode, this will automatically update the consolidated document.",
|
133
|
+
inputSchema: zodToJsonSchema(WriteDocumentSchema),
|
134
|
+
},
|
135
|
+
{
|
136
|
+
name: "generate_llms_doc",
|
137
|
+
description: "Generate a single comprehensive document optimized for LLMs by compiling content from all " +
|
138
|
+
"markdown documents in the docs directory. This creates or refreshes the single_doc.md file.",
|
139
|
+
inputSchema: { type: "object", properties: {} },
|
140
|
+
},
|
141
|
+
{
|
142
|
+
name: "interactive_template",
|
143
|
+
description: "Interactively prompts the human user for information to fill in a document template. " +
|
144
|
+
"Useful for creating standardized documentation with user input.",
|
145
|
+
inputSchema: {
|
146
|
+
type: "object",
|
147
|
+
properties: {
|
148
|
+
template_type: {
|
149
|
+
type: "string",
|
150
|
+
description: "The type of template to use (feature, api, guide, etc.)",
|
151
|
+
},
|
152
|
+
output_path: {
|
153
|
+
type: "string",
|
154
|
+
description: "The path where the generated document should be saved",
|
155
|
+
},
|
156
|
+
},
|
157
|
+
required: ["template_type", "output_path"],
|
158
|
+
},
|
159
|
+
},
|
160
|
+
],
|
161
|
+
};
|
162
|
+
}
|
163
|
+
else {
|
164
|
+
return {
|
165
|
+
tools: [
|
166
|
+
{
|
167
|
+
name: "read_document",
|
168
|
+
description: "Read a markdown document from the docs directory. Returns the document content " +
|
169
|
+
"including frontmatter. Use this tool when you need to examine the contents of a " +
|
170
|
+
"single document.",
|
171
|
+
inputSchema: zodToJsonSchema(ReadDocumentSchema),
|
172
|
+
},
|
173
|
+
{
|
174
|
+
name: "write_document",
|
175
|
+
description: "Create a new markdown document or completely overwrite an existing document with new content. " +
|
176
|
+
"Use with caution as it will overwrite existing documents without warning. " +
|
177
|
+
"Can create parent directories if they don't exist.",
|
178
|
+
inputSchema: zodToJsonSchema(WriteDocumentSchema),
|
179
|
+
},
|
180
|
+
{
|
181
|
+
name: "edit_document",
|
182
|
+
description: "Make line-based edits to a markdown document. Each edit replaces exact line sequences " +
|
183
|
+
"with new content. Returns a git-style diff showing the changes made.",
|
184
|
+
inputSchema: zodToJsonSchema(EditDocumentSchema),
|
185
|
+
},
|
186
|
+
{
|
187
|
+
name: "list_documents",
|
188
|
+
description: "List all markdown documents in the docs directory or a subdirectory. " +
|
189
|
+
"Returns the relative paths to all documents.",
|
190
|
+
inputSchema: zodToJsonSchema(ListDocumentsSchema),
|
191
|
+
},
|
192
|
+
{
|
193
|
+
name: "search_documents",
|
194
|
+
description: "Search for markdown documents containing specific text in their content or frontmatter. " +
|
195
|
+
"Returns the relative paths to matching documents.",
|
196
|
+
inputSchema: zodToJsonSchema(SearchDocumentsSchema),
|
197
|
+
},
|
198
|
+
{
|
199
|
+
name: "generate_documentation_navigation",
|
200
|
+
description: "Generate a navigation structure from the markdown documents in the docs directory. " +
|
201
|
+
"Returns a JSON structure that can be used for navigation menus.",
|
202
|
+
inputSchema: zodToJsonSchema(ListDocumentsSchema),
|
203
|
+
},
|
204
|
+
{
|
205
|
+
name: "check_documentation_health",
|
206
|
+
description: "Check the health of the documentation by analyzing frontmatter, links, and navigation. " +
|
207
|
+
"Returns a report with issues and a health score.",
|
208
|
+
inputSchema: zodToJsonSchema(CheckDocumentationHealthSchema),
|
209
|
+
},
|
210
|
+
// New tools for Phase 2
|
211
|
+
{
|
212
|
+
name: "create_folder",
|
213
|
+
description: "Create a new folder in the docs directory. Optionally creates a README.md file " +
|
214
|
+
"in the new folder with basic frontmatter.",
|
215
|
+
inputSchema: zodToJsonSchema(CreateFolderSchema),
|
216
|
+
},
|
217
|
+
{
|
218
|
+
name: "move_document",
|
219
|
+
description: "Move a document from one location to another. Optionally updates references to the " +
|
220
|
+
"document in other files.",
|
221
|
+
inputSchema: zodToJsonSchema(MoveDocumentSchema),
|
222
|
+
},
|
223
|
+
{
|
224
|
+
name: "rename_document",
|
225
|
+
description: "Rename a document while preserving its location and content. Optionally updates " +
|
226
|
+
"references to the document in other files.",
|
227
|
+
inputSchema: zodToJsonSchema(RenameDocumentSchema),
|
228
|
+
},
|
229
|
+
{
|
230
|
+
name: "update_navigation_order",
|
231
|
+
description: "Update the navigation order of a document by modifying its frontmatter.",
|
232
|
+
inputSchema: zodToJsonSchema(UpdateNavigationOrderSchema),
|
233
|
+
},
|
234
|
+
{
|
235
|
+
name: "create_documentation_section",
|
236
|
+
description: "Create a new navigation section with an index.md file.",
|
237
|
+
inputSchema: zodToJsonSchema(CreateSectionSchema),
|
238
|
+
},
|
239
|
+
// New tools for Phase 3
|
240
|
+
{
|
241
|
+
name: "validate_documentation_links",
|
242
|
+
description: "Check for broken internal links in documentation files.",
|
243
|
+
inputSchema: zodToJsonSchema(ValidateLinksSchema),
|
244
|
+
},
|
245
|
+
{
|
246
|
+
name: "validate_documentation_metadata",
|
247
|
+
description: "Ensure all documents have required metadata fields.",
|
248
|
+
inputSchema: zodToJsonSchema(ValidateMetadataSchema),
|
249
|
+
},
|
250
|
+
],
|
251
|
+
};
|
252
|
+
}
|
192
253
|
});
|
193
254
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
194
255
|
try {
|
195
256
|
const { name, arguments: args } = request.params;
|
257
|
+
// Handle form responses
|
258
|
+
if (request.params._meta?.formResponse && request.params._meta?.metadata) {
|
259
|
+
const formResponse = request.params._meta.formResponse;
|
260
|
+
const metadata = request.params._meta.metadata;
|
261
|
+
if (metadata.template_type) {
|
262
|
+
const templateType = metadata.template_type;
|
263
|
+
const outputPath = metadata.output_path;
|
264
|
+
// Format tags from comma-separated string
|
265
|
+
const tags = formResponse.tags?.split(",").map((tag) => tag.trim()) || [];
|
266
|
+
// Create frontmatter
|
267
|
+
const frontmatter = {
|
268
|
+
title: formResponse.title || "Untitled",
|
269
|
+
description: formResponse.description || "",
|
270
|
+
author: formResponse.author || "Unknown",
|
271
|
+
tags,
|
272
|
+
status: formResponse.status || "draft",
|
273
|
+
date: new Date().toISOString(),
|
274
|
+
version: "1.0.0",
|
275
|
+
};
|
276
|
+
// Create document content based on template type
|
277
|
+
let content = `# ${formResponse.title || "Untitled"}\n\n${formResponse.description || ""}\n\n`;
|
278
|
+
if (templateType === "feature") {
|
279
|
+
content += `## Usage\n\nDescribe how to use this feature.\n\n`;
|
280
|
+
content += `## Examples\n\nProvide examples of how to use this feature.\n\n`;
|
281
|
+
content += `## Configuration\n\nDescribe any configuration options.\n\n`;
|
282
|
+
}
|
283
|
+
else if (templateType === "api") {
|
284
|
+
content += `## Endpoint\n\n\`\`\`\n/api/path\n\`\`\`\n\n`;
|
285
|
+
}
|
286
|
+
// Format frontmatter
|
287
|
+
const frontmatterYaml = `---\n${Object.entries(frontmatter)
|
288
|
+
.map(([key, value]) => {
|
289
|
+
if (Array.isArray(value)) {
|
290
|
+
return `${key}:\n${value
|
291
|
+
.map((item) => ` - ${item}`)
|
292
|
+
.join("\n")}`;
|
293
|
+
}
|
294
|
+
return `${key}: ${typeof value === "string" ? `"${value}"` : value}`;
|
295
|
+
})
|
296
|
+
.join("\n")}\n---\n\n`;
|
297
|
+
// Create full document
|
298
|
+
const fullContent = frontmatterYaml + content;
|
299
|
+
// Write the document
|
300
|
+
const docPath = path.join(docsDir, outputPath);
|
301
|
+
const dirPath = path.dirname(docPath);
|
302
|
+
try {
|
303
|
+
await fs.mkdir(dirPath, { recursive: true });
|
304
|
+
await fs.writeFile(docPath, fullContent, "utf-8");
|
305
|
+
// If in single-doc mode, regenerate the single doc
|
306
|
+
if (useSingleDoc) {
|
307
|
+
const singleDocPath = path.join(docsDir, "single_doc.md");
|
308
|
+
if (await fileExists(singleDocPath)) {
|
309
|
+
// Regenerate the single doc by calling refresh
|
310
|
+
await documentHandler.refreshSingleDoc();
|
311
|
+
}
|
312
|
+
}
|
313
|
+
return {
|
314
|
+
content: [
|
315
|
+
{
|
316
|
+
type: "text",
|
317
|
+
text: `Successfully created document at ${outputPath}`,
|
318
|
+
},
|
319
|
+
],
|
320
|
+
metadata: {
|
321
|
+
path: outputPath,
|
322
|
+
},
|
323
|
+
};
|
324
|
+
}
|
325
|
+
catch (error) {
|
326
|
+
return {
|
327
|
+
content: [
|
328
|
+
{
|
329
|
+
type: "text",
|
330
|
+
text: `Error creating document: ${error.message || String(error)}`,
|
331
|
+
},
|
332
|
+
],
|
333
|
+
isError: true,
|
334
|
+
};
|
335
|
+
}
|
336
|
+
}
|
337
|
+
}
|
338
|
+
// Handle regular tool calls
|
196
339
|
switch (name) {
|
197
340
|
case "read_document": {
|
198
341
|
const parsed = ReadDocumentSchema.safeParse(args);
|
@@ -244,94 +387,91 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
244
387
|
return await healthCheckHandler.checkDocumentationHealth(parsed.data.basePath);
|
245
388
|
}
|
246
389
|
// New tools for Phase 2
|
247
|
-
case "
|
390
|
+
case "create_folder": {
|
248
391
|
const parsed = CreateFolderSchema.safeParse(args);
|
249
392
|
if (!parsed.success) {
|
250
393
|
throw new Error(`Invalid arguments for create_folder: ${parsed.error}`);
|
251
394
|
}
|
252
|
-
|
395
|
+
throw new Error("Method not implemented");
|
253
396
|
}
|
254
|
-
case "
|
397
|
+
case "move_document": {
|
255
398
|
const parsed = MoveDocumentSchema.safeParse(args);
|
256
399
|
if (!parsed.success) {
|
257
400
|
throw new Error(`Invalid arguments for move_document: ${parsed.error}`);
|
258
401
|
}
|
259
|
-
|
402
|
+
throw new Error("Method not implemented");
|
260
403
|
}
|
261
|
-
case "
|
404
|
+
case "rename_document": {
|
262
405
|
const parsed = RenameDocumentSchema.safeParse(args);
|
263
406
|
if (!parsed.success) {
|
264
407
|
throw new Error(`Invalid arguments for rename_document: ${parsed.error}`);
|
265
408
|
}
|
266
|
-
|
409
|
+
throw new Error("Method not implemented");
|
267
410
|
}
|
268
|
-
case "
|
411
|
+
case "update_navigation_order": {
|
269
412
|
const parsed = UpdateNavigationOrderSchema.safeParse(args);
|
270
413
|
if (!parsed.success) {
|
271
414
|
throw new Error(`Invalid arguments for update_navigation_order: ${parsed.error}`);
|
272
415
|
}
|
273
|
-
|
416
|
+
throw new Error("Method not implemented");
|
274
417
|
}
|
275
|
-
case "
|
276
|
-
|
277
|
-
|
278
|
-
throw new Error(`Invalid arguments for create_section: ${parsed.error}`);
|
418
|
+
case "generate_llms_doc":
|
419
|
+
if (!useSingleDoc) {
|
420
|
+
throw new Error("Single-doc mode is not enabled");
|
279
421
|
}
|
280
|
-
return await documentHandler.
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
const parsed = ValidateLinksSchema.safeParse(args);
|
285
|
-
if (!parsed.success) {
|
286
|
-
throw new Error(`Invalid arguments for validate_links: ${parsed.error}`);
|
422
|
+
return await documentHandler.refreshSingleDoc();
|
423
|
+
case "interactive_template": {
|
424
|
+
if (!args) {
|
425
|
+
throw new Error(`Invalid arguments for interactive_template: args is undefined`);
|
287
426
|
}
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
const
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
427
|
+
const template_type = args.template_type;
|
428
|
+
const output_path = args.output_path;
|
429
|
+
// Build a form as text content
|
430
|
+
const formText = `# Create ${template_type.charAt(0).toUpperCase() + template_type.slice(1)} Documentation\n\n` +
|
431
|
+
`Please provide the following information to create your ${template_type} documentation at '${output_path}':\n\n` +
|
432
|
+
`- Title: [${template_type.charAt(0).toUpperCase() + template_type.slice(1)} Name]\n` +
|
433
|
+
`- Description: [Description of this ${template_type}]\n` +
|
434
|
+
`- Author: [Documentation Team]\n` +
|
435
|
+
`- Tags (comma separated): [${template_type}]\n` +
|
436
|
+
`- Status: [draft]\n\n` +
|
437
|
+
`Once you provide this information, I'll create the document for you.`;
|
438
|
+
return {
|
439
|
+
content: [{ type: "text", text: formText }],
|
440
|
+
metadata: {
|
441
|
+
template_type,
|
442
|
+
output_path,
|
443
|
+
},
|
444
|
+
};
|
296
445
|
}
|
297
446
|
default:
|
298
447
|
throw new Error(`Unknown tool: ${name}`);
|
299
448
|
}
|
300
449
|
}
|
301
450
|
catch (error) {
|
302
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
303
451
|
return {
|
304
|
-
content: [
|
452
|
+
content: [
|
453
|
+
{ type: "text", text: `Error: ${error.message || String(error)}` },
|
454
|
+
],
|
305
455
|
isError: true,
|
306
456
|
};
|
307
457
|
}
|
308
458
|
});
|
309
|
-
//
|
310
|
-
|
459
|
+
// Start server
|
460
|
+
(async () => {
|
311
461
|
try {
|
312
|
-
|
313
|
-
|
314
|
-
|
462
|
+
await ensureDocsDirectory();
|
463
|
+
const transport = new StdioServerTransport();
|
464
|
+
await server.connect(transport);
|
465
|
+
// The server will be started by the SDK
|
466
|
+
safeLog("MCP Documentation Management Service started.");
|
467
|
+
safeLog("Using docs directory:", docsDir);
|
468
|
+
if (useSingleDoc) {
|
469
|
+
safeLog("Single-doc mode enabled.");
|
470
|
+
}
|
471
|
+
safeLog("Reading from stdin, writing results to stdout...");
|
315
472
|
}
|
316
473
|
catch (error) {
|
317
|
-
safeLog(
|
474
|
+
safeLog("Fatal error running server:", error);
|
318
475
|
process.exit(1);
|
319
476
|
}
|
320
|
-
}
|
321
|
-
else {
|
322
|
-
// Start server
|
323
|
-
(async () => {
|
324
|
-
try {
|
325
|
-
await ensureDocsDirectory();
|
326
|
-
const transport = new StdioServerTransport();
|
327
|
-
await server.connect(transport);
|
328
|
-
safeLog("MCP Documentation Management Service started.");
|
329
|
-
safeLog("Using docs directory:", docsDir);
|
330
|
-
safeLog("Reading from stdin, writing results to stdout...");
|
331
|
-
}
|
332
|
-
catch (error) {
|
333
|
-
safeLog("Fatal error running server:", error);
|
334
|
-
process.exit(1);
|
335
|
-
}
|
336
|
-
})();
|
337
|
-
}
|
477
|
+
})();
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mcp-docs-service",
|
3
|
-
"version": "
|
3
|
+
"version": "7.1.0",
|
4
4
|
"description": "MCP Documentation Service - A Model Context Protocol implementation for documentation management",
|
5
5
|
"type": "module",
|
6
6
|
"main": "dist/index.js",
|
@@ -20,8 +20,11 @@
|
|
20
20
|
"test": "vitest run",
|
21
21
|
"test:watch": "vitest",
|
22
22
|
"test:coverage": "vitest run --coverage",
|
23
|
+
"test:integration": "node tests/integration/test-single-doc.js",
|
24
|
+
"test:clients": "node tests/clients/test-all-tools.js",
|
23
25
|
"prepublishOnly": "npm run build",
|
24
|
-
"prepare-publish": "node scripts/prepare-publish.js"
|
26
|
+
"prepare-publish": "node scripts/prepare-publish.js",
|
27
|
+
"clean": "rm -rf dist coverage temp-publish"
|
25
28
|
},
|
26
29
|
"keywords": [
|
27
30
|
"mcp",
|
package/dist/index.d.ts
DELETED
package/dist/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|