unity-mcp-cli 0.83.1 → 0.84.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.
- package/dist/commands/configure.js +20 -1
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/install-plugin.js +67 -1
- package/dist/commands/install-plugin.js.map +1 -1
- package/dist/commands/login.js +26 -14
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/setup-skills.js +2 -1
- package/dist/commands/setup-skills.js.map +1 -1
- package/dist/lib/setup-mcp.js +34 -2
- package/dist/lib/setup-mcp.js.map +1 -1
- package/dist/utils/agents.d.ts +12 -1
- package/dist/utils/agents.js +51 -43
- package/dist/utils/agents.js.map +1 -1
- package/dist/utils/cloud-login.d.ts +3 -2
- package/dist/utils/cloud-login.js +7 -10
- package/dist/utils/cloud-login.js.map +1 -1
- package/dist/utils/enroll.d.ts +101 -0
- package/dist/utils/enroll.js +251 -0
- package/dist/utils/enroll.js.map +1 -0
- package/dist/utils/machine-credentials.d.ts +64 -0
- package/dist/utils/machine-credentials.js +114 -0
- package/dist/utils/machine-credentials.js.map +1 -0
- package/dist/utils/managed-server.d.ts +95 -0
- package/dist/utils/managed-server.js +261 -0
- package/dist/utils/managed-server.js.map +1 -0
- package/dist/utils/port.d.ts +15 -2
- package/dist/utils/port.js +61 -6
- package/dist/utils/port.js.map +1 -1
- package/dist/utils/project-marker.d.ts +26 -0
- package/dist/utils/project-marker.js +48 -0
- package/dist/utils/project-marker.js.map +1 -0
- package/dist/utils/rid.d.ts +17 -0
- package/dist/utils/rid.js +60 -0
- package/dist/utils/rid.js.map +1 -0
- package/dist/utils/server-version.d.ts +27 -0
- package/dist/utils/server-version.js +33 -0
- package/dist/utils/server-version.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import * as path from 'path';
|
|
|
3
3
|
import * as ui from '../utils/ui.js';
|
|
4
4
|
import { verbose } from '../utils/ui.js';
|
|
5
5
|
import { configure } from '../lib/configure.js';
|
|
6
|
+
import { proxyConfigure } from '../utils/managed-server.js';
|
|
6
7
|
function parseCommaSeparated(value) {
|
|
7
8
|
return value.split(',').map((s) => s.trim()).filter(Boolean);
|
|
8
9
|
}
|
|
@@ -17,9 +18,11 @@ function buildAction(enable, disable, enableAll, disableAll) {
|
|
|
17
18
|
};
|
|
18
19
|
}
|
|
19
20
|
export const configureCommand = new Command('configure')
|
|
20
|
-
.description('Configure MCP tools
|
|
21
|
+
.description('Configure MCP tools/prompts/resources, or (with --agent) write an AI agent config via the managed server')
|
|
21
22
|
.argument('[path]', 'Path to the Unity project')
|
|
22
23
|
.option('--path <path>', 'Path to the Unity project')
|
|
24
|
+
.option('--agent <id>', 'Write an AI agent MCP config by proxying to the managed GameDev-MCP-Server configurator')
|
|
25
|
+
.option('--url <url>', 'Explicit server URL forwarded to the managed configurator (with --agent)')
|
|
23
26
|
.option('--enable-tools <names>', 'Enable specific tools (comma-separated)', parseCommaSeparated)
|
|
24
27
|
.option('--disable-tools <names>', 'Disable specific tools (comma-separated)', parseCommaSeparated)
|
|
25
28
|
.option('--enable-all-tools', 'Enable all tools')
|
|
@@ -40,6 +43,22 @@ export const configureCommand = new Command('configure')
|
|
|
40
43
|
process.exit(1);
|
|
41
44
|
}
|
|
42
45
|
const projectPath = path.resolve(resolvedPath);
|
|
46
|
+
// `--agent` mode: proxy to the managed GameDev-MCP-Server binary's `configure` subcommand
|
|
47
|
+
// (design 06/09 Phase 3) so the shared C# configurator writes the agent config with the
|
|
48
|
+
// derived project pin + port. This is a distinct mode from the tools/prompts/resources
|
|
49
|
+
// toggles below and short-circuits them.
|
|
50
|
+
if (options.agent) {
|
|
51
|
+
verbose(`Proxying configure --agent ${options.agent} to the managed server for: ${projectPath}`);
|
|
52
|
+
try {
|
|
53
|
+
proxyConfigure({ agentId: options.agent, projectPath, url: options.url });
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
ui.error(err instanceof Error ? err.message : String(err));
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
ui.success(`Configured agent "${options.agent}" via the managed server.`);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
43
62
|
verbose(`Loading config for project: ${projectPath}`);
|
|
44
63
|
// `--list` must be read-only: previously this command short-
|
|
45
64
|
// circuited before applying any enable/disable flags. Preserve
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import * as fs from 'fs';
|
|
2
3
|
import * as path from 'path';
|
|
3
4
|
import * as ui from '../utils/ui.js';
|
|
4
5
|
import { verbose } from '../utils/ui.js';
|
|
5
6
|
import { installPlugin } from '../lib/install-plugin.js';
|
|
7
|
+
import { downloadServerBinary } from '../utils/managed-server.js';
|
|
8
|
+
import { DEFAULT_SERVER_VERSION } from '../utils/server-version.js';
|
|
9
|
+
import { resolveEnrollCode, runEnroll, EnrollmentError } from '../utils/enroll.js';
|
|
10
|
+
import { MachineCredentialStore } from '../utils/machine-credentials.js';
|
|
6
11
|
export const installPluginCommand = new Command('install-plugin')
|
|
7
|
-
.description('Install Unity-MCP plugin into a Unity project')
|
|
12
|
+
.description('Install Unity-MCP plugin into a Unity project (optionally download the server + enroll)')
|
|
8
13
|
.argument('[path]', 'Path to the Unity project')
|
|
9
14
|
.option('--path <path>', 'Path to the Unity project')
|
|
10
15
|
.option('--plugin-version <version>', 'Plugin version to install (default: latest)')
|
|
16
|
+
.option('--with-server', 'Also download the RID-matched GameDev-MCP-Server binary into the CLI managed dir')
|
|
17
|
+
.option('--server-version <version>', `Server version to download with --with-server (default: ${DEFAULT_SERVER_VERSION})`)
|
|
18
|
+
.option('--server-source <path-or-url>', 'Offline/CI override: install the server from a local zip path or URL (skips SHA256SUMS verification)')
|
|
19
|
+
.option('--enroll <code>', 'Redeem an enrollment code for a plugin credential (planted in the shared machine store)')
|
|
20
|
+
.option('--enroll-stdin', 'Read the enrollment code from stdin (never argv/shell history)')
|
|
11
21
|
.action(async (positionalPath, options) => {
|
|
12
22
|
const resolvedPath = positionalPath ?? options.path;
|
|
13
23
|
if (!resolvedPath) {
|
|
@@ -15,6 +25,7 @@ export const installPluginCommand = new Command('install-plugin')
|
|
|
15
25
|
process.exit(1);
|
|
16
26
|
}
|
|
17
27
|
const projectPath = path.resolve(resolvedPath);
|
|
28
|
+
// ── Phase 1: install the plugin into the Unity project's manifest ────────
|
|
18
29
|
// Wire the library's progress events back into the CLI's chalk-
|
|
19
30
|
// styled ui so the terminal experience stays identical.
|
|
20
31
|
let spinner;
|
|
@@ -59,6 +70,61 @@ export const installPluginCommand = new Command('install-plugin')
|
|
|
59
70
|
for (const warning of result.warnings) {
|
|
60
71
|
ui.warn(warning);
|
|
61
72
|
}
|
|
73
|
+
// ── Phase 2: download the RID-matched server binary (--with-server) ──────
|
|
74
|
+
if (options.withServer) {
|
|
75
|
+
const serverSpinner = ui.startSpinner('Downloading GameDev-MCP-Server binary...');
|
|
76
|
+
try {
|
|
77
|
+
const download = await downloadServerBinary({
|
|
78
|
+
version: options.serverVersion ?? DEFAULT_SERVER_VERSION,
|
|
79
|
+
source: options.serverSource,
|
|
80
|
+
onProgress: (msg) => {
|
|
81
|
+
serverSpinner.text = msg;
|
|
82
|
+
verbose(msg);
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
serverSpinner.success(`Server ${download.rid} v${download.version} installed${download.verified ? ' (checksum verified)' : ''}`);
|
|
86
|
+
ui.label('Server binary', download.binaryPath);
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
serverSpinner.error('Server download failed');
|
|
90
|
+
ui.error(err instanceof Error ? err.message : String(err));
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// ── Phase 3: redeem an enrollment code (--enroll / --enroll-stdin) ───────
|
|
95
|
+
if (options.enroll || options.enrollStdin) {
|
|
96
|
+
let code;
|
|
97
|
+
try {
|
|
98
|
+
code = resolveEnrollCode({ enroll: options.enroll, enrollStdin: options.enrollStdin }, () => fs.readFileSync(0, 'utf-8'));
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
ui.error(err instanceof Error ? err.message : String(err));
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
const enrollSpinner = ui.startSpinner('Redeeming enrollment code...');
|
|
105
|
+
try {
|
|
106
|
+
const enrolled = await runEnroll({
|
|
107
|
+
code,
|
|
108
|
+
projectPath,
|
|
109
|
+
store: new MachineCredentialStore(),
|
|
110
|
+
});
|
|
111
|
+
enrollSpinner.success('Enrollment complete');
|
|
112
|
+
ui.label('Credential', enrolled.credentialPath);
|
|
113
|
+
ui.label('Server target', enrolled.serverTarget);
|
|
114
|
+
ui.label('Project marker', enrolled.markerPath);
|
|
115
|
+
ui.label('Project pin', enrolled.pin);
|
|
116
|
+
if (enrolled.pinnedConfigs.length > 0) {
|
|
117
|
+
for (const cfg of enrolled.pinnedConfigs) {
|
|
118
|
+
ui.info(`Pinned project routing in ${cfg}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
enrollSpinner.error('Enrollment failed');
|
|
124
|
+
ui.error(err instanceof EnrollmentError || err instanceof Error ? err.message : String(err));
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
62
128
|
ui.success('Done! Open the project in Unity Editor to complete installation.');
|
|
63
129
|
});
|
|
64
130
|
//# sourceMappingURL=install-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/commands/install-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/commands/install-plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/login.js
CHANGED
|
@@ -1,30 +1,42 @@
|
|
|
1
1
|
// Copyright (c) 2024 Ivan Murzak. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License, Version 2.0.
|
|
3
3
|
import { Command } from 'commander';
|
|
4
|
+
import * as path from 'path';
|
|
4
5
|
import * as ui from '../utils/ui.js';
|
|
5
6
|
import { verbose } from '../utils/ui.js';
|
|
6
|
-
import {
|
|
7
|
-
import { getOrCreateConfig, CLOUD_SERVER_BASE_URL } from '../utils/config.js';
|
|
7
|
+
import { CLOUD_SERVER_BASE_URL } from '../utils/config.js';
|
|
8
8
|
import { runCloudLogin } from '../utils/cloud-login.js';
|
|
9
|
+
import { MachineCredentialStore, MACHINE_STORE_DIR_NAME } from '../utils/machine-credentials.js';
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the credential store: the shared machine store (`~/.ai-game-dev/`) by default, or a
|
|
12
|
+
* project-local store (`<path>/.ai-game-dev/`) when `--project` is given.
|
|
13
|
+
*/
|
|
14
|
+
function resolveStore(options) {
|
|
15
|
+
if (options.project) {
|
|
16
|
+
const base = path.join(path.resolve(options.project), MACHINE_STORE_DIR_NAME);
|
|
17
|
+
return new MachineCredentialStore(base);
|
|
18
|
+
}
|
|
19
|
+
return new MachineCredentialStore();
|
|
20
|
+
}
|
|
9
21
|
export const loginCommand = new Command('login')
|
|
10
|
-
.description('
|
|
11
|
-
.
|
|
12
|
-
.option('--force', 'Re-authenticate even if already
|
|
13
|
-
.action(async (
|
|
14
|
-
const
|
|
15
|
-
verbose(`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
ui.
|
|
22
|
+
.description('Sign in to ai-game.dev and store the credential in the shared machine credential store (~/.ai-game-dev/credentials.json)')
|
|
23
|
+
.option('--project <path>', 'Store the credential in a project-local store (<path>/.ai-game-dev/) instead of the shared machine store')
|
|
24
|
+
.option('--force', 'Re-authenticate even if already signed in')
|
|
25
|
+
.action(async (options) => {
|
|
26
|
+
const store = resolveStore(options);
|
|
27
|
+
verbose(`Credential store: ${store.credentialsPath}`);
|
|
28
|
+
if (store.exists && !options.force) {
|
|
29
|
+
ui.success('Already signed in.');
|
|
30
|
+
ui.info(`Credential: ${store.credentialsPath}`);
|
|
19
31
|
ui.info('Use --force to re-authenticate.');
|
|
20
32
|
return;
|
|
21
33
|
}
|
|
22
|
-
ui.heading('
|
|
34
|
+
ui.heading('Sign in to ai-game.dev');
|
|
23
35
|
ui.label('Server', CLOUD_SERVER_BASE_URL);
|
|
24
36
|
ui.divider();
|
|
25
|
-
const token = await runCloudLogin(
|
|
37
|
+
const token = await runCloudLogin(store);
|
|
26
38
|
if (token) {
|
|
27
|
-
ui.success(
|
|
39
|
+
ui.success(`Signed in. Credential saved to ${store.credentialsPath}`);
|
|
28
40
|
}
|
|
29
41
|
else {
|
|
30
42
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,kDAAkD;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,kDAAkD;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAOjG;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAqB;IACzC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC9E,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,sBAAsB,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CACV,0HAA0H,CAC3H;KACA,MAAM,CACL,kBAAkB,EAClB,0GAA0G,CAC3G;KACA,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,qBAAqB,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;IAEtD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACjC,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QAChD,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC1C,EAAE,CAAC,OAAO,EAAE,CAAC;IAEb,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,EAAE,CAAC,OAAO,CAAC,kCAAkC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { resolveAndValidateProjectPath, resolveConnection } from '../utils/conne
|
|
|
6
6
|
import { getAgentById, getAgentIds, listAgentTable } from '../utils/agents.js';
|
|
7
7
|
import { readConfig, isCloudMode } from '../utils/config.js';
|
|
8
8
|
import { runCloudLogin } from '../utils/cloud-login.js';
|
|
9
|
+
import { MachineCredentialStore } from '../utils/machine-credentials.js';
|
|
9
10
|
function listAgentsWithSkills() {
|
|
10
11
|
listAgentTable('AI Agents \u2014 Skills Support', 'Skills Path', (a) => a.skillsPath ?? '\u2014');
|
|
11
12
|
}
|
|
@@ -96,7 +97,7 @@ export const setupSkillsCommand = new Command('setup-skills')
|
|
|
96
97
|
if (cloud && !options.token && !hadToken) {
|
|
97
98
|
ui.info('Cloud authentication required. Starting login...');
|
|
98
99
|
console.log();
|
|
99
|
-
const newToken = await runCloudLogin(
|
|
100
|
+
const newToken = await runCloudLogin(new MachineCredentialStore());
|
|
100
101
|
if (!newToken) {
|
|
101
102
|
process.exit(1);
|
|
102
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-skills.js","sourceRoot":"","sources":["../../src/commands/setup-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup-skills.js","sourceRoot":"","sources":["../../src/commands/setup-skills.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/setup-mcp.js
CHANGED
|
@@ -22,6 +22,18 @@ function portFromHost(host, projectPath) {
|
|
|
22
22
|
return generatePortFromDirectory(projectPath);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* True when `configPath` resolves to a location at or under `projectRoot`
|
|
27
|
+
* (separator- and case-insensitive) — i.e. a VCS-visible project-scoped file.
|
|
28
|
+
* Mirrors the b6 configurator's `IsProjectScopedPath`, used to decide whether a
|
|
29
|
+
* written access token would land in a committable file (design 03 Flow C).
|
|
30
|
+
*/
|
|
31
|
+
function isProjectScoped(configPath, projectRoot) {
|
|
32
|
+
const norm = (p) => path.resolve(p).replace(/\\/g, '/').replace(/\/+$/, '').toLowerCase();
|
|
33
|
+
const root = norm(projectRoot);
|
|
34
|
+
const target = norm(configPath);
|
|
35
|
+
return target === root || target.startsWith(root + '/');
|
|
36
|
+
}
|
|
25
37
|
/**
|
|
26
38
|
* Write MCP configuration for the given AI agent, so it can talk to
|
|
27
39
|
* Unity-MCP. Library-safe: no stdout noise, no process.exit, no throws
|
|
@@ -88,8 +100,22 @@ export async function setupMcp(opts) {
|
|
|
88
100
|
const port = portFromHost(config?.host, projectPath);
|
|
89
101
|
const timeout = config?.timeoutMs ?? 10000;
|
|
90
102
|
const auth = config?.authOption ?? 'none';
|
|
103
|
+
// Explicit PAT opt-in (design 03 Flow C): a token the caller passed on the
|
|
104
|
+
// command line (`--token`). Only an explicit opt-in — never a token merely
|
|
105
|
+
// resolved from the project config — places a static credential in the file.
|
|
106
|
+
const patOptIn = typeof opts.token === 'string' && opts.token.length > 0;
|
|
91
107
|
const token = opts.token ?? fromConfig.token ?? '';
|
|
92
|
-
|
|
108
|
+
// b6 credential policy (design decision D11): the DEFAULT http config is
|
|
109
|
+
// credential-free. OAuth-capable clients perform native RFC 9728 OAuth
|
|
110
|
+
// against the URL (Flow A), so a static `Authorization: Bearer` header both
|
|
111
|
+
// FAILS (the hosted ai-game.dev/mcp endpoint 401s the token) AND suppresses
|
|
112
|
+
// the client's own OAuth handshake ("OAuth fallback is disabled when
|
|
113
|
+
// headers.Authorization is set"). A static header is written ONLY for an
|
|
114
|
+
// explicit PAT opt-in (Flow C) or a client that cannot do MCP OAuth
|
|
115
|
+
// (`supportsOAuth === false`) — never automatically for an OAuth-capable
|
|
116
|
+
// client, regardless of the server's `authRequired` setting.
|
|
117
|
+
const supportsOAuth = agent.supportsOAuth !== false;
|
|
118
|
+
const emitAuthHeader = token.length > 0 && (patOptIn || !supportsOAuth);
|
|
93
119
|
const serverPath = resolveServerBinaryPath(projectPath).replace(/\\/g, '/');
|
|
94
120
|
// Resolve URL for HTTP — explicit override, then config, then
|
|
95
121
|
// deterministic localhost fallback. Trailing slash stripped.
|
|
@@ -102,7 +128,7 @@ export async function setupMcp(opts) {
|
|
|
102
128
|
removeKeys = agent.stdioRemoveKeys;
|
|
103
129
|
}
|
|
104
130
|
else {
|
|
105
|
-
props = agent.getHttpProps(serverUrl, token,
|
|
131
|
+
props = agent.getHttpProps(serverUrl, token, emitAuthHeader);
|
|
106
132
|
removeKeys = agent.httpRemoveKeys;
|
|
107
133
|
}
|
|
108
134
|
if (agent.configFormat === 'toml') {
|
|
@@ -116,6 +142,12 @@ export async function setupMcp(opts) {
|
|
|
116
142
|
message: `Wrote ${configPath}`,
|
|
117
143
|
manifestPath: configPath,
|
|
118
144
|
});
|
|
145
|
+
// Flow C credential-placement rule (design 03): a static access token
|
|
146
|
+
// written into a project-scoped config file is VCS-visible. Warn so the
|
|
147
|
+
// user prefers an env-var / user-scope placement for the credential.
|
|
148
|
+
if (transport === 'http' && emitAuthHeader && isProjectScoped(configPath, projectPath)) {
|
|
149
|
+
warnings.push(`Wrote an access token into project-scoped config file "${configPath}" — it is under the project root and may be committed to version control. Prefer an env-var or user-scope placement for the access token (design 03 Flow C).`);
|
|
150
|
+
}
|
|
119
151
|
if (transport === 'stdio' && !fs.existsSync(serverPath.replace(/\//g, path.sep))) {
|
|
120
152
|
warnings.push('Server binary not found. Open Unity with the MCP plugin to download it automatically.');
|
|
121
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/lib/setup-mcp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/lib/setup-mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/agents.d.ts
CHANGED
|
@@ -5,9 +5,20 @@ export interface AgentDefinition {
|
|
|
5
5
|
configPathDisplay: string;
|
|
6
6
|
configFormat: 'json' | 'toml';
|
|
7
7
|
bodyPath: string;
|
|
8
|
+
/**
|
|
9
|
+
* Whether this agent can complete native MCP OAuth (RFC 9728) against the
|
|
10
|
+
* server URL on the default http path (design 03 Flow A / decision D11).
|
|
11
|
+
* `undefined`/`true` — the default across the registry, mirroring the shared
|
|
12
|
+
* b6 configurators — means the default config is credential-free: the client
|
|
13
|
+
* runs its own authorize flow, so injecting a static `Authorization` header
|
|
14
|
+
* would both fail (the hosted endpoint 401s the token) and suppress that
|
|
15
|
+
* flow. Set `false` only for a client that cannot do MCP OAuth; such a client
|
|
16
|
+
* still receives a header only via the explicit PAT fallback (Flow C).
|
|
17
|
+
*/
|
|
18
|
+
supportsOAuth?: boolean;
|
|
8
19
|
getConfigPath(projectPath: string): string;
|
|
9
20
|
getStdioProps(serverPath: string, port: number, timeout: number, auth: string, token: string): Record<string, unknown>;
|
|
10
|
-
getHttpProps(url: string, token: string,
|
|
21
|
+
getHttpProps(url: string, token: string, emitAuthHeader: boolean): Record<string, unknown>;
|
|
11
22
|
stdioRemoveKeys: string[];
|
|
12
23
|
httpRemoveKeys: string[];
|
|
13
24
|
}
|