@search-docs/mcp-server 1.0.2 → 1.0.4
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/README.md +20 -12
- package/dist/__tests__/args.test.d.ts +5 -0
- package/dist/__tests__/args.test.d.ts.map +1 -0
- package/dist/__tests__/args.test.js +47 -0
- package/dist/__tests__/args.test.js.map +1 -0
- package/dist/server-manager.js +2 -2
- package/dist/server-manager.js.map +1 -1
- package/dist/server.js +37 -40
- package/dist/server.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -44,17 +44,23 @@ path: "docs/architecture.md"
|
|
|
44
44
|
|
|
45
45
|
## セットアップ
|
|
46
46
|
|
|
47
|
-
###
|
|
47
|
+
### サーバ自動起動機能
|
|
48
48
|
|
|
49
|
-
1
|
|
50
|
-
```bash
|
|
51
|
-
node packages/cli/dist/index.js server start --daemon
|
|
52
|
-
```
|
|
49
|
+
v1.0.1以降、MCP Serverは自動的にsearch-docsサーバを起動します。
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
**動作**:
|
|
52
|
+
1. MCP Server起動時にサーバへの接続を試みる
|
|
53
|
+
2. サーバが起動していない場合、自動的にサーバを起動
|
|
54
|
+
3. サーバが起動したら接続を確立
|
|
55
|
+
|
|
56
|
+
これにより、手動でサーバを起動する必要がなくなりました。
|
|
57
|
+
|
|
58
|
+
### 前提条件
|
|
59
|
+
|
|
60
|
+
ビルド済みであること
|
|
61
|
+
```bash
|
|
62
|
+
pnpm build
|
|
63
|
+
```
|
|
58
64
|
|
|
59
65
|
### Claude Code統合
|
|
60
66
|
|
|
@@ -100,15 +106,17 @@ node dist/server.js --project-dir /path/to/your/project
|
|
|
100
106
|
|
|
101
107
|
**エラー**: `Failed to connect to search-docs server`
|
|
102
108
|
|
|
103
|
-
|
|
109
|
+
**通常は不要**: MCP Serverはサーバを自動起動します。
|
|
110
|
+
|
|
111
|
+
**手動で確認する場合**:
|
|
104
112
|
1. サーバが起動しているか確認
|
|
105
113
|
```bash
|
|
106
114
|
node packages/cli/dist/index.js server status
|
|
107
115
|
```
|
|
108
116
|
|
|
109
|
-
2.
|
|
117
|
+
2. 必要に応じてサーバを起動
|
|
110
118
|
```bash
|
|
111
|
-
node packages/cli/dist/index.js server start
|
|
119
|
+
node packages/cli/dist/index.js server start
|
|
112
120
|
```
|
|
113
121
|
|
|
114
122
|
### 設定ファイルが見つからない
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/args.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* コマンドライン引数解析のテスト
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* parseArgs() の簡易実装(テスト用)
|
|
9
|
+
*/
|
|
10
|
+
function parseArgs(argv) {
|
|
11
|
+
const program = new Command();
|
|
12
|
+
program
|
|
13
|
+
.name('search-docs-mcp')
|
|
14
|
+
.description('MCP Server for search-docs - Claude Code integration')
|
|
15
|
+
.version('0.1.0')
|
|
16
|
+
.option('--project-dir <path>', 'Project directory path (optional, will auto-detect from config file if not specified)')
|
|
17
|
+
.exitOverride() // テスト時はexitしない
|
|
18
|
+
.parse(argv, { from: 'user' });
|
|
19
|
+
const options = program.opts();
|
|
20
|
+
return {
|
|
21
|
+
projectDir: options.projectDir ? path.resolve(options.projectDir) : undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
describe('MCP Server - コマンドライン引数解析', () => {
|
|
25
|
+
let originalArgv;
|
|
26
|
+
beforeEach(() => {
|
|
27
|
+
// 元のargvを保存
|
|
28
|
+
originalArgv = process.argv;
|
|
29
|
+
});
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
// argvを復元
|
|
32
|
+
process.argv = originalArgv;
|
|
33
|
+
});
|
|
34
|
+
it('--project-dir が指定された場合、そのパスを使用', () => {
|
|
35
|
+
const args = parseArgs(['node', 'server.js', '--project-dir', '/path/to/project']);
|
|
36
|
+
expect(args.projectDir).toBe(path.resolve('/path/to/project'));
|
|
37
|
+
});
|
|
38
|
+
it('--project-dir が指定されていない場合、undefined', () => {
|
|
39
|
+
const args = parseArgs(['node', 'server.js']);
|
|
40
|
+
expect(args.projectDir).toBeUndefined();
|
|
41
|
+
});
|
|
42
|
+
it('--project-dir を相対パスで指定した場合、絶対パスに解決', () => {
|
|
43
|
+
const args = parseArgs(['node', 'server.js', '--project-dir', './relative/path']);
|
|
44
|
+
expect(args.projectDir).toBe(path.resolve('./relative/path'));
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=args.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.test.js","sourceRoot":"","sources":["../../src/__tests__/args.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,iBAAiB,CAAC;SACvB,WAAW,CAAC,sDAAsD,CAAC;SACnE,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,sBAAsB,EAAE,uFAAuF,CAAC;SACvH,YAAY,EAAE,CAAC,eAAe;SAC9B,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAA2B,CAAC;IAExD,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9E,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,YAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,YAAY;QACZ,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,UAAU;QACV,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAEnF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAE9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAElF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/server-manager.js
CHANGED
|
@@ -15,7 +15,7 @@ export class ServerManager {
|
|
|
15
15
|
async resolveCliPath() {
|
|
16
16
|
try {
|
|
17
17
|
// import.meta.resolve()でパスを解決
|
|
18
|
-
const cliPackage =
|
|
18
|
+
const cliPackage = import.meta.resolve('@search-docs/cli');
|
|
19
19
|
// file:// プロトコルを削除してファイルパスに変換
|
|
20
20
|
const cliPackagePath = cliPackage.replace(/^file:\/\//, '');
|
|
21
21
|
// パッケージディレクトリを取得
|
|
@@ -41,7 +41,7 @@ export class ServerManager {
|
|
|
41
41
|
const cliPath = await this.resolveCliPath();
|
|
42
42
|
console.error(`[mcp-server] CLI path resolved: ${cliPath}`);
|
|
43
43
|
// サーバ起動コマンドを構築
|
|
44
|
-
const args = ['server', 'start', '--port', port.toString()];
|
|
44
|
+
const args = ['server', 'start', '--foreground', '--port', port.toString()];
|
|
45
45
|
if (configPath) {
|
|
46
46
|
args.push('--config', configPath);
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAUlC;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,aAAa,GAAyB,IAAI,CAAC;IAEnD;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -4,36 +4,19 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import { SearchDocsClient } from '@search-docs/client';
|
|
7
|
-
import
|
|
7
|
+
import { ConfigLoader } from '@search-docs/types';
|
|
8
8
|
import * as path from 'path';
|
|
9
9
|
import { ServerManager } from './server-manager.js';
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* デバッグモードの判定
|
|
12
12
|
*/
|
|
13
|
-
const
|
|
14
|
-
server: {
|
|
15
|
-
host: 'localhost',
|
|
16
|
-
port: 24280,
|
|
17
|
-
},
|
|
18
|
-
};
|
|
13
|
+
const isDebugMode = process.env.DEBUG === '1' || process.env.NODE_ENV === 'development';
|
|
19
14
|
/**
|
|
20
|
-
*
|
|
15
|
+
* デバッグログ出力(デバッグモード時のみ)
|
|
21
16
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const content = await fs.readFile(configPath, 'utf-8');
|
|
26
|
-
const config = JSON.parse(content);
|
|
27
|
-
return {
|
|
28
|
-
server: {
|
|
29
|
-
host: config.server?.host || DEFAULT_CONFIG.server.host,
|
|
30
|
-
port: config.server?.port || DEFAULT_CONFIG.server.port,
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
catch (_error) {
|
|
35
|
-
console.error(`[mcp-server] Config file not found or invalid, using defaults: ${configPath}`);
|
|
36
|
-
return DEFAULT_CONFIG;
|
|
17
|
+
function debugLog(message) {
|
|
18
|
+
if (isDebugMode) {
|
|
19
|
+
console.error(`[mcp-server] ${message}`);
|
|
37
20
|
}
|
|
38
21
|
}
|
|
39
22
|
/**
|
|
@@ -45,11 +28,11 @@ function parseArgs() {
|
|
|
45
28
|
.name('search-docs-mcp')
|
|
46
29
|
.description('MCP Server for search-docs - Claude Code integration')
|
|
47
30
|
.version('0.1.0')
|
|
48
|
-
.
|
|
31
|
+
.option('--project-dir <path>', 'Project directory path (optional, will auto-detect from config file if not specified)')
|
|
49
32
|
.parse(process.argv);
|
|
50
33
|
const options = program.opts();
|
|
51
34
|
return {
|
|
52
|
-
projectDir: path.resolve(options.projectDir),
|
|
35
|
+
projectDir: options.projectDir ? path.resolve(options.projectDir) : undefined,
|
|
53
36
|
};
|
|
54
37
|
}
|
|
55
38
|
/**
|
|
@@ -58,42 +41,56 @@ function parseArgs() {
|
|
|
58
41
|
async function main() {
|
|
59
42
|
// コマンドライン引数の解析
|
|
60
43
|
const { projectDir } = parseArgs();
|
|
61
|
-
|
|
44
|
+
// プロジェクトディレクトリを決定
|
|
45
|
+
// 明示的に指定されていない場合は、カレントディレクトリから設定ファイルを探索
|
|
46
|
+
const cwd = projectDir || process.cwd();
|
|
47
|
+
debugLog(`Working directory: ${cwd}`);
|
|
48
|
+
if (projectDir) {
|
|
49
|
+
debugLog(`Project directory (explicit): ${projectDir}`);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
debugLog(`Project directory: auto-detect from config file`);
|
|
53
|
+
}
|
|
62
54
|
// 設定ファイルの読み込み
|
|
63
|
-
const config = await
|
|
55
|
+
const { config, configPath, projectRoot } = await ConfigLoader.resolve({
|
|
56
|
+
cwd,
|
|
57
|
+
requireConfig: true,
|
|
58
|
+
});
|
|
64
59
|
const serverUrl = `http://${config.server.host}:${config.server.port}`;
|
|
65
|
-
|
|
60
|
+
debugLog(`Project root: ${projectRoot}`);
|
|
61
|
+
debugLog(`Config: ${configPath || 'default config'}`);
|
|
62
|
+
debugLog(`Server URL: ${serverUrl}`);
|
|
66
63
|
// SearchDocsClientの初期化
|
|
67
64
|
const client = new SearchDocsClient({ baseUrl: serverUrl });
|
|
68
65
|
// ServerManager初期化
|
|
69
66
|
const serverManager = new ServerManager();
|
|
70
67
|
// プロセス終了時のクリーンアップ
|
|
71
68
|
process.on('SIGINT', () => {
|
|
72
|
-
|
|
69
|
+
debugLog('Received SIGINT, cleaning up...');
|
|
73
70
|
serverManager.cleanup();
|
|
74
71
|
process.exit(0);
|
|
75
72
|
});
|
|
76
73
|
process.on('SIGTERM', () => {
|
|
77
|
-
|
|
74
|
+
debugLog('Received SIGTERM, cleaning up...');
|
|
78
75
|
serverManager.cleanup();
|
|
79
76
|
process.exit(0);
|
|
80
77
|
});
|
|
81
78
|
// 接続確認
|
|
82
79
|
try {
|
|
83
80
|
await client.healthCheck();
|
|
84
|
-
|
|
81
|
+
debugLog('Connection to search-docs server established');
|
|
85
82
|
}
|
|
86
|
-
catch (
|
|
87
|
-
|
|
83
|
+
catch (_error) {
|
|
84
|
+
debugLog('Server is not running, attempting to start...');
|
|
88
85
|
try {
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
await serverManager.startServer(projectDir, config.server.port, configPath);
|
|
86
|
+
// サーバを自動起動(projectRootを使用)
|
|
87
|
+
await serverManager.startServer(projectRoot, config.server.port, configPath || undefined);
|
|
92
88
|
// 起動後、再度接続確認
|
|
93
89
|
await client.healthCheck();
|
|
94
|
-
|
|
90
|
+
debugLog('Successfully connected to auto-started server');
|
|
95
91
|
}
|
|
96
92
|
catch (startError) {
|
|
93
|
+
// エラーは標準エラー出力に出す(ユーザーが問題解決に必要)
|
|
97
94
|
console.error('[mcp-server] Failed to auto-start server');
|
|
98
95
|
console.error('[mcp-server] Error:', startError.message);
|
|
99
96
|
console.error('[mcp-server] Please ensure @search-docs/cli is installed:');
|
|
@@ -234,9 +231,9 @@ async function main() {
|
|
|
234
231
|
});
|
|
235
232
|
// サーバの起動
|
|
236
233
|
const transport = new StdioServerTransport();
|
|
237
|
-
|
|
234
|
+
debugLog('Starting MCP server...');
|
|
238
235
|
await server.connect(transport);
|
|
239
|
-
|
|
236
|
+
debugLog('MCP server started');
|
|
240
237
|
}
|
|
241
238
|
main().catch((error) => {
|
|
242
239
|
console.error('[mcp-server] Server error:', error);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@search-docs/mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "MCP Server for search-docs - Claude Code integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"@modelcontextprotocol/sdk": "^1.17.0",
|
|
17
17
|
"commander": "^12.0.0",
|
|
18
18
|
"zod": "^3.22.0",
|
|
19
|
-
"@search-docs/cli": "1.0.2",
|
|
20
19
|
"@search-docs/types": "1.0.1",
|
|
20
|
+
"@search-docs/cli": "1.0.3",
|
|
21
21
|
"@search-docs/client": "1.0.1"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
@@ -45,13 +45,14 @@
|
|
|
45
45
|
"directory": "packages/mcp-server"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
|
-
"build": "tsc --build",
|
|
48
|
+
"build": "tsc --build --force",
|
|
49
49
|
"clean": "tsc --build --clean",
|
|
50
50
|
"dev": "tsc --watch",
|
|
51
51
|
"start": "node dist/server.js",
|
|
52
52
|
"test": "vitest",
|
|
53
53
|
"typecheck": "tsc --noEmit",
|
|
54
54
|
"lint": "eslint . --max-warnings 0",
|
|
55
|
-
"lint:fix": "eslint . --fix --max-warnings 0"
|
|
55
|
+
"lint:fix": "eslint . --fix --max-warnings 0",
|
|
56
|
+
"build:fast": "tsc --build"
|
|
56
57
|
}
|
|
57
58
|
}
|