@taocompany/magic-grid-mcp 0.14.1 → 0.14.3
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/bin/magic-grid-mcp.js +20 -7
- package/bin/mgc.js +2 -2
- package/dist/cli.js +9 -9
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/mcpServer.d.ts +1 -0
- package/dist/mcpServer.d.ts.map +1 -1
- package/dist/mcpServer.js +1 -0
- package/dist/parseServerPath.d.ts +11 -0
- package/dist/parseServerPath.d.ts.map +1 -0
- package/dist/parseServerPath.js +37 -0
- package/package.json +2 -2
package/bin/magic-grid-mcp.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { runMcpServer } from '../dist/mcpServer.js'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { parseMcpServerPath, runMcpServer } from '../dist/mcpServer.js'
|
|
3
|
+
|
|
4
|
+
const command = process.argv[2]
|
|
5
|
+
if (command === 'check' || command === 'doctor' || command === '--help' || command === '-h') {
|
|
6
|
+
await import('../dist/cli.js')
|
|
7
|
+
} else {
|
|
8
|
+
let projectRoot
|
|
9
|
+
try {
|
|
10
|
+
projectRoot = parseMcpServerPath(process.argv)
|
|
11
|
+
} catch (error) {
|
|
12
|
+
console.error(error instanceof Error ? error.message : error)
|
|
13
|
+
process.exit(1)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
runMcpServer(projectRoot).catch((error) => {
|
|
17
|
+
console.error(error instanceof Error ? error.message : error)
|
|
18
|
+
process.exit(1)
|
|
19
|
+
})
|
|
20
|
+
}
|
package/bin/mgc.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import '../dist/cli.js'
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import '../dist/cli.js'
|
package/dist/cli.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { resolveManifest, runDoctor } from './resolveManifest.js';
|
|
2
2
|
import { validateMagicGridUsage } from './validate/validateUsage.js';
|
|
3
3
|
function printUsage() {
|
|
4
|
-
console.log(`@taocompany/magic-grid-mcp · mgc
|
|
5
|
-
|
|
6
|
-
用法:
|
|
7
|
-
mgc check [paths...] 静态校验 MagicGrid 用法(默认 ./src)
|
|
8
|
-
mgc doctor 检查已安装的 magic-grid 与 manifest 解析
|
|
9
|
-
|
|
10
|
-
示例:
|
|
11
|
-
npx @taocompany/magic-grid-mcp check ./src
|
|
12
|
-
npx @taocompany/magic-grid-mcp doctor
|
|
4
|
+
console.log(`@taocompany/magic-grid-mcp · mgc
|
|
5
|
+
|
|
6
|
+
用法:
|
|
7
|
+
mgc check [paths...] 静态校验 MagicGrid 用法(默认 ./src)
|
|
8
|
+
mgc doctor 检查已安装的 magic-grid 与 manifest 解析
|
|
9
|
+
|
|
10
|
+
示例:
|
|
11
|
+
npx @taocompany/magic-grid-mcp check ./src
|
|
12
|
+
npx @taocompany/magic-grid-mcp doctor
|
|
13
13
|
`);
|
|
14
14
|
}
|
|
15
15
|
async function main() {
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { resolveManifest, runDoctor, findMagicGridPackageRoot, type ResolveManif
|
|
|
2
2
|
export { getComponentApi } from './tools/getComponentApi.js';
|
|
3
3
|
export { findRecipes } from './tools/findRecipes.js';
|
|
4
4
|
export { createMcpServer, runMcpServer, MCP_TOOL_NAMES } from './mcpServer.js';
|
|
5
|
+
export { parseMcpServerPath } from './parseServerPath.js';
|
|
5
6
|
export type { McpToolName } from './mcpServer.js';
|
|
6
7
|
export { validateMagicGridUsage } from './validate/validateUsage.js';
|
|
7
8
|
export type { ApiManifest, ValidateUsageResult, ValidationIssue, UncheckedItem, } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,SAAS,EACT,wBAAwB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9E,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,SAAS,EACT,wBAAwB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export { resolveManifest, runDoctor, findMagicGridPackageRoot, } from './resolve
|
|
|
2
2
|
export { getComponentApi } from './tools/getComponentApi.js';
|
|
3
3
|
export { findRecipes } from './tools/findRecipes.js';
|
|
4
4
|
export { createMcpServer, runMcpServer, MCP_TOOL_NAMES } from './mcpServer.js';
|
|
5
|
+
export { parseMcpServerPath } from './parseServerPath.js';
|
|
5
6
|
export { validateMagicGridUsage } from './validate/validateUsage.js';
|
package/dist/mcpServer.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
export { parseMcpServerPath } from './parseServerPath.js';
|
|
2
3
|
/** P1 DoD:stdio 暴露的三个 tool(与四家客户端配置文档一致) */
|
|
3
4
|
export declare const MCP_TOOL_NAMES: readonly ["get_component_api", "find_recipes", "validate_magic_grid_usage"];
|
|
4
5
|
export type McpToolName = (typeof MCP_TOOL_NAMES)[number];
|
package/dist/mcpServer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpServer.d.ts","sourceRoot":"","sources":["../src/mcpServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"mcpServer.d.ts","sourceRoot":"","sources":["../src/mcpServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAcnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAIzD,4CAA4C;AAC5C,eAAO,MAAM,cAAc,6EAIjB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAgCzD,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,SAAS,CAwF9D;AAED,wBAAsB,YAAY,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrE"}
|
package/dist/mcpServer.js
CHANGED
|
@@ -8,6 +8,7 @@ import { getComponentApi, } from './tools/getComponentApi.js';
|
|
|
8
8
|
import { findRecipes } from './tools/findRecipes.js';
|
|
9
9
|
import { readMcpPackageVersion } from './packageVersion.js';
|
|
10
10
|
import { validateMagicGridUsage } from './validate/validateUsage.js';
|
|
11
|
+
export { parseMcpServerPath } from './parseServerPath.js';
|
|
11
12
|
const SERVER_VERSION = readMcpPackageVersion();
|
|
12
13
|
/** P1 DoD:stdio 暴露的三个 tool(与四家客户端配置文档一致) */
|
|
13
14
|
export const MCP_TOOL_NAMES = [
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** MCP 入口解析失败。在接入 stdio 之前由 bin 打到 stderr 并退出。 */
|
|
2
|
+
export declare class McpServerPathError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* 从 MCP 进程 argv 解析项目根。
|
|
7
|
+
* `argv` 与 `process.argv` 相同:`[node, script, ...args]`。
|
|
8
|
+
* 没有 `--path` 时返回 `cwd`。
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseMcpServerPath(argv: readonly string[], cwd?: string): string;
|
|
11
|
+
//# sourceMappingURL=parseServerPath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseServerPath.d.ts","sourceRoot":"","sources":["../src/parseServerPath.ts"],"names":[],"mappings":"AAGA,kDAAkD;AAClD,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,SAAgB,GAAG,MAAM,CAuBvF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
/** MCP 入口解析失败。在接入 stdio 之前由 bin 打到 stderr 并退出。 */
|
|
4
|
+
export class McpServerPathError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'McpServerPathError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 从 MCP 进程 argv 解析项目根。
|
|
12
|
+
* `argv` 与 `process.argv` 相同:`[node, script, ...args]`。
|
|
13
|
+
* 没有 `--path` 时返回 `cwd`。
|
|
14
|
+
*/
|
|
15
|
+
export function parseMcpServerPath(argv, cwd = process.cwd()) {
|
|
16
|
+
const args = argv.slice(2);
|
|
17
|
+
const index = args.indexOf('--path');
|
|
18
|
+
if (index === -1) {
|
|
19
|
+
return path.resolve(cwd);
|
|
20
|
+
}
|
|
21
|
+
const value = args[index + 1];
|
|
22
|
+
if (value === undefined || value.trim() === '' || value.startsWith('--')) {
|
|
23
|
+
throw new McpServerPathError('--path 后面需要一个已存在的目录');
|
|
24
|
+
}
|
|
25
|
+
const resolved = path.resolve(cwd, value);
|
|
26
|
+
let stat;
|
|
27
|
+
try {
|
|
28
|
+
stat = fs.statSync(resolved);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
throw new McpServerPathError(`--path 不是已存在的目录:${resolved}`);
|
|
32
|
+
}
|
|
33
|
+
if (!stat.isDirectory()) {
|
|
34
|
+
throw new McpServerPathError(`--path 不是已存在的目录:${resolved}`);
|
|
35
|
+
}
|
|
36
|
+
return resolved;
|
|
37
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taocompany/magic-grid-mcp",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.3",
|
|
4
4
|
"description": "CLI and MCP tools for validating @taocompany/magic-grid usage",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"test:run": "vitest run"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@taocompany/magic-grid": "0.14.
|
|
36
|
+
"@taocompany/magic-grid": "0.14.3"
|
|
37
37
|
},
|
|
38
38
|
"peerDependenciesMeta": {
|
|
39
39
|
"@taocompany/magic-grid": {
|