@kwonye/mcpx 0.1.0
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/LICENSE +21 -0
- package/README.md +150 -0
- package/dist/adapters/claude.d.ts +7 -0
- package/dist/adapters/claude.js +69 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/cline.d.ts +7 -0
- package/dist/adapters/cline.js +65 -0
- package/dist/adapters/cline.js.map +1 -0
- package/dist/adapters/codex.d.ts +7 -0
- package/dist/adapters/codex.js +52 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/adapters/cursor.d.ts +7 -0
- package/dist/adapters/cursor.js +52 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.js +15 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/utils.d.ts +10 -0
- package/dist/adapters/utils.js +69 -0
- package/dist/adapters/utils.js.map +1 -0
- package/dist/adapters/vscode.d.ts +7 -0
- package/dist/adapters/vscode.js +52 -0
- package/dist/adapters/vscode.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +577 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/config.d.ts +4 -0
- package/dist/core/config.js +71 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/daemon.d.ts +25 -0
- package/dist/core/daemon.js +174 -0
- package/dist/core/daemon.js.map +1 -0
- package/dist/core/managed-index.d.ts +4 -0
- package/dist/core/managed-index.js +22 -0
- package/dist/core/managed-index.js.map +1 -0
- package/dist/core/paths.d.ts +12 -0
- package/dist/core/paths.js +46 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/registry.d.ts +7 -0
- package/dist/core/registry.js +33 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/secrets.d.ts +16 -0
- package/dist/core/secrets.js +108 -0
- package/dist/core/secrets.js.map +1 -0
- package/dist/core/server-auth.d.ts +19 -0
- package/dist/core/server-auth.js +112 -0
- package/dist/core/server-auth.js.map +1 -0
- package/dist/core/sync.d.ts +9 -0
- package/dist/core/sync.js +63 -0
- package/dist/core/sync.js.map +1 -0
- package/dist/gateway/server.d.ts +9 -0
- package/dist/gateway/server.js +960 -0
- package/dist/gateway/server.js.map +1 -0
- package/dist/types.d.ts +86 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/util/fs.d.ts +4 -0
- package/dist/util/fs.js +34 -0
- package/dist/util/fs.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
function normalizeNamePart(value) {
|
|
2
|
+
return value
|
|
3
|
+
.trim()
|
|
4
|
+
.toLowerCase()
|
|
5
|
+
.replace(/[^a-z0-9._-]+/g, "_")
|
|
6
|
+
.replace(/^_+|_+$/g, "") || "value";
|
|
7
|
+
}
|
|
8
|
+
function requireNonEmpty(value, label) {
|
|
9
|
+
const normalized = value?.trim();
|
|
10
|
+
if (!normalized) {
|
|
11
|
+
throw new Error(`${label} must be non-empty.`);
|
|
12
|
+
}
|
|
13
|
+
return normalized;
|
|
14
|
+
}
|
|
15
|
+
export function toSecretRef(secretName) {
|
|
16
|
+
return `secret://${secretName}`;
|
|
17
|
+
}
|
|
18
|
+
export function secretRefName(ref) {
|
|
19
|
+
if (!ref.startsWith("secret://")) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const name = ref.slice("secret://".length).trim();
|
|
23
|
+
return name.length > 0 ? name : null;
|
|
24
|
+
}
|
|
25
|
+
export function defaultAuthSecretName(serverName, target) {
|
|
26
|
+
return `auth_${normalizeNamePart(serverName)}_${target.kind}_${normalizeNamePart(target.key)}`;
|
|
27
|
+
}
|
|
28
|
+
export function resolveAuthTarget(spec, header, env) {
|
|
29
|
+
if (spec.transport === "http") {
|
|
30
|
+
if (env) {
|
|
31
|
+
throw new Error("--env is only valid for stdio upstreams.");
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
kind: "header",
|
|
35
|
+
key: requireNonEmpty(header ?? "Authorization", "Header name")
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (header) {
|
|
39
|
+
throw new Error("--header is only valid for HTTP upstreams.");
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
kind: "env",
|
|
43
|
+
key: requireNonEmpty(env, "Env var name")
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function applyAuthReference(spec, target, secretRef) {
|
|
47
|
+
if (target.kind === "header") {
|
|
48
|
+
if (spec.transport !== "http") {
|
|
49
|
+
throw new Error(`Cannot set header auth on ${spec.transport} upstream.`);
|
|
50
|
+
}
|
|
51
|
+
const headers = { ...(spec.headers ?? {}) };
|
|
52
|
+
headers[target.key] = secretRef;
|
|
53
|
+
spec.headers = headers;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (spec.transport !== "stdio") {
|
|
57
|
+
throw new Error(`Cannot set env auth on ${spec.transport} upstream.`);
|
|
58
|
+
}
|
|
59
|
+
const env = { ...(spec.env ?? {}) };
|
|
60
|
+
env[target.key] = secretRef;
|
|
61
|
+
spec.env = env;
|
|
62
|
+
}
|
|
63
|
+
export function removeAuthReference(spec, target) {
|
|
64
|
+
if (target.kind === "header") {
|
|
65
|
+
if (spec.transport !== "http") {
|
|
66
|
+
throw new Error(`Cannot remove header auth from ${spec.transport} upstream.`);
|
|
67
|
+
}
|
|
68
|
+
if (!spec.headers || !(target.key in spec.headers)) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const previous = spec.headers[target.key] ?? null;
|
|
72
|
+
const next = { ...spec.headers };
|
|
73
|
+
delete next[target.key];
|
|
74
|
+
spec.headers = Object.keys(next).length > 0 ? next : undefined;
|
|
75
|
+
return previous;
|
|
76
|
+
}
|
|
77
|
+
if (spec.transport !== "stdio") {
|
|
78
|
+
throw new Error(`Cannot remove env auth from ${spec.transport} upstream.`);
|
|
79
|
+
}
|
|
80
|
+
if (!spec.env || !(target.key in spec.env)) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
const previous = spec.env[target.key] ?? null;
|
|
84
|
+
const next = { ...spec.env };
|
|
85
|
+
delete next[target.key];
|
|
86
|
+
spec.env = Object.keys(next).length > 0 ? next : undefined;
|
|
87
|
+
return previous;
|
|
88
|
+
}
|
|
89
|
+
export function listAuthBindings(spec) {
|
|
90
|
+
if (spec.transport === "http") {
|
|
91
|
+
return Object.entries(spec.headers ?? {}).map(([key, value]) => ({
|
|
92
|
+
kind: "header",
|
|
93
|
+
key,
|
|
94
|
+
value
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
return Object.entries(spec.env ?? {}).map(([key, value]) => ({
|
|
98
|
+
kind: "env",
|
|
99
|
+
key,
|
|
100
|
+
value
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
export function maybePrefixBearer(target, value, raw = false) {
|
|
104
|
+
if (raw || target.kind !== "header" || target.key.toLowerCase() !== "authorization") {
|
|
105
|
+
return value;
|
|
106
|
+
}
|
|
107
|
+
if (/^\S+\s+\S+/.test(value)) {
|
|
108
|
+
return value;
|
|
109
|
+
}
|
|
110
|
+
return `Bearer ${value}`;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=server-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-auth.js","sourceRoot":"","sources":["../../src/core/server-auth.ts"],"names":[],"mappings":"AAeA,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB,EAAE,KAAa;IAC/D,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,YAAY,UAAU,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,MAAkB;IAC1E,OAAO,QAAQ,iBAAiB,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAwB,EAAE,MAAe,EAAE,GAAY;IACvF,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,eAAe,CAAC,MAAM,IAAI,eAAe,EAAE,aAAa,CAAC;SAC/D,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAwB,EAAE,MAAkB,EAAE,SAAiB;IAChG,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,YAAY,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,SAAS,YAAY,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;IACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAwB,EAAE,MAAkB;IAC9E,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,YAAY,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAClD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,YAAY,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC9C,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,IAAI,EAAE,QAAQ;YACd,GAAG;YACH,KAAK;SACN,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAE,IAAwB,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,EAAE,KAAK;QACX,GAAG;QACH,KAAK;KACN,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAkB,EAAE,KAAa,EAAE,GAAG,GAAG,KAAK;IAC9E,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,UAAU,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ClientId, McpxConfig, SyncResult } from "../types.js";
|
|
2
|
+
import { SecretsManager } from "./secrets.js";
|
|
3
|
+
export interface SyncSummary {
|
|
4
|
+
gatewayUrl: string;
|
|
5
|
+
results: SyncResult[];
|
|
6
|
+
hasErrors: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function getGatewayUrl(config: McpxConfig): string;
|
|
9
|
+
export declare function syncAllClients(config: McpxConfig, secrets: SecretsManager, targetClients?: ClientId[]): SyncSummary;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { getAdapters } from "../adapters/index.js";
|
|
2
|
+
import { loadManagedIndex, saveManagedIndex } from "./managed-index.js";
|
|
3
|
+
import { getManagedIndexPath } from "./paths.js";
|
|
4
|
+
import { ensureGatewayToken } from "./registry.js";
|
|
5
|
+
import { saveConfig } from "./config.js";
|
|
6
|
+
export function getGatewayUrl(config) {
|
|
7
|
+
return `http://127.0.0.1:${config.gateway.port}/mcp`;
|
|
8
|
+
}
|
|
9
|
+
function buildManagedEntries(config, gatewayUrl, localToken) {
|
|
10
|
+
const names = Object.keys(config.servers);
|
|
11
|
+
return names.map((name) => ({
|
|
12
|
+
name,
|
|
13
|
+
url: `${gatewayUrl}?upstream=${encodeURIComponent(name)}`,
|
|
14
|
+
headers: {
|
|
15
|
+
"x-mcpx-local-token": localToken
|
|
16
|
+
}
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
export function syncAllClients(config, secrets, targetClients) {
|
|
20
|
+
const adapters = getAdapters();
|
|
21
|
+
const managedIndexPath = getManagedIndexPath();
|
|
22
|
+
const managedIndex = loadManagedIndex(managedIndexPath);
|
|
23
|
+
const localToken = ensureGatewayToken(config, secrets);
|
|
24
|
+
const gatewayUrl = getGatewayUrl(config);
|
|
25
|
+
const managedEntries = buildManagedEntries(config, gatewayUrl, localToken);
|
|
26
|
+
const filteredAdapters = targetClients && targetClients.length > 0
|
|
27
|
+
? adapters.filter((adapter) => targetClients.includes(adapter.id))
|
|
28
|
+
: adapters;
|
|
29
|
+
const results = [];
|
|
30
|
+
for (const adapter of filteredAdapters) {
|
|
31
|
+
if (!adapter.supportsHttp()) {
|
|
32
|
+
results.push({
|
|
33
|
+
clientId: adapter.id,
|
|
34
|
+
status: "UNSUPPORTED_HTTP",
|
|
35
|
+
message: "Client adapter does not support MCP over HTTP."
|
|
36
|
+
});
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const result = adapter.syncGateway(config, {
|
|
40
|
+
managedEntries,
|
|
41
|
+
managedIndex,
|
|
42
|
+
managedIndexPath
|
|
43
|
+
});
|
|
44
|
+
results.push(result);
|
|
45
|
+
}
|
|
46
|
+
for (const result of results) {
|
|
47
|
+
config.clients[result.clientId] = {
|
|
48
|
+
status: result.status,
|
|
49
|
+
configPath: result.configPath,
|
|
50
|
+
message: result.message,
|
|
51
|
+
lastSyncAt: new Date().toISOString()
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
saveManagedIndex(managedIndex, managedIndexPath);
|
|
55
|
+
saveConfig(config);
|
|
56
|
+
const hasErrors = results.some((result) => result.status === "ERROR");
|
|
57
|
+
return {
|
|
58
|
+
gatewayUrl,
|
|
59
|
+
results,
|
|
60
|
+
hasErrors
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import http from "node:http";
|
|
2
|
+
import { SecretsManager } from "../core/secrets.js";
|
|
3
|
+
interface GatewayServerOptions {
|
|
4
|
+
port: number;
|
|
5
|
+
expectedToken: string;
|
|
6
|
+
secrets: SecretsManager;
|
|
7
|
+
}
|
|
8
|
+
export declare function createGatewayServer(options: GatewayServerOptions): http.Server;
|
|
9
|
+
export {};
|