mcp-docs-service 0.2.0 → 0.2.1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/LICENSE +1 -1
  3. package/README.md +29 -57
  4. package/dist/handlers/docs.d.ts +17 -0
  5. package/dist/handlers/docs.js +280 -0
  6. package/dist/handlers/docs.js.map +1 -0
  7. package/dist/handlers/file.d.ts +32 -0
  8. package/dist/handlers/file.js +222 -0
  9. package/dist/handlers/file.js.map +1 -0
  10. package/dist/handlers/index.d.ts +1 -0
  11. package/dist/handlers/index.js +3 -0
  12. package/dist/handlers/index.js.map +1 -0
  13. package/dist/index.d.ts +2 -24
  14. package/dist/index.js +431 -49
  15. package/dist/index.js.map +1 -1
  16. package/dist/schemas/index.d.ts +1 -0
  17. package/dist/schemas/index.js +3 -0
  18. package/dist/schemas/index.js.map +1 -0
  19. package/dist/schemas/tools.d.ts +141 -0
  20. package/dist/schemas/tools.js +46 -0
  21. package/dist/schemas/tools.js.map +1 -0
  22. package/dist/types/docs.d.ts +49 -0
  23. package/dist/types/docs.js +2 -0
  24. package/dist/types/docs.js.map +1 -0
  25. package/dist/types/file.d.ts +21 -0
  26. package/dist/types/file.js +2 -0
  27. package/dist/types/file.js.map +1 -0
  28. package/dist/types/index.d.ts +34 -43
  29. package/dist/types/index.js +3 -5
  30. package/dist/types/index.js.map +1 -1
  31. package/dist/types/tools.d.ts +11 -0
  32. package/dist/types/tools.js +2 -0
  33. package/dist/types/tools.js.map +1 -0
  34. package/dist/utils/file.d.ts +24 -0
  35. package/dist/utils/file.js +94 -0
  36. package/dist/utils/file.js.map +1 -0
  37. package/dist/utils/index.d.ts +1 -60
  38. package/dist/utils/index.js +2 -151
  39. package/dist/utils/index.js.map +1 -1
  40. package/dist/utils/path.d.ts +16 -0
  41. package/dist/utils/path.js +39 -0
  42. package/dist/utils/path.js.map +1 -0
  43. package/package.json +20 -8
  44. package/dist/cli/bin.d.ts +0 -6
  45. package/dist/cli/bin.js +0 -49
  46. package/dist/cli/bin.js.map +0 -1
  47. package/dist/cli/index.d.ts +0 -16
  48. package/dist/cli/index.js +0 -108
  49. package/dist/cli/index.js.map +0 -1
  50. package/dist/cli/jsonrpc.d.ts +0 -29
  51. package/dist/cli/jsonrpc.js +0 -121
  52. package/dist/cli/jsonrpc.js.map +0 -1
  53. package/dist/core/docAnalyzer.d.ts +0 -25
  54. package/dist/core/docAnalyzer.js +0 -118
  55. package/dist/core/docAnalyzer.js.map +0 -1
  56. package/dist/core/docManager.d.ts +0 -48
  57. package/dist/core/docManager.js +0 -257
  58. package/dist/core/docManager.js.map +0 -1
  59. package/dist/core/docProcessor.d.ts +0 -20
  60. package/dist/core/docProcessor.js +0 -127
  61. package/dist/core/docProcessor.js.map +0 -1
  62. package/dist/core/mcpDocsServer.d.ts +0 -61
  63. package/dist/core/mcpDocsServer.js +0 -395
  64. package/dist/core/mcpDocsServer.js.map +0 -1
