@kwonye/mcpx 0.1.67 → 0.1.73
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/adapters/claude-desktop.d.ts +1 -0
- package/dist/adapters/claude-desktop.d.ts.map +1 -0
- package/dist/adapters/claude.d.ts +1 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/cline.d.ts +1 -0
- package/dist/adapters/cline.d.ts.map +1 -0
- package/dist/adapters/codex.d.ts +1 -0
- package/dist/adapters/codex.d.ts.map +1 -0
- package/dist/adapters/cursor.d.ts +1 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/kiro.d.ts +1 -0
- package/dist/adapters/kiro.d.ts.map +1 -0
- package/dist/adapters/opencode.d.ts +1 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/adapters/qwen.d.ts +1 -0
- package/dist/adapters/qwen.d.ts.map +1 -0
- package/dist/adapters/utils/index.d.ts +2 -0
- package/dist/adapters/utils/index.d.ts.map +1 -0
- package/dist/adapters/vscode.d.ts +1 -0
- package/dist/adapters/vscode.d.ts.map +1 -0
- package/dist/cli-7rggq938.js +3292 -0
- package/dist/cli-ezvj44tr.js +3292 -0
- package/dist/cli-q8de7zb0.js +12 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1880 -1131
- package/dist/compat/claude.d.ts +1 -0
- package/dist/compat/claude.d.ts.map +1 -0
- package/dist/compat/codex.d.ts +1 -0
- package/dist/compat/codex.d.ts.map +1 -0
- package/dist/compat/index.d.ts +1 -0
- package/dist/compat/index.d.ts.map +1 -0
- package/dist/compat/qwen.d.ts +1 -0
- package/dist/compat/qwen.d.ts.map +1 -0
- package/dist/compat/unsupported.d.ts +1 -0
- package/dist/compat/unsupported.d.ts.map +1 -0
- package/dist/compat/vscode.d.ts +1 -0
- package/dist/compat/vscode.d.ts.map +1 -0
- package/dist/core/auth-probe.d.ts +1 -0
- package/dist/core/auth-probe.d.ts.map +1 -0
- package/dist/core/config.d.ts +1 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/daemon.d.ts +1 -0
- package/dist/core/daemon.d.ts.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +81 -24
- package/dist/core/managed-index.d.ts +1 -0
- package/dist/core/managed-index.d.ts.map +1 -0
- package/dist/core/paths.d.ts +2 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/registry.d.ts +1 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/secrets.d.ts +1 -0
- package/dist/core/secrets.d.ts.map +1 -0
- package/dist/core/server-auth.d.ts +1 -0
- package/dist/core/server-auth.d.ts.map +1 -0
- package/dist/core/status.d.ts +1 -0
- package/dist/core/status.d.ts.map +1 -0
- package/dist/core/sync.d.ts +1 -0
- package/dist/core/sync.d.ts.map +1 -0
- package/dist/core/update-manager.d.ts +1 -0
- package/dist/core/update-manager.d.ts.map +1 -0
- package/dist/core/update.d.ts +1 -0
- package/dist/core/update.d.ts.map +1 -0
- package/dist/gateway/server.d.ts +1 -0
- package/dist/gateway/server.d.ts.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -10
- package/dist/util/fs.d.ts +1 -0
- package/dist/util/fs.d.ts.map +1 -0
- package/dist/version.d.ts +2 -1
- package/dist/version.d.ts.map +1 -0
- package/package.json +10 -11
- package/dist/adapters/claude-desktop.js +0 -115
- package/dist/adapters/claude-desktop.js.map +0 -1
- package/dist/adapters/claude.js +0 -131
- package/dist/adapters/claude.js.map +0 -1
- package/dist/adapters/cline.js +0 -135
- package/dist/adapters/cline.js.map +0 -1
- package/dist/adapters/codex.js +0 -125
- package/dist/adapters/codex.js.map +0 -1
- package/dist/adapters/cursor.js +0 -122
- package/dist/adapters/cursor.js.map +0 -1
- package/dist/adapters/index.js +0 -23
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/kiro.js +0 -120
- package/dist/adapters/kiro.js.map +0 -1
- package/dist/adapters/opencode.js +0 -122
- package/dist/adapters/opencode.js.map +0 -1
- package/dist/adapters/qwen.js +0 -113
- package/dist/adapters/qwen.js.map +0 -1
- package/dist/adapters/utils/index.js +0 -134
- package/dist/adapters/utils/index.js.map +0 -1
- package/dist/adapters/vscode.js +0 -122
- package/dist/adapters/vscode.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/compat/claude.js +0 -252
- package/dist/compat/claude.js.map +0 -1
- package/dist/compat/codex.js +0 -179
- package/dist/compat/codex.js.map +0 -1
- package/dist/compat/index.js +0 -108
- package/dist/compat/index.js.map +0 -1
- package/dist/compat/qwen.js +0 -316
- package/dist/compat/qwen.js.map +0 -1
- package/dist/compat/unsupported.js +0 -47
- package/dist/compat/unsupported.js.map +0 -1
- package/dist/compat/vscode.js +0 -164
- package/dist/compat/vscode.js.map +0 -1
- package/dist/core/auth-probe.js +0 -54
- package/dist/core/auth-probe.js.map +0 -1
- package/dist/core/config.js +0 -76
- package/dist/core/config.js.map +0 -1
- package/dist/core/daemon.js +0 -176
- package/dist/core/daemon.js.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/managed-index.js +0 -22
- package/dist/core/managed-index.js.map +0 -1
- package/dist/core/paths.js +0 -55
- package/dist/core/paths.js.map +0 -1
- package/dist/core/registry.js +0 -51
- package/dist/core/registry.js.map +0 -1
- package/dist/core/secrets.js +0 -108
- package/dist/core/secrets.js.map +0 -1
- package/dist/core/server-auth.js +0 -112
- package/dist/core/server-auth.js.map +0 -1
- package/dist/core/status.js +0 -65
- package/dist/core/status.js.map +0 -1
- package/dist/core/sync.js +0 -128
- package/dist/core/sync.js.map +0 -1
- package/dist/core/update-manager.js +0 -170
- package/dist/core/update-manager.js.map +0 -1
- package/dist/core/update.js +0 -111
- package/dist/core/update.js.map +0 -1
- package/dist/gateway/server.js +0 -995
- package/dist/gateway/server.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/util/fs.js +0 -34
- package/dist/util/fs.js.map +0 -1
- package/dist/version.js +0 -2
- package/dist/version.js.map +0 -1
package/dist/adapters/claude.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import os from "node:os";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { readJsonFile, writeJsonAtomic } from "../util/fs.js";
|
|
5
|
-
import { buildImportSkip, emptyImportScan, ensureManagedEntryWritable, errorResult, isManagedGatewayProjection, okResult, pruneStaleManagedEntries, removeSourceEntries, setManagedEntries, syncDisabledMcpServersArray } from "./utils/index.js";
|
|
6
|
-
const stringMapSchema = z.record(z.string(), z.string());
|
|
7
|
-
const claudeEntrySchema = z.object({
|
|
8
|
-
type: z.string().optional(),
|
|
9
|
-
url: z.string().min(1).optional(),
|
|
10
|
-
headers: stringMapSchema.optional(),
|
|
11
|
-
command: z.string().min(1).optional(),
|
|
12
|
-
args: z.array(z.string()).optional(),
|
|
13
|
-
env: stringMapSchema.optional(),
|
|
14
|
-
cwd: z.string().min(1).optional(),
|
|
15
|
-
disabled: z.boolean().optional()
|
|
16
|
-
}).passthrough();
|
|
17
|
-
export class ClaudeAdapter {
|
|
18
|
-
id = "claude";
|
|
19
|
-
detectConfigPath() {
|
|
20
|
-
return path.join(os.homedir(), ".claude.json");
|
|
21
|
-
}
|
|
22
|
-
supportsHttp() {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
scanForImports(_config, managedIndex) {
|
|
26
|
-
const configPath = this.detectConfigPath();
|
|
27
|
-
const result = emptyImportScan(this.id, configPath ?? undefined);
|
|
28
|
-
if (!configPath) {
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
const raw = readJsonFile(configPath, {});
|
|
32
|
-
const topLevelServers = (raw.mcpServers ?? {});
|
|
33
|
-
const disabledMcpServers = new Set(raw.disabledMcpServers ?? []);
|
|
34
|
-
const projects = raw.projects ?? {};
|
|
35
|
-
for (const project of Object.values(projects)) {
|
|
36
|
-
const projectDisabled = project?.disabledMcpServers ?? [];
|
|
37
|
-
for (const name of projectDisabled) {
|
|
38
|
-
disabledMcpServers.add(name);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
for (const [name, rawEntry] of Object.entries(topLevelServers)) {
|
|
42
|
-
if (isManagedGatewayProjection(name) || managedIndex.managed[this.id]?.entries?.[name]) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
const parsed = claudeEntrySchema.safeParse(rawEntry);
|
|
46
|
-
if (!parsed.success) {
|
|
47
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry could not be mapped to an mcpx server.", configPath));
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
const entry = parsed.data;
|
|
51
|
-
const isDisabled = entry.disabled === true || disabledMcpServers.has(name);
|
|
52
|
-
if ((entry.type === undefined || entry.type === "http") && entry.url && !entry.command) {
|
|
53
|
-
result.candidates.push({
|
|
54
|
-
clientId: this.id,
|
|
55
|
-
configPath,
|
|
56
|
-
sourceEntryName: name,
|
|
57
|
-
serverName: name,
|
|
58
|
-
spec: {
|
|
59
|
-
transport: "http",
|
|
60
|
-
url: entry.url,
|
|
61
|
-
headers: entry.headers,
|
|
62
|
-
enabled: !isDisabled
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
if ((entry.type === undefined || entry.type === "stdio") && entry.command && !entry.url) {
|
|
68
|
-
result.candidates.push({
|
|
69
|
-
clientId: this.id,
|
|
70
|
-
configPath,
|
|
71
|
-
sourceEntryName: name,
|
|
72
|
-
serverName: name,
|
|
73
|
-
spec: {
|
|
74
|
-
transport: "stdio",
|
|
75
|
-
command: entry.command,
|
|
76
|
-
args: entry.args,
|
|
77
|
-
env: entry.env,
|
|
78
|
-
cwd: entry.cwd,
|
|
79
|
-
enabled: !isDisabled
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry must define exactly one transport that mcpx supports.", configPath));
|
|
85
|
-
}
|
|
86
|
-
return result;
|
|
87
|
-
}
|
|
88
|
-
syncGateway(_config, options) {
|
|
89
|
-
const configPath = this.detectConfigPath();
|
|
90
|
-
if (!configPath) {
|
|
91
|
-
return errorResult(this.id, undefined, "Unable to resolve Claude config path.");
|
|
92
|
-
}
|
|
93
|
-
try {
|
|
94
|
-
const raw = readJsonFile(configPath, {});
|
|
95
|
-
const managedNames = options.managedEntries.map((entry) => entry.name);
|
|
96
|
-
const serverEntries = Object.fromEntries(options.managedEntries.map((entry) => [entry.name, {
|
|
97
|
-
type: "http",
|
|
98
|
-
url: entry.url,
|
|
99
|
-
headers: entry.headers
|
|
100
|
-
}]));
|
|
101
|
-
const topLevelServers = (raw.mcpServers ?? {});
|
|
102
|
-
removeSourceEntries(topLevelServers, options.sourceEntriesToRemove);
|
|
103
|
-
for (const name of managedNames) {
|
|
104
|
-
const topLevelConflict = ensureManagedEntryWritable(options.managedIndex, this.id, name, topLevelServers[name]);
|
|
105
|
-
if (topLevelConflict) {
|
|
106
|
-
return errorResult(this.id, configPath, topLevelConflict);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
pruneStaleManagedEntries(options.managedIndex, this.id, topLevelServers, managedNames);
|
|
110
|
-
for (const [name, entry] of Object.entries(serverEntries)) {
|
|
111
|
-
topLevelServers[name] = entry;
|
|
112
|
-
}
|
|
113
|
-
raw.mcpServers = topLevelServers;
|
|
114
|
-
syncDisabledMcpServersArray(raw, managedNames, options.managedEntries);
|
|
115
|
-
const projects = raw.projects ?? {};
|
|
116
|
-
for (const projectPath of Object.keys(projects)) {
|
|
117
|
-
const project = projects[projectPath] ?? {};
|
|
118
|
-
syncDisabledMcpServersArray(project, managedNames, options.managedEntries);
|
|
119
|
-
projects[projectPath] = project;
|
|
120
|
-
}
|
|
121
|
-
raw.projects = projects;
|
|
122
|
-
writeJsonAtomic(configPath, raw);
|
|
123
|
-
setManagedEntries(options.managedIndex, this.id, configPath, Object.fromEntries(Object.entries(serverEntries).map(([name, entry]) => [name, JSON.stringify(entry)])));
|
|
124
|
-
return okResult(this.id, configPath);
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
return errorResult(this.id, configPath, error.message);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/cline.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import os from "node:os";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import fs from "node:fs";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { readJsonFile, writeJsonAtomic } from "../util/fs.js";
|
|
6
|
-
import { buildImportSkip, emptyImportScan, ensureManagedEntryWritable, errorResult, isManagedGatewayProjection, okResult, pruneStaleManagedEntries, removeSourceEntries, setManagedEntries } from "./utils/index.js";
|
|
7
|
-
const stringMapSchema = z.record(z.string(), z.string());
|
|
8
|
-
const clineEntrySchema = z.object({
|
|
9
|
-
transportType: z.string().optional(),
|
|
10
|
-
url: z.string().min(1).optional(),
|
|
11
|
-
headers: stringMapSchema.optional(),
|
|
12
|
-
command: z.string().min(1).optional(),
|
|
13
|
-
args: z.array(z.string()).optional(),
|
|
14
|
-
env: stringMapSchema.optional(),
|
|
15
|
-
cwd: z.string().min(1).optional(),
|
|
16
|
-
disabled: z.boolean().optional()
|
|
17
|
-
}).passthrough();
|
|
18
|
-
function getCandidatePaths() {
|
|
19
|
-
return [
|
|
20
|
-
path.join(os.homedir(), "Library", "Application Support", "Code", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json"),
|
|
21
|
-
path.join(os.homedir(), "Library", "Application Support", "Cursor", "User", "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json")
|
|
22
|
-
];
|
|
23
|
-
}
|
|
24
|
-
export class ClineAdapter {
|
|
25
|
-
id = "cline";
|
|
26
|
-
detectConfigPath() {
|
|
27
|
-
const candidates = getCandidatePaths();
|
|
28
|
-
for (const candidate of candidates) {
|
|
29
|
-
if (fs.existsSync(candidate)) {
|
|
30
|
-
return candidate;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return candidates[0] ?? null;
|
|
34
|
-
}
|
|
35
|
-
supportsHttp() {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
scanForImports(_config, managedIndex) {
|
|
39
|
-
const configPath = this.detectConfigPath();
|
|
40
|
-
const result = emptyImportScan(this.id, configPath ?? undefined);
|
|
41
|
-
if (!configPath || !fs.existsSync(configPath)) {
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
const raw = readJsonFile(configPath, {});
|
|
45
|
-
const servers = {
|
|
46
|
-
...(raw.mcpServers ?? {})
|
|
47
|
-
};
|
|
48
|
-
for (const [name, rawEntry] of Object.entries(servers)) {
|
|
49
|
-
if (isManagedGatewayProjection(name) || managedIndex.managed[this.id]?.entries?.[name]) {
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
const parsed = clineEntrySchema.safeParse(rawEntry);
|
|
53
|
-
if (!parsed.success) {
|
|
54
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry could not be mapped to an mcpx server.", configPath));
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
const entry = parsed.data;
|
|
58
|
-
if ((entry.transportType === undefined || entry.transportType === "http") && entry.url && !entry.command) {
|
|
59
|
-
result.candidates.push({
|
|
60
|
-
clientId: this.id,
|
|
61
|
-
configPath,
|
|
62
|
-
sourceEntryName: name,
|
|
63
|
-
serverName: name,
|
|
64
|
-
spec: {
|
|
65
|
-
transport: "http",
|
|
66
|
-
url: entry.url,
|
|
67
|
-
headers: entry.headers,
|
|
68
|
-
enabled: entry.disabled !== true
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
if ((entry.transportType === undefined || entry.transportType === "stdio") && entry.command && !entry.url) {
|
|
74
|
-
result.candidates.push({
|
|
75
|
-
clientId: this.id,
|
|
76
|
-
configPath,
|
|
77
|
-
sourceEntryName: name,
|
|
78
|
-
serverName: name,
|
|
79
|
-
spec: {
|
|
80
|
-
transport: "stdio",
|
|
81
|
-
command: entry.command,
|
|
82
|
-
args: entry.args,
|
|
83
|
-
env: entry.env,
|
|
84
|
-
cwd: entry.cwd,
|
|
85
|
-
enabled: entry.disabled !== true
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry must define exactly one transport that mcpx supports.", configPath));
|
|
91
|
-
}
|
|
92
|
-
return result;
|
|
93
|
-
}
|
|
94
|
-
syncGateway(_config, options) {
|
|
95
|
-
const configPath = this.detectConfigPath();
|
|
96
|
-
if (!configPath) {
|
|
97
|
-
return errorResult(this.id, undefined, "Unable to resolve Cline MCP config path.");
|
|
98
|
-
}
|
|
99
|
-
try {
|
|
100
|
-
const raw = readJsonFile(configPath, {});
|
|
101
|
-
const servers = {
|
|
102
|
-
...(raw.mcpServers ?? {})
|
|
103
|
-
};
|
|
104
|
-
removeSourceEntries(servers, options.sourceEntriesToRemove);
|
|
105
|
-
const managedNames = options.managedEntries.map((entry) => entry.name);
|
|
106
|
-
const serverEntries = Object.fromEntries(options.managedEntries.map((entry) => [entry.name, {
|
|
107
|
-
transportType: "http",
|
|
108
|
-
url: entry.url,
|
|
109
|
-
headers: entry.headers,
|
|
110
|
-
disabled: !entry.enabled
|
|
111
|
-
}]));
|
|
112
|
-
for (const name of managedNames) {
|
|
113
|
-
const conflict = ensureManagedEntryWritable(options.managedIndex, this.id, name, servers[name]);
|
|
114
|
-
if (conflict) {
|
|
115
|
-
return errorResult(this.id, configPath, conflict);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
pruneStaleManagedEntries(options.managedIndex, this.id, servers, managedNames);
|
|
119
|
-
for (const [name, entry] of Object.entries(serverEntries)) {
|
|
120
|
-
servers[name] = entry;
|
|
121
|
-
}
|
|
122
|
-
const next = {
|
|
123
|
-
...raw,
|
|
124
|
-
mcpServers: servers
|
|
125
|
-
};
|
|
126
|
-
writeJsonAtomic(configPath, next);
|
|
127
|
-
setManagedEntries(options.managedIndex, this.id, configPath, Object.fromEntries(Object.entries(serverEntries).map(([name, entry]) => [name, JSON.stringify(entry)])));
|
|
128
|
-
return okResult(this.id, configPath);
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
131
|
-
return errorResult(this.id, configPath, error.message);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=cline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cline.js","sourceRoot":"","sources":["../../src/adapters/cline.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/codex.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import os from "node:os";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import fs from "node:fs";
|
|
4
|
-
import { parse, stringify } from "@iarna/toml";
|
|
5
|
-
import { z } from "zod";
|
|
6
|
-
import { buildImportSkip, emptyImportScan, ensureManagedEntryWritable, errorResult, isManagedGatewayProjection, okResult, pruneStaleManagedEntries, removeSourceEntries, setManagedEntries } from "./utils/index.js";
|
|
7
|
-
const stringMapSchema = z.preprocess((value) => {
|
|
8
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
9
|
-
return value;
|
|
10
|
-
}
|
|
11
|
-
return Object.fromEntries(Object.entries(value));
|
|
12
|
-
}, z.record(z.string(), z.string()));
|
|
13
|
-
const codexEntrySchema = z.object({
|
|
14
|
-
enabled: z.boolean().optional(),
|
|
15
|
-
url: z.string().min(1).optional(),
|
|
16
|
-
headers: stringMapSchema.optional(),
|
|
17
|
-
http_headers: stringMapSchema.optional(),
|
|
18
|
-
command: z.string().min(1).optional(),
|
|
19
|
-
args: z.array(z.string()).optional(),
|
|
20
|
-
env: stringMapSchema.optional(),
|
|
21
|
-
cwd: z.string().min(1).optional()
|
|
22
|
-
}).passthrough();
|
|
23
|
-
export class CodexAdapter {
|
|
24
|
-
id = "codex";
|
|
25
|
-
detectConfigPath() {
|
|
26
|
-
return path.join(os.homedir(), ".codex", "config.toml");
|
|
27
|
-
}
|
|
28
|
-
supportsHttp() {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
scanForImports(_config, managedIndex) {
|
|
32
|
-
const configPath = this.detectConfigPath();
|
|
33
|
-
const result = emptyImportScan(this.id, configPath ?? undefined);
|
|
34
|
-
if (!configPath || !fs.existsSync(configPath)) {
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
const existing = fs.readFileSync(configPath, "utf8");
|
|
38
|
-
const doc = existing.trim().length > 0 ? parse(existing) : {};
|
|
39
|
-
const mcpServers = (doc.mcp_servers ?? {});
|
|
40
|
-
for (const [name, rawEntry] of Object.entries(mcpServers)) {
|
|
41
|
-
if (isManagedGatewayProjection(name) || managedIndex.managed[this.id]?.entries?.[name]) {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
const parsed = codexEntrySchema.safeParse(rawEntry);
|
|
45
|
-
if (!parsed.success) {
|
|
46
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry could not be mapped to an mcpx server.", configPath));
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const entry = parsed.data;
|
|
50
|
-
if (entry.url && !entry.command) {
|
|
51
|
-
result.candidates.push({
|
|
52
|
-
clientId: this.id,
|
|
53
|
-
configPath,
|
|
54
|
-
sourceEntryName: name,
|
|
55
|
-
serverName: name,
|
|
56
|
-
spec: {
|
|
57
|
-
transport: "http",
|
|
58
|
-
url: entry.url,
|
|
59
|
-
headers: entry.http_headers ?? entry.headers,
|
|
60
|
-
enabled: entry.enabled !== false
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
if (entry.command && !entry.url) {
|
|
66
|
-
result.candidates.push({
|
|
67
|
-
clientId: this.id,
|
|
68
|
-
configPath,
|
|
69
|
-
sourceEntryName: name,
|
|
70
|
-
serverName: name,
|
|
71
|
-
spec: {
|
|
72
|
-
transport: "stdio",
|
|
73
|
-
command: entry.command,
|
|
74
|
-
args: entry.args,
|
|
75
|
-
env: entry.env,
|
|
76
|
-
cwd: entry.cwd,
|
|
77
|
-
enabled: entry.enabled !== false
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry must define exactly one transport that mcpx supports.", configPath));
|
|
83
|
-
}
|
|
84
|
-
return result;
|
|
85
|
-
}
|
|
86
|
-
syncGateway(_config, options) {
|
|
87
|
-
const configPath = this.detectConfigPath();
|
|
88
|
-
if (!configPath) {
|
|
89
|
-
return errorResult(this.id, undefined, "Unable to resolve Codex config.toml path.");
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
const existing = fs.existsSync(configPath) ? fs.readFileSync(configPath, "utf8") : "";
|
|
93
|
-
const doc = existing.trim().length > 0 ? parse(existing) : {};
|
|
94
|
-
const mcpServers = (doc.mcp_servers ?? {});
|
|
95
|
-
removeSourceEntries(mcpServers, options.sourceEntriesToRemove);
|
|
96
|
-
const managedNames = options.managedEntries.map((entry) => entry.name);
|
|
97
|
-
const serverEntries = Object.fromEntries(options.managedEntries.map((entry) => [entry.name, {
|
|
98
|
-
enabled: entry.enabled,
|
|
99
|
-
url: entry.url,
|
|
100
|
-
http_headers: entry.headers
|
|
101
|
-
}]));
|
|
102
|
-
for (const name of managedNames) {
|
|
103
|
-
const conflict = ensureManagedEntryWritable(options.managedIndex, this.id, name, mcpServers[name]);
|
|
104
|
-
if (conflict) {
|
|
105
|
-
return errorResult(this.id, configPath, conflict);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
pruneStaleManagedEntries(options.managedIndex, this.id, mcpServers, managedNames);
|
|
109
|
-
for (const [name, entry] of Object.entries(serverEntries)) {
|
|
110
|
-
mcpServers[name] = entry;
|
|
111
|
-
}
|
|
112
|
-
doc.mcp_servers = mcpServers;
|
|
113
|
-
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
114
|
-
const tmpPath = `${configPath}.tmp-${process.pid}-${Date.now()}`;
|
|
115
|
-
fs.writeFileSync(tmpPath, stringify(doc), { mode: 0o600 });
|
|
116
|
-
fs.renameSync(tmpPath, configPath);
|
|
117
|
-
setManagedEntries(options.managedIndex, this.id, configPath, Object.fromEntries(Object.entries(serverEntries).map(([name, entry]) => [name, JSON.stringify(entry)])));
|
|
118
|
-
return okResult(this.id, configPath);
|
|
119
|
-
}
|
|
120
|
-
catch (error) {
|
|
121
|
-
return errorResult(this.id, configPath, error.message);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/cursor.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import os from "node:os";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { readJsonFile, writeJsonAtomic } from "../util/fs.js";
|
|
5
|
-
import { buildImportSkip, emptyImportScan, ensureManagedEntryWritable, errorResult, isManagedGatewayProjection, okResult, pruneStaleManagedEntries, removeSourceEntries, setManagedEntries } from "./utils/index.js";
|
|
6
|
-
const stringMapSchema = z.record(z.string(), z.string());
|
|
7
|
-
const cursorEntrySchema = z.object({
|
|
8
|
-
type: z.string().optional(),
|
|
9
|
-
url: z.string().min(1).optional(),
|
|
10
|
-
headers: stringMapSchema.optional(),
|
|
11
|
-
command: z.string().min(1).optional(),
|
|
12
|
-
args: z.array(z.string()).optional(),
|
|
13
|
-
env: stringMapSchema.optional(),
|
|
14
|
-
cwd: z.string().min(1).optional(),
|
|
15
|
-
disabled: z.boolean().optional()
|
|
16
|
-
}).passthrough();
|
|
17
|
-
export class CursorAdapter {
|
|
18
|
-
id = "cursor";
|
|
19
|
-
detectConfigPath() {
|
|
20
|
-
return path.join(os.homedir(), "Library", "Application Support", "Cursor", "User", "mcp.json");
|
|
21
|
-
}
|
|
22
|
-
supportsHttp() {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
scanForImports(_config, managedIndex) {
|
|
26
|
-
const configPath = this.detectConfigPath();
|
|
27
|
-
const result = emptyImportScan(this.id, configPath ?? undefined);
|
|
28
|
-
if (!configPath) {
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
const raw = readJsonFile(configPath, {});
|
|
32
|
-
const servers = {
|
|
33
|
-
...(raw.servers ?? {})
|
|
34
|
-
};
|
|
35
|
-
for (const [name, rawEntry] of Object.entries(servers)) {
|
|
36
|
-
if (isManagedGatewayProjection(name) || managedIndex.managed[this.id]?.entries?.[name]) {
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
const parsed = cursorEntrySchema.safeParse(rawEntry);
|
|
40
|
-
if (!parsed.success) {
|
|
41
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry could not be mapped to an mcpx server.", configPath));
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
const entry = parsed.data;
|
|
45
|
-
if ((entry.type === undefined || entry.type === "http") && entry.url && !entry.command) {
|
|
46
|
-
result.candidates.push({
|
|
47
|
-
clientId: this.id,
|
|
48
|
-
configPath,
|
|
49
|
-
sourceEntryName: name,
|
|
50
|
-
serverName: name,
|
|
51
|
-
spec: {
|
|
52
|
-
transport: "http",
|
|
53
|
-
url: entry.url,
|
|
54
|
-
headers: entry.headers,
|
|
55
|
-
enabled: entry.disabled !== true
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
if ((entry.type === undefined || entry.type === "stdio") && entry.command && !entry.url) {
|
|
61
|
-
result.candidates.push({
|
|
62
|
-
clientId: this.id,
|
|
63
|
-
configPath,
|
|
64
|
-
sourceEntryName: name,
|
|
65
|
-
serverName: name,
|
|
66
|
-
spec: {
|
|
67
|
-
transport: "stdio",
|
|
68
|
-
command: entry.command,
|
|
69
|
-
args: entry.args,
|
|
70
|
-
env: entry.env,
|
|
71
|
-
cwd: entry.cwd,
|
|
72
|
-
enabled: entry.disabled !== true
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
result.skipped.push(buildImportSkip(this.id, name, "Entry must define exactly one transport that mcpx supports.", configPath));
|
|
78
|
-
}
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
syncGateway(_config, options) {
|
|
82
|
-
const configPath = this.detectConfigPath();
|
|
83
|
-
if (!configPath) {
|
|
84
|
-
return errorResult(this.id, undefined, "Unable to resolve Cursor MCP config path.");
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
const raw = readJsonFile(configPath, {});
|
|
88
|
-
const servers = {
|
|
89
|
-
...(raw.servers ?? {})
|
|
90
|
-
};
|
|
91
|
-
removeSourceEntries(servers, options.sourceEntriesToRemove);
|
|
92
|
-
const managedNames = options.managedEntries.map((entry) => entry.name);
|
|
93
|
-
const serverEntries = Object.fromEntries(options.managedEntries.map((entry) => [entry.name, {
|
|
94
|
-
type: "http",
|
|
95
|
-
url: entry.url,
|
|
96
|
-
headers: entry.headers,
|
|
97
|
-
disabled: !entry.enabled
|
|
98
|
-
}]));
|
|
99
|
-
for (const name of managedNames) {
|
|
100
|
-
const conflict = ensureManagedEntryWritable(options.managedIndex, this.id, name, servers[name]);
|
|
101
|
-
if (conflict) {
|
|
102
|
-
return errorResult(this.id, configPath, conflict);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
pruneStaleManagedEntries(options.managedIndex, this.id, servers, managedNames);
|
|
106
|
-
for (const [name, entry] of Object.entries(serverEntries)) {
|
|
107
|
-
servers[name] = entry;
|
|
108
|
-
}
|
|
109
|
-
const next = {
|
|
110
|
-
...raw,
|
|
111
|
-
servers
|
|
112
|
-
};
|
|
113
|
-
writeJsonAtomic(configPath, next);
|
|
114
|
-
setManagedEntries(options.managedIndex, this.id, configPath, Object.fromEntries(Object.entries(serverEntries).map(([name, entry]) => [name, JSON.stringify(entry)])));
|
|
115
|
-
return okResult(this.id, configPath);
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
return errorResult(this.id, configPath, error.message);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/index.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ClaudeAdapter } from "./claude.js";
|
|
2
|
-
import { ClaudeDesktopAdapter } from "./claude-desktop.js";
|
|
3
|
-
import { CodexAdapter } from "./codex.js";
|
|
4
|
-
import { CursorAdapter } from "./cursor.js";
|
|
5
|
-
import { ClineAdapter } from "./cline.js";
|
|
6
|
-
import { KiroAdapter } from "./kiro.js";
|
|
7
|
-
import { OpenCodeAdapter } from "./opencode.js";
|
|
8
|
-
import { VsCodeAdapter } from "./vscode.js";
|
|
9
|
-
import { QwenAdapter } from "./qwen.js";
|
|
10
|
-
export function getAdapters() {
|
|
11
|
-
return [
|
|
12
|
-
new ClaudeAdapter(),
|
|
13
|
-
new ClaudeDesktopAdapter(),
|
|
14
|
-
new CodexAdapter(),
|
|
15
|
-
new CursorAdapter(),
|
|
16
|
-
new ClineAdapter(),
|
|
17
|
-
new OpenCodeAdapter(),
|
|
18
|
-
new KiroAdapter(),
|
|
19
|
-
new VsCodeAdapter(),
|
|
20
|
-
new QwenAdapter()
|
|
21
|
-
];
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,IAAI,aAAa,EAAE;QACnB,IAAI,oBAAoB,EAAE;QAC1B,IAAI,YAAY,EAAE;QAClB,IAAI,aAAa,EAAE;QACnB,IAAI,YAAY,EAAE;QAClB,IAAI,eAAe,EAAE;QACrB,IAAI,WAAW,EAAE;QACjB,IAAI,aAAa,EAAE;QACnB,IAAI,WAAW,EAAE;KAClB,CAAC;AACJ,CAAC"}
|