@kawoou/kadoc-mcp 0.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.
@@ -0,0 +1,117 @@
1
+ export const folderTools = [
2
+ {
3
+ name: 'create_folder',
4
+ description: 'Create a folder',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ path: { type: 'string' },
9
+ },
10
+ required: ['path'],
11
+ },
12
+ },
13
+ {
14
+ name: 'list_folders',
15
+ description: 'List folders',
16
+ inputSchema: {
17
+ type: 'object',
18
+ properties: {
19
+ limit: { type: 'number', description: 'optional, default: 20' },
20
+ },
21
+ },
22
+ },
23
+ {
24
+ name: 'delete_folder',
25
+ description: 'Delete a folder and its documents',
26
+ inputSchema: {
27
+ type: 'object',
28
+ properties: {
29
+ path: { type: 'string' },
30
+ },
31
+ required: ['path'],
32
+ },
33
+ },
34
+ {
35
+ name: 'get_index_settings',
36
+ description: 'Get folder index settings',
37
+ inputSchema: {
38
+ type: 'object',
39
+ properties: {
40
+ path: { type: 'string' },
41
+ },
42
+ required: ['path'],
43
+ },
44
+ },
45
+ {
46
+ name: 'set_index_settings',
47
+ description: 'Set folder index settings. indexFields specifies which metadata fields to include in search index (title/content always included)',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ path: { type: 'string' },
52
+ indexFields: {
53
+ type: 'array',
54
+ items: { type: 'string' },
55
+ description: 'Metadata fields to index (e.g., ["author", "tags"]). Changes trigger re-indexing.',
56
+ },
57
+ },
58
+ required: ['path'],
59
+ },
60
+ },
61
+ ];
62
+ export async function handleFolderTool(client, name, args) {
63
+ const params = args ?? {};
64
+ try {
65
+ switch (name) {
66
+ case 'create_folder': {
67
+ const result = await client.createFolder({
68
+ path: params.path,
69
+ });
70
+ return {
71
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
72
+ };
73
+ }
74
+ case 'list_folders': {
75
+ const result = await client.listFolders({
76
+ limit: params.limit,
77
+ });
78
+ return {
79
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
80
+ };
81
+ }
82
+ case 'delete_folder': {
83
+ await client.deleteFolder(params.path);
84
+ return {
85
+ content: [{ type: 'text', text: 'Folder deleted successfully' }],
86
+ };
87
+ }
88
+ case 'get_index_settings': {
89
+ const result = await client.getIndexSettings(params.path);
90
+ return {
91
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
92
+ };
93
+ }
94
+ case 'set_index_settings': {
95
+ const result = await client.setIndexSettings({
96
+ path: params.path,
97
+ indexFields: params.indexFields,
98
+ });
99
+ return {
100
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
101
+ };
102
+ }
103
+ default:
104
+ return {
105
+ content: [{ type: 'text', text: `Unknown folder tool: ${name}` }],
106
+ isError: true,
107
+ };
108
+ }
109
+ }
110
+ catch (error) {
111
+ return {
112
+ content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
113
+ isError: true,
114
+ };
115
+ }
116
+ }
117
+ //# sourceMappingURL=folders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/tools/folders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { KadocClient } from '../client/kadoc-client.js';
3
+ export declare const searchTools: Tool[];
4
+ export declare function handleSearchTool(client: KadocClient, name: string, args: Record<string, unknown> | undefined): Promise<{
5
+ content: Array<{
6
+ type: string;
7
+ text: string;
8
+ }>;
9
+ isError?: boolean;
10
+ }>;
11
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,WAAW,EAAE,IAAI,EAc7B,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBhF"}
@@ -0,0 +1,41 @@
1
+ export const searchTools = [
2
+ {
3
+ name: 'search',
4
+ description: 'Search documents',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ query: { type: 'string' },
9
+ folder: { type: 'string', description: 'optional' },
10
+ limit: { type: 'number', description: 'optional, default: 10' },
11
+ },
12
+ required: ['query'],
13
+ },
14
+ },
15
+ ];
16
+ export async function handleSearchTool(client, name, args) {
17
+ const params = args ?? {};
18
+ try {
19
+ if (name === 'search') {
20
+ const result = await client.search({
21
+ query: params.query,
22
+ folder: params.folder,
23
+ limit: params.limit,
24
+ });
25
+ return {
26
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
27
+ };
28
+ }
29
+ return {
30
+ content: [{ type: 'text', text: `Unknown search tool: ${name}` }],
31
+ isError: true,
32
+ };
33
+ }
34
+ catch (error) {
35
+ return {
36
+ content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
37
+ isError: true,
38
+ };
39
+ }
40
+ }
41
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAW;IACjC;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;gBACnD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;aAChE;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAmB,EACnB,IAAY,EACZ,IAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAE1B,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAe;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAA4B;gBAC3C,KAAK,EAAE,MAAM,CAAC,KAA2B;aAC1C,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,IAAI,EAAE,EAAE,CAAC;YACjE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACrG,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@kawoou/kadoc-mcp",
3
+ "version": "0.1.0",
4
+ "description": "MCP client for kadoc-server document management system",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "kadoc-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "dev": "tsx watch src/index.ts",
15
+ "build": "tsc",
16
+ "start": "node dist/index.js",
17
+ "lint": "eslint src --ext .ts",
18
+ "lint:fix": "eslint src --ext .ts --fix",
19
+ "format": "prettier --write src/**/*.ts",
20
+ "test": "vitest",
21
+ "prepublishOnly": "npm run build"
22
+ },
23
+ "keywords": [
24
+ "mcp",
25
+ "model-context-protocol",
26
+ "kadoc",
27
+ "document-management"
28
+ ],
29
+ "author": "",
30
+ "license": "MIT",
31
+ "dependencies": {
32
+ "@modelcontextprotocol/sdk": "^1.0.0",
33
+ "tweetnacl": "^1.0.3",
34
+ "tweetnacl-util": "^0.15.1",
35
+ "undici": "^7.2.0",
36
+ "zod": "^3.24.1"
37
+ },
38
+ "devDependencies": {
39
+ "@types/node": "^22.10.7",
40
+ "@typescript-eslint/eslint-plugin": "^8.21.0",
41
+ "@typescript-eslint/parser": "^8.21.0",
42
+ "eslint": "^9.18.0",
43
+ "prettier": "^3.4.2",
44
+ "tsx": "^4.19.2",
45
+ "typescript": "^5.7.3",
46
+ "vitest": "^3.0.2"
47
+ },
48
+ "engines": {
49
+ "node": ">=20.0.0"
50
+ }
51
+ }