@@ -1,257 +0,0 @@
1
- "use strict";
2
- /**
3
- * Document Manager for handling file operations
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.DocManager = void 0;
30
- const fs = __importStar(require("fs"));
31
- const fsPromises = __importStar(require("fs/promises"));
32
- const path = __importStar(require("path"));
33
- const docProcessor_js_1 = require("./docProcessor.js");
34
- class DocManager {
35
- constructor(baseDir = "./docs", options = {}) {
36
- this.baseDir = baseDir;
37
- this.options = {
38
- createIfNotExists: options.createIfNotExists ?? false,
39
- fileExtensions: options.fileExtensions ?? [".md", ".mdx"],
40
- };
41
- // Initialize directory if needed
42
- this.initializeDirectory();
43
- }
44
- /**
45
- * Initialize the docs directory
46
- */
47
- initializeDirectory() {
48
- try {
49
- // Check if directory exists
50
- fs.accessSync(this.baseDir);
51
- console.error(`Using existing docs directory: ${this.baseDir}`);
52
- }
53
- catch (error) {
54
- // Directory doesn't exist
55
- if (this.options.createIfNotExists) {
56
- try {
57
- fs.mkdirSync(this.baseDir, { recursive: true });
58
- console.error(`Created docs directory: ${this.baseDir}`);
59
- // Create a sample README.md file in the new directory
60
- const readmePath = path.join(this.baseDir, "README.md");
61
- const readmeContent = `# Documentation\n\nThis directory was created by the MCP Documentation Service.\n`;
62
- fs.writeFileSync(readmePath, readmeContent, "utf-8");
63
- console.error(`Created sample README.md in ${this.baseDir}`);
64
- }
65
- catch (createError) {
66
- console.error(`Failed to create docs directory: ${createError}`);
67
- }
68
- }
69
- else {
70
- console.error(`Docs directory doesn't exist: ${this.baseDir}`);
71
- console.error("Use --create-dir option to create it automatically");
72
- }
73
- }
74
- }
75
- /**
76
- * List all markdown files in a directory recursively
77
- */
78
- async listMarkdownFiles(dir = "") {
79
- const fullDir = path.join(this.baseDir, dir);
80
- const files = [];
81
- try {
82
- const entries = await fsPromises.readdir(fullDir, {
83
- withFileTypes: true,
84
- });
85
- for (const entry of entries) {
86
- const entryPath = path.join(dir, entry.name).replace(/^\//, "");
87
- if (entry.isDirectory()) {
88
- const subDirFiles = await this.listMarkdownFiles(entryPath);
89
- files.push(...subDirFiles);
90
- }
91
- else if (entry.isFile() && entry.name.endsWith(".md")) {
92
- files.push(entryPath);
93
- }
94
- }
95
- }
96
- catch (error) {
97
- console.error(`Error listing files in ${fullDir}:`, error);
98
- }
99
- return files;
100
- }
101
- /**
102
- * Get document content and metadata
103
- */
104
- async getDocument(filePath) {
105
- try {
106
- const fullPath = path.join(this.baseDir, filePath);
107
- const content = await fsPromises.readFile(fullPath, "utf-8");
108
- return (0, docProcessor_js_1.parseMarkdownWithFrontMatter)(filePath, content);
109
- }
110
- catch (error) {
111
- console.error(`Error reading document ${filePath}:`, error);
112
- return null;
113
- }
114
- }
115
- /**
116
- * List directories in the docs folder
117
- */
118
- async listDirectories(dir = "") {
119
- const fullDir = path.join(this.baseDir, dir);
120
- const directories = [];
121
- try {
122
- const entries = await fsPromises.readdir(fullDir, {
123
- withFileTypes: true,
124
- });
125
- for (const entry of entries) {
126
- if (entry.isDirectory()) {
127
- const dirPath = path.join(dir, entry.name).replace(/^\//, "");
128
- directories.push(dirPath);
129
- }
130
- }
131
- }
132
- catch (error) {
133
- console.error(`Error listing directories in ${fullDir}:`, error);
134
- }
135
- return directories;
136
- }
137
- /**
138
- * Create a new document
139
- */
140
- async createDocument(params) {
141
- try {
142
- // Ensure the path is valid
143
- if (!params.path.endsWith(".md")) {
144
- params.path = `${params.path}.md`;
145
- }
146
- // Build the full file content with front matter
147
- const fileContent = (0, docProcessor_js_1.combineMetadataAndContent)(params.metadata, params.content);
148
- // Ensure directory exists
149
- const fullPath = path.join(this.baseDir, params.path);
150
- const dirPath = path.dirname(fullPath);
151
- await fsPromises.mkdir(dirPath, { recursive: true });
152
- // Write the file
153
- await fsPromises.writeFile(fullPath, fileContent, "utf-8");
154
- return true;
155
- }
156
- catch (error) {
157
- console.error(`Error creating document ${params.path}:`, error);
158
- return false;
159
- }
160
- }
161
- /**
162
- * Update an existing document
163
- */
164
- async updateDocument(params) {
165
- try {
166
- // Get the existing document
167
- const doc = await this.getDocument(params.path);
168
- if (!doc) {
169
- return false;
170
- }
171
- // Update metadata and content as needed
172
- const updatedMetadata = { ...doc.metadata, ...(params.metadata || {}) };
173
- const updatedContent = params.content !== undefined ? params.content : doc.content;
174
- // Build the full file content with front matter
175
- const fileContent = (0, docProcessor_js_1.combineMetadataAndContent)(updatedMetadata, updatedContent);
176
- // Write the file
177
- const fullPath = path.join(this.baseDir, params.path);
178
- await fsPromises.writeFile(fullPath, fileContent, "utf-8");
179
- return true;
180
- }
181
- catch (error) {
182
- console.error(`Error updating document ${params.path}:`, error);
183
- return false;
184
- }
185
- }
186
- /**
187
- * Delete a document
188
- */
189
- async deleteDocument(filePath) {
190
- try {
191
- const fullPath = path.join(this.baseDir, filePath);
192
- await fsPromises.unlink(fullPath);
193
- return true;
194
- }
195
- catch (error) {
196
- console.error(`Error deleting document ${filePath}:`, error);
197
- return false;
198
- }
199
- }
200
- /**
201
- * Basic search for documents matching query
202
- */
203
- async searchDocuments(options) {
204
- const { query, tags, status, directory } = options;
205
- const results = [];
206
- // Get all markdown files in the specified directory or all if not specified
207
- const files = await this.listMarkdownFiles(directory || "");
208
- // Filter and search through files
209
- for (const filePath of files) {
210
- const doc = await this.getDocument(filePath);
211
- if (!doc)
212
- continue;
213
- // Check if document matches search criteria
214
- const searchableText = `${doc.metadata.title} ${doc.metadata.description || ""} ${doc.content}`.toLowerCase();
215
- const matchesQuery = !query || searchableText.includes(query.toLowerCase());
216
- const matchesTags = !tags ||
217
- !tags.length ||
218
- (doc.metadata.tags &&
219
- tags.some((tag) => doc.metadata.tags?.includes(tag)));
220
- const matchesStatus = !status || doc.metadata.status === status;
221
- if (matchesQuery && matchesTags && matchesStatus) {
222
- results.push({
223
- title: doc.metadata.title,
224
- description: doc.metadata.description,
225
- path: doc.path,
226
- lastUpdated: doc.metadata.lastUpdated,
227
- tags: doc.metadata.tags,
228
- status: doc.metadata.status,
229
- });
230
- }
231
- }
232
- return results;
233
- }
234
- /**
235
- * Get all documents as summaries
236
- */
237
- async getAllDocumentSummaries(directory) {
238
- const files = await this.listMarkdownFiles(directory || "");
239
- const summaries = [];
240
- for (const filePath of files) {
241
- const doc = await this.getDocument(filePath);
242
- if (!doc)
243
- continue;
244
- summaries.push({
245
- title: doc.metadata.title,
246
- description: doc.metadata.description,
247
- path: doc.path,
248
- lastUpdated: doc.metadata.lastUpdated,
249
- tags: doc.metadata.tags,
250
- status: doc.metadata.status,
251
- });
252
- }
253
- return summaries;
254
- }
255
- }
256
- exports.DocManager = DocManager;
257
- //# sourceMappingURL=docManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docManager.js","sourceRoot":"","sources":["../../src/core/docManager.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Document processor for handling markdown files with front matter
3
- */
4
- import { DocContent, DocMetadata } from "../types/index.js";
5
- /**
6
- * Parses front matter and content from a markdown file
7
- * Front matter format is YAML between triple dashes:
8
- * ---
9
- * key: value
10
- * ---
11
- */
12
- export declare function parseMarkdownWithFrontMatter(filePath: string, content: string): DocContent;
13
- /**
14
- * Creates front matter text from metadata
15
- */
16
- export declare function createFrontMatter(metadata: DocMetadata): string;
17
- /**
18
- * Combines metadata and content into a full document
19
- */
20
- export declare function combineMetadataAndContent(metadata: DocMetadata, content: string): string;
@@ -1,127 +0,0 @@
1
- "use strict";
2
- /**
3
- * Document processor for handling markdown files with front matter
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.combineMetadataAndContent = exports.createFrontMatter = exports.parseMarkdownWithFrontMatter = void 0;
7
- /**
8
- * Parses front matter and content from a markdown file
9
- * Front matter format is YAML between triple dashes:
10
- * ---
11
- * key: value
12
- * ---
13
- */
14
- function parseMarkdownWithFrontMatter(filePath, content) {
15
- const metadata = {
16
- title: extractTitleFromContent(content) || extractTitleFromPath(filePath),
17
- };
18
- // Check if the content has front matter
19
- const frontMatterRegex = /^---\s*\n([\s\S]*?)\n---\s*\n/;
20
- const match = content.match(frontMatterRegex);
21
- if (match) {
22
- const frontMatterText = match[1];
23
- const frontMatterLines = frontMatterText.split("\n");
24
- // Parse front matter lines
25
- for (const line of frontMatterLines) {
26
- const lineTrimmed = line.trim();
27
- if (!lineTrimmed || lineTrimmed.startsWith("#"))
28
- continue;
29
- const colonIndex = lineTrimmed.indexOf(":");
30
- if (colonIndex > 0) {
31
- const key = lineTrimmed.slice(0, colonIndex).trim();
32
- const value = lineTrimmed.slice(colonIndex + 1).trim();
33
- // Handle special front matter keys safely
34
- if (key === "globs" || key === "tags") {
35
- try {
36
- // If it's a YAML array, parse it
37
- if (value.startsWith("[") && value.endsWith("]")) {
38
- const arrayItems = value
39
- .slice(1, -1)
40
- .split(",")
41
- .map((item) => item.trim().replace(/^['"]|['"]$/g, ""));
42
- metadata[key] = arrayItems;
43
- }
44
- else {
45
- metadata[key] = [value];
46
- }
47
- }
48
- catch (e) {
49
- console.error(`Error parsing ${key} in ${filePath}:`, e);
50
- }
51
- }
52
- else if (key === "alwaysApply") {
53
- metadata.alwaysApply = value.toLowerCase() === "true";
54
- }
55
- else {
56
- metadata[key] = value;
57
- }
58
- }
59
- }
60
- // Remove front matter from content
61
- content = content.replace(frontMatterRegex, "");
62
- }
63
- return {
64
- metadata,
65
- content,
66
- path: filePath,
67
- };
68
- }
69
- exports.parseMarkdownWithFrontMatter = parseMarkdownWithFrontMatter;
70
- /**
71
- * Creates front matter text from metadata
72
- */
73
- function createFrontMatter(metadata) {
74
- const lines = ["---"];
75
- // Add each metadata field
76
- for (const [key, value] of Object.entries(metadata)) {
77
- if (value === undefined)
78
- continue;
79
- if (Array.isArray(value)) {
80
- // Use simple format for compatibility
81
- lines.push(`${key}:`);
82
- for (const item of value) {
83
- lines.push(` - ${item}`);
84
- }
85
- }
86
- else if (typeof value === "boolean") {
87
- lines.push(`${key}: ${value}`);
88
- }
89
- else {
90
- lines.push(`${key}: ${value}`);
91
- }
92
- }
93
- lines.push("---");
94
- lines.push("");
95
- return lines.join("\n");
96
- }
97
- exports.createFrontMatter = createFrontMatter;
98
- /**
99
- * Extracts title from content (first h1)
100
- */
101
- function extractTitleFromContent(content) {
102
- const h1Match = content.match(/^#\s+(.+)$/m);
103
- if (h1Match) {
104
- return h1Match[1].trim();
105
- }
106
- return null;
107
- }
108
- /**
109
- * Extracts title from file path
110
- */
111
- function extractTitleFromPath(filePath) {
112
- const baseName = filePath.split("/").pop() || "";
113
- const withoutExtension = baseName.replace(/\.md$/, "");
114
- return withoutExtension
115
- .split("-")
116
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
117
- .join(" ");
118
- }
119
- /**
120
- * Combines metadata and content into a full document
121
- */
122
- function combineMetadataAndContent(metadata, content) {
123
- const frontMatter = createFrontMatter(metadata);
124
- return `${frontMatter}${content}`;
125
- }
126
- exports.combineMetadataAndContent = combineMetadataAndContent;
127
- //# sourceMappingURL=docProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docProcessor.js","sourceRoot":"","sources":["../../src/core/docProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- /**
2
- * MCP Documentation Management Server
3
- * This server implements the Model Context Protocol for managing documentation
4
- */
5
- import { MCPQueryResult } from "../types/index.js";
6
- export declare class MCPDocsServer {
7
- private docManager;
8
- private docAnalyzer;
9
- constructor(docsDir?: string, options?: {
10
- createIfNotExists?: boolean;
11
- fileExtensions?: string[];
12
- });
13
- /**
14
- * Execute a query using the MCP protocol
15
- */
16
- executeQuery(sql: string): Promise<MCPQueryResult>;
17
- /**
18
- * Parse a query string into command and parameters
19
- */
20
- private parseQuery;
21
- /**
22
- * List all markdown files
23
- */
24
- private listFiles;
25
- /**
26
- * List all directories
27
- */
28
- private listDirectories;
29
- /**
30
- * Get a document by path
31
- */
32
- private getDocument;
33
- /**
34
- * Search for documents
35
- */
36
- private searchDocuments;
37
- /**
38
- * Create a new document
39
- */
40
- private createDocument;
41
- /**
42
- * Update an existing document
43
- */
44
- private updateDocument;
45
- /**
46
- * Delete a document
47
- */
48
- private deleteDocument;
49
- /**
50
- * Analyze documentation
51
- */
52
- private analyzeDocumentation;
53
- /**
54
- * Get documentation health score
55
- */
56
- private getHealthScore;
57
- /**
58
- * Get suggestions for improving documentation
59
- */
60
- private getSuggestions;
61
- }