refactor: 删除旧MCP启动入口
This commit is contained in:
parent
344acb5094
commit
bc299d2021
12
README.md
12
README.md
@ -26,6 +26,8 @@ pnpm run self-test
|
||||
pnpm run cleanup-history -- --dry-run
|
||||
```
|
||||
|
||||
如果本机 Node/npm/pnpm 版本不对,先执行 `nvm ls` 查看已安装版本,再用 `nvm use <version>` 切换到目标版本;不要先扫盘找 `node.exe` 路径。
|
||||
|
||||
## MCP 客户端配置
|
||||
|
||||
把下面配置加入支持 stdio MCP 的客户端配置里:
|
||||
@ -35,7 +37,11 @@ pnpm run cleanup-history -- --dry-run
|
||||
"mcpServers": {
|
||||
"ktWorkflow": {
|
||||
"command": "node",
|
||||
"args": ["D:/MyFiles/KT/mcp/ktWorkflow/src/server.mjs"],
|
||||
"args": [
|
||||
"--import",
|
||||
"file:///D:/MyFiles/KT/mcp/ktWorkflow/node_modules/tsx/dist/loader.mjs",
|
||||
"D:/MyFiles/KT/mcp/ktWorkflow/src/server.ts"
|
||||
],
|
||||
"env": {
|
||||
"KT_WORKSPACE_ROOT": "D:/MyFiles/KT"
|
||||
}
|
||||
@ -78,8 +84,8 @@ pnpm run cleanup-history -- --dry-run
|
||||
## 开发说明
|
||||
|
||||
- 主入口是 `src/server.ts`,工具入参类型集中在 `src/types.ts`。
|
||||
- `src/server.mjs` 只做兼容启动,保留给 MCP 客户端继续使用原来的 `node .../src/server.mjs` 配置。
|
||||
- 如果本机默认 `node` 不是 20+,可通过 `KT_WORKFLOW_NODE` 指定 Node 22 路径。
|
||||
- MCP 客户端直接通过 `node --import tsx loader` 启动 TS 入口,不再保留旧的 `src/server.mjs`。
|
||||
- Node/npm/pnpm 版本异常时优先走 `nvm ls` + `nvm use`,不要用扫盘路径作为第一选择。
|
||||
|
||||
## 使用建议
|
||||
|
||||
|
||||
@ -2,7 +2,11 @@
|
||||
"mcpServers": {
|
||||
"ktWorkflow": {
|
||||
"command": "node",
|
||||
"args": ["D:/MyFiles/KT/mcp/ktWorkflow/src/server.mjs"],
|
||||
"args": [
|
||||
"--import",
|
||||
"file:///D:/MyFiles/KT/mcp/ktWorkflow/node_modules/tsx/dist/loader.mjs",
|
||||
"D:/MyFiles/KT/mcp/ktWorkflow/src/server.ts"
|
||||
],
|
||||
"env": {
|
||||
"KT_WORKSPACE_ROOT": "D:/MyFiles/KT"
|
||||
}
|
||||
|
||||
@ -4,13 +4,10 @@
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"description": "Reusable MCP workflow tools for the KT workspace.",
|
||||
"bin": {
|
||||
"kt-workflow-mcp": "src/server.mjs"
|
||||
},
|
||||
"scripts": {
|
||||
"cleanup-history": "node src/server.mjs --cleanup-history",
|
||||
"self-test": "node src/server.mjs --self-test",
|
||||
"start": "node src/server.mjs",
|
||||
"cleanup-history": "node --import ./node_modules/tsx/dist/loader.mjs src/server.ts --cleanup-history",
|
||||
"self-test": "node --import ./node_modules/tsx/dist/loader.mjs src/server.ts --self-test",
|
||||
"start": "node --import ./node_modules/tsx/dist/loader.mjs src/server.ts",
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
import { spawnSync } from 'node:child_process';
|
||||
import { existsSync } from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const serverEntry = path.join(dirname, 'server.ts');
|
||||
const minimumNodeMajor = 20;
|
||||
|
||||
function getNodeMajor() {
|
||||
return Number.parseInt(process.versions.node.split('.')[0] || '0', 10);
|
||||
}
|
||||
|
||||
function getNodeBinary() {
|
||||
if (process.env.KT_WORKFLOW_NODE && existsSync(process.env.KT_WORKFLOW_NODE)) {
|
||||
return process.env.KT_WORKFLOW_NODE;
|
||||
}
|
||||
|
||||
if (getNodeMajor() >= minimumNodeMajor) {
|
||||
return process.execPath;
|
||||
}
|
||||
|
||||
const candidates = [
|
||||
'C:\\Program Files (x86)\\nvm\\v22.14.0\\node.exe',
|
||||
'C:\\Program Files\\nodejs\\node.exe',
|
||||
];
|
||||
|
||||
return candidates.find((candidate) => existsSync(candidate)) || process.execPath;
|
||||
}
|
||||
|
||||
const result = spawnSync(
|
||||
getNodeBinary(),
|
||||
['--import', 'tsx', serverEntry, ...process.argv.slice(2)],
|
||||
{
|
||||
env: process.env,
|
||||
stdio: 'inherit',
|
||||
windowsHide: true,
|
||||
},
|
||||
);
|
||||
|
||||
process.exit(result.status ?? 1);
|
||||
Loading…
Reference in New Issue
Block a user