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
@@ -0,0 +1,222 @@
1
+ import fs from "fs/promises";
2
+ import path from "path";
3
+ import { validatePath } from "../utils/path.js";
4
+ import { getFileStats, searchFiles, applyFileEdits } from "../utils/file.js";
5
+ /**
6
+ * Reads a file and returns its content
7
+ */
8
+ export async function readFile(filePath, allowedDirectories) {
9
+ try {
10
+ const normalizedPath = await validatePath(filePath, allowedDirectories);
11
+ const content = await fs.readFile(normalizedPath, "utf-8");
12
+ return {
13
+ content: [{ type: "text", text: "File read successfully" }],
14
+ metadata: {
15
+ path: filePath,
16
+ content,
17
+ },
18
+ };
19
+ }
20
+ catch (error) {
21
+ return {
22
+ content: [{ type: "text", text: `Error reading file: ${error.message}` }],
23
+ isError: true,
24
+ };
25
+ }
26
+ }
27
+ /**
28
+ * Writes content to a file
29
+ */
30
+ export async function writeFile(filePath, content, allowedDirectories) {
31
+ try {
32
+ const normalizedPath = await validatePath(filePath, allowedDirectories);
33
+ // Ensure the directory exists
34
+ const dirPath = path.dirname(normalizedPath);
35
+ await fs.mkdir(dirPath, { recursive: true });
36
+ // Write the file
37
+ await fs.writeFile(normalizedPath, content);
38
+ return {
39
+ content: [{ type: "text", text: "File written successfully" }],
40
+ metadata: {
41
+ path: filePath,
42
+ },
43
+ };
44
+ }
45
+ catch (error) {
46
+ return {
47
+ content: [{ type: "text", text: `Error writing file: ${error.message}` }],
48
+ isError: true,
49
+ };
50
+ }
51
+ }
52
+ /**
53
+ * Lists files in a directory
54
+ */
55
+ export async function listFiles(dirPath, allowedDirectories) {
56
+ try {
57
+ const normalizedPath = await validatePath(dirPath, allowedDirectories);
58
+ const entries = await fs.readdir(normalizedPath, { withFileTypes: true });
59
+ const files = entries.map((entry) => ({
60
+ name: entry.name,
61
+ isDirectory: entry.isDirectory(),
62
+ isFile: entry.isFile(),
63
+ }));
64
+ return {
65
+ content: [
66
+ { type: "text", text: `Listed ${files.length} files in ${dirPath}` },
67
+ ],
68
+ metadata: {
69
+ path: dirPath,
70
+ files,
71
+ },
72
+ };
73
+ }
74
+ catch (error) {
75
+ return {
76
+ content: [
77
+ { type: "text", text: `Error listing files: ${error.message}` },
78
+ ],
79
+ isError: true,
80
+ };
81
+ }
82
+ }
83
+ /**
84
+ * Gets information about a file
85
+ */
86
+ export async function getFileInfo(filePath, allowedDirectories) {
87
+ try {
88
+ const normalizedPath = await validatePath(filePath, allowedDirectories);
89
+ const fileInfo = await getFileStats(normalizedPath);
90
+ return {
91
+ content: [
92
+ { type: "text", text: "File information retrieved successfully" },
93
+ ],
94
+ metadata: {
95
+ path: filePath,
96
+ info: fileInfo,
97
+ },
98
+ };
99
+ }
100
+ catch (error) {
101
+ return {
102
+ content: [
103
+ { type: "text", text: `Error getting file info: ${error.message}` },
104
+ ],
105
+ isError: true,
106
+ };
107
+ }
108
+ }
109
+ /**
110
+ * Searches for files matching a pattern
111
+ */
112
+ export async function searchForFiles(rootPath, pattern, excludePatterns = [], allowedDirectories) {
113
+ try {
114
+ const normalizedPath = await validatePath(rootPath, allowedDirectories);
115
+ const files = await searchFiles(normalizedPath, pattern, excludePatterns);
116
+ return {
117
+ content: [
118
+ {
119
+ type: "text",
120
+ text: `Found ${files.length} files matching pattern "${pattern}"`,
121
+ },
122
+ ],
123
+ metadata: {
124
+ rootPath,
125
+ pattern,
126
+ excludePatterns,
127
+ files,
128
+ },
129
+ };
130
+ }
131
+ catch (error) {
132
+ return {
133
+ content: [
134
+ { type: "text", text: `Error searching files: ${error.message}` },
135
+ ],
136
+ isError: true,
137
+ };
138
+ }
139
+ }
140
+ /**
141
+ * Applies edits to a file
142
+ */
143
+ export async function editFile(filePath, edits, allowedDirectories) {
144
+ try {
145
+ const normalizedPath = await validatePath(filePath, allowedDirectories);
146
+ const diff = await applyFileEdits(normalizedPath, edits, false);
147
+ return {
148
+ content: [{ type: "text", text: "File edited successfully" }],
149
+ metadata: {
150
+ path: filePath,
151
+ diff,
152
+ },
153
+ };
154
+ }
155
+ catch (error) {
156
+ return {
157
+ content: [{ type: "text", text: `Error editing file: ${error.message}` }],
158
+ isError: true,
159
+ };
160
+ }
161
+ }
162
+ /**
163
+ * Gets the directory structure as a tree
164
+ */
165
+ export async function getDirectoryTree(dirPath, allowedDirectories) {
166
+ try {
167
+ const normalizedPath = await validatePath(dirPath, allowedDirectories);
168
+ async function buildTree(currentPath) {
169
+ const entries = await fs.readdir(currentPath, { withFileTypes: true });
170
+ const result = [];
171
+ for (const entry of entries) {
172
+ const entryPath = path.join(currentPath, entry.name);
173
+ if (entry.isDirectory()) {
174
+ const children = await buildTree(entryPath);
175
+ result.push({
176
+ name: entry.name,
177
+ path: entryPath,
178
+ type: "directory",
179
+ children,
180
+ });
181
+ }
182
+ else {
183
+ result.push({
184
+ name: entry.name,
185
+ path: entryPath,
186
+ type: "file",
187
+ });
188
+ }
189
+ }
190
+ // Sort entries: directories first, then files, both alphabetically
191
+ result.sort((a, b) => {
192
+ if (a.type !== b.type) {
193
+ return a.type === "directory" ? -1 : 1;
194
+ }
195
+ return a.name.localeCompare(b.name);
196
+ });
197
+ return result;
198
+ }
199
+ const tree = await buildTree(normalizedPath);
200
+ return {
201
+ content: [
202
+ { type: "text", text: "Directory tree retrieved successfully" },
203
+ ],
204
+ metadata: {
205
+ path: dirPath,
206
+ tree,
207
+ },
208
+ };
209
+ }
210
+ catch (error) {
211
+ return {
212
+ content: [
213
+ {
214
+ type: "text",
215
+ text: `Error getting directory tree: ${error.message}`,
216
+ },
217
+ ],
218
+ isError: true,
219
+ };
220
+ }
221
+ }
222
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/handlers/file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./docs.js";
@@ -0,0 +1,3 @@
1
+ // Re-export all handlers
2
+ export * from "./docs.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,cAAc,WAAW,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,24 +1,2 @@
1
- /**
2
- * MCP Documentation Management Service
3
- * Main entry point for the package
4
- */
5
- export * from "./core/docManager.js";
6
- export * from "./core/docProcessor.js";
7
- export * from "./core/docAnalyzer.js";
8
- export * from "./core/mcpDocsServer.js";
9
- export * from "./types/index.js";
10
- export * from "./utils/index.js";
11
- import { MCPDocsServer } from "./core/mcpDocsServer.js";
12
- /**
13
- * MCP Query function that can be registered with Cursor's MCP system
14
- * @param sql - The SQL-like query to execute
15
- * @param options - Options for the MCP server
16
- * @returns The query result
17
- */
18
- export declare function query(sql: string, options?: {
19
- docsDir?: string;
20
- createIfNotExists?: boolean;
21
- fileExtensions?: string[];
22
- }): Promise<import("./types/index.js").MCPQueryResult>;
23
- declare const mcpDocsServer: MCPDocsServer;
24
- export default mcpDocsServer;
1
+ #!/usr/bin/env node
2
+ export {};