@apicity/mcp-server 0.2.9 → 0.2.10
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.
|
@@ -4,6 +4,7 @@ export interface OnePasswordEnvOptions {
|
|
|
4
4
|
enabledProviders?: string[];
|
|
5
5
|
env?: NodeJS.ProcessEnv;
|
|
6
6
|
readSecret?: OpRead;
|
|
7
|
+
concurrency?: number;
|
|
7
8
|
}
|
|
8
9
|
export declare function fillOnePasswordEnv(opts: OnePasswordEnvOptions): Promise<void>;
|
|
9
10
|
export declare function getProviderEnvVars(enabledProviders?: string[]): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one-password.d.ts","sourceRoot":"","sources":["../../src/one-password.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"one-password.d.ts","sourceRoot":"","sources":["../../src/one-password.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED,wBAAgB,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAexE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxE"}
|
package/dist/src/one-password.js
CHANGED
|
@@ -2,25 +2,34 @@ import { execFile } from "node:child_process";
|
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { PROVIDERS } from "./providers.js";
|
|
4
4
|
const execFileAsync = promisify(execFile);
|
|
5
|
+
const DEFAULT_OP_READ_CONCURRENCY = 6;
|
|
5
6
|
export async function fillOnePasswordEnv(opts) {
|
|
6
7
|
const env = opts.env ?? process.env;
|
|
7
8
|
const readSecret = opts.readSecret ?? readOnePasswordSecret;
|
|
8
9
|
const providerEnvVars = getProviderEnvVars(opts.enabledProviders);
|
|
9
10
|
const required = opts.enabledProviders !== undefined;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
const missingEnvVars = providerEnvVars.filter((envVar) => !hasResolvedEnvValue(env[envVar]));
|
|
12
|
+
const concurrency = normalizeConcurrency(opts.concurrency ?? DEFAULT_OP_READ_CONCURRENCY, missingEnvVars.length);
|
|
13
|
+
let next = 0;
|
|
14
|
+
let firstError;
|
|
15
|
+
async function worker() {
|
|
16
|
+
while (next < missingEnvVars.length) {
|
|
17
|
+
const envVar = missingEnvVars[next++];
|
|
18
|
+
try {
|
|
19
|
+
env[envVar] = await readSecret(onePasswordRef(opts.vault, envVar));
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
const wrapped = wrapReadError(err, opts.vault, envVar, required);
|
|
23
|
+
if (wrapped && !firstError)
|
|
24
|
+
firstError = wrapped;
|
|
25
|
+
}
|
|
22
26
|
}
|
|
23
27
|
}
|
|
28
|
+
await Promise.all(Array.from({ length: concurrency }, async () => {
|
|
29
|
+
await worker();
|
|
30
|
+
}));
|
|
31
|
+
if (firstError)
|
|
32
|
+
throw firstError;
|
|
24
33
|
}
|
|
25
34
|
export function getProviderEnvVars(enabledProviders) {
|
|
26
35
|
const envVars = [];
|
|
@@ -51,6 +60,20 @@ export async function readOnePasswordSecret(ref) {
|
|
|
51
60
|
throw err;
|
|
52
61
|
}
|
|
53
62
|
}
|
|
63
|
+
function normalizeConcurrency(concurrency, jobCount) {
|
|
64
|
+
if (jobCount === 0)
|
|
65
|
+
return 0;
|
|
66
|
+
if (!Number.isFinite(concurrency) || concurrency < 1)
|
|
67
|
+
return 1;
|
|
68
|
+
return Math.min(Math.floor(concurrency), jobCount);
|
|
69
|
+
}
|
|
70
|
+
function wrapReadError(err, vault, envVar, required) {
|
|
71
|
+
if (!required && isMissingOnePasswordItem(err))
|
|
72
|
+
return undefined;
|
|
73
|
+
const ref = onePasswordRef(vault, envVar);
|
|
74
|
+
return new Error(`Missing 1Password secret for ${envVar}. Expected ${ref}. ` +
|
|
75
|
+
`${errorMessage(err)}`);
|
|
76
|
+
}
|
|
54
77
|
function hasResolvedEnvValue(value) {
|
|
55
78
|
return value !== undefined && value !== "" && !value.startsWith("op://");
|
|
56
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one-password.js","sourceRoot":"","sources":["../../src/one-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"one-password.js","sourceRoot":"","sources":["../../src/one-password.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apicity/mcp-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"description": "Optional MCP (Model Context Protocol) server that exposes every @apicity provider endpoint as a tool.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -47,22 +47,22 @@
|
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
50
|
-
"@apicity/alibaba": "0.2.
|
|
51
|
-
"@apicity/
|
|
52
|
-
"@apicity/fal": "0.2.
|
|
53
|
-
"@apicity/
|
|
54
|
-
"@apicity/
|
|
55
|
-
"@apicity/
|
|
56
|
-
"@apicity/google": "0.2.
|
|
57
|
-
"@apicity/
|
|
58
|
-
"@apicity/
|
|
59
|
-
"@apicity/
|
|
60
|
-
"@apicity/
|
|
61
|
-
"@apicity/
|
|
62
|
-
"@apicity/
|
|
63
|
-
"@apicity/
|
|
64
|
-
"@apicity/
|
|
65
|
-
"@apicity/
|
|
50
|
+
"@apicity/alibaba": "0.2.10",
|
|
51
|
+
"@apicity/anthropic": "0.2.10",
|
|
52
|
+
"@apicity/fal": "0.2.10",
|
|
53
|
+
"@apicity/fireworks": "0.2.10",
|
|
54
|
+
"@apicity/free-media-upload": "0.2.10",
|
|
55
|
+
"@apicity/elevenlabs": "0.2.10",
|
|
56
|
+
"@apicity/google": "0.2.10",
|
|
57
|
+
"@apicity/cost": "0.2.10",
|
|
58
|
+
"@apicity/kimicoding": "0.2.10",
|
|
59
|
+
"@apicity/meta": "0.2.10",
|
|
60
|
+
"@apicity/openai": "0.2.10",
|
|
61
|
+
"@apicity/youtube": "0.2.10",
|
|
62
|
+
"@apicity/x": "0.2.10",
|
|
63
|
+
"@apicity/kie": "0.2.10",
|
|
64
|
+
"@apicity/xai": "0.2.10",
|
|
65
|
+
"@apicity/telegram": "0.2.10"
|
|
66
66
|
},
|
|
67
67
|
"homepage": "https://github.com/justintanner/apicity#readme",
|
|
68
68
|
"bugs": {
|