@markusvankempen/quantum-openqasm-mcp 1.7.0 → 1.7.2
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/README.md +52 -11
- package/dist/cli.js +16 -2
- package/dist/cli.js.map +1 -1
- package/dist/credentials.d.ts +14 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +133 -0
- package/dist/credentials.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +15 -10
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-config.d.ts +20 -0
- package/dist/mcp-config.d.ts.map +1 -0
- package/dist/mcp-config.js +110 -0
- package/dist/mcp-config.js.map +1 -0
- package/dist/postinstall.d.ts +2 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +17 -0
- package/dist/postinstall.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +20 -2
- package/dist/server.js.map +1 -1
- package/dist/setup.d.ts +3 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +108 -0
- package/dist/setup.js.map +1 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@ ibm quantum, ibm fez, cursor, vscode, claude desktop, bob, antigravity, ai assis
|
|
|
7
7
|
qiskit, quantum hardware, sampler v2, npx, stdio
|
|
8
8
|
-->
|
|
9
9
|
|
|
10
|
+
[](https://registry.modelcontextprotocol.io/servers/io.github.markusvankempen/quantum-openqasm-mcp)
|
|
10
11
|
[](https://www.npmjs.com/package/@markusvankempen/quantum-openqasm-mcp)
|
|
11
12
|
[](https://www.npmjs.com/package/@markusvankempen/quantum-openqasm-mcp)
|
|
12
13
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
@@ -62,6 +63,27 @@ npx @markusvankempen/quantum-openqasm-mcp
|
|
|
62
63
|
|
|
63
64
|
Requires **Node.js 18 or newer**.
|
|
64
65
|
|
|
66
|
+
### Interactive setup
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx @markusvankempen/quantum-openqasm-mcp --setup
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Wizard options:
|
|
73
|
+
- **(a)** Write VS Code `mcp.json` with `${input:...}` prompts (recommended — secure)
|
|
74
|
+
- **(b)** Write `mcp.json` with env vars + `.env` file
|
|
75
|
+
- **(c)** `.env` only (for Cursor / npx)
|
|
76
|
+
|
|
77
|
+
### Quick credential check
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npx @markusvankempen/quantum-openqasm-mcp --check
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Masks values, tests IBM IAM, exits 0 when ready.
|
|
84
|
+
|
|
85
|
+
The server **fails fast at startup** if `IBM_API_KEY` or `IBM_SERVICE_CRN` are missing (stderr shows setup guidance).
|
|
86
|
+
|
|
65
87
|
---
|
|
66
88
|
|
|
67
89
|
## Credentials
|
|
@@ -116,7 +138,7 @@ With a global install:
|
|
|
116
138
|
}
|
|
117
139
|
```
|
|
118
140
|
|
|
119
|
-
### VS Code native MCP
|
|
141
|
+
### VS Code native MCP (recommended — prompts on first use)
|
|
120
142
|
|
|
121
143
|
```json
|
|
122
144
|
{
|
|
@@ -126,14 +148,31 @@ With a global install:
|
|
|
126
148
|
"command": "npx",
|
|
127
149
|
"args": ["-y", "@markusvankempen/quantum-openqasm-mcp"],
|
|
128
150
|
"env": {
|
|
129
|
-
"IBM_API_KEY": "
|
|
130
|
-
"IBM_SERVICE_CRN": "
|
|
151
|
+
"IBM_API_KEY": "${input:ibmApiKey}",
|
|
152
|
+
"IBM_SERVICE_CRN": "${input:ibmServiceCrn}",
|
|
153
|
+
"IBM_QUANTUM_ENDPOINT": "https://us-east.quantum-computing.cloud.ibm.com",
|
|
154
|
+
"IBM_QUANTUM_BACKEND": "ibm_fez"
|
|
131
155
|
}
|
|
132
156
|
}
|
|
133
|
-
}
|
|
157
|
+
},
|
|
158
|
+
"inputs": [
|
|
159
|
+
{
|
|
160
|
+
"id": "ibmApiKey",
|
|
161
|
+
"type": "promptString",
|
|
162
|
+
"description": "IBM Cloud API Key (quantum.ibm.com → Account → API keys)",
|
|
163
|
+
"password": true
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "ibmServiceCrn",
|
|
167
|
+
"type": "promptString",
|
|
168
|
+
"description": "IBM Quantum Instance CRN (crn:v1:bluemix:public:quantum-computing:...)"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
134
171
|
}
|
|
135
172
|
```
|
|
136
173
|
|
|
174
|
+
VS Code stores prompted values securely — no secrets in the config file.
|
|
175
|
+
|
|
137
176
|
### Bob & Antigravity
|
|
138
177
|
|
|
139
178
|
Use the same stdio block as Cursor. The [Quantum OpenQASM Assistant](https://github.com/markusvankempen/quantum-openqasm-assistant) extension can register this server in all supported IDEs with **Quantum: Setup MCP**.
|
|
@@ -142,10 +181,11 @@ More detail: [Local MCP setup guide](https://github.com/markusvankempen/quantum-
|
|
|
142
181
|
|
|
143
182
|
---
|
|
144
183
|
|
|
145
|
-
## MCP tools (
|
|
184
|
+
## MCP tools (10)
|
|
146
185
|
|
|
147
186
|
| Tool | Description |
|
|
148
187
|
|------|-------------|
|
|
188
|
+
| `check_credentials` | Masked env var status + IBM IAM connectivity test |
|
|
149
189
|
| `list_backends` | List IBM Quantum backends — qubits, status, queue length |
|
|
150
190
|
| `get_backend` | Details for one backend |
|
|
151
191
|
| `get_backend_configuration` | Native gates and coupling map (ISA prep) |
|
|
@@ -158,6 +198,7 @@ More detail: [Local MCP setup guide](https://github.com/markusvankempen/quantum-
|
|
|
158
198
|
|
|
159
199
|
### Example AI prompts
|
|
160
200
|
|
|
201
|
+
- *"Call check_credentials first to verify IBM Quantum setup."*
|
|
161
202
|
- *"Use quantum-openqasm-mcp list_backends and pick the shortest queue."*
|
|
162
203
|
- *"Submit this Bell-state OpenQASM circuit on ibm_fez with submit_qasm_job."*
|
|
163
204
|
- *"Poll get_job_status for job d8jftsk2upec739ngh4g until it completes, then show the histogram."*
|
|
@@ -190,18 +231,18 @@ The server listens on **stdio** — suitable for MCP hosts that spawn child proc
|
|
|
190
231
|
|
|
191
232
|
---
|
|
192
233
|
|
|
193
|
-
## Publish
|
|
194
|
-
|
|
195
|
-
Maintainers:
|
|
234
|
+
## Publish (maintainers)
|
|
196
235
|
|
|
197
236
|
```bash
|
|
198
237
|
cd packages/quantum-openqasm-mcp
|
|
199
238
|
npm install
|
|
200
|
-
npm run pack:check
|
|
201
|
-
npm
|
|
202
|
-
npm publish
|
|
239
|
+
npm run pack:check # dry-run npm tarball
|
|
240
|
+
npm publish --access public # npm first
|
|
241
|
+
npm run publish:mcp # MCP Registry (requires: brew install mcp-publisher && mcp-publisher login github)
|
|
203
242
|
```
|
|
204
243
|
|
|
244
|
+
Bump `version` in `package.json` and `server.json` together before each release.
|
|
245
|
+
|
|
205
246
|
---
|
|
206
247
|
|
|
207
248
|
## Related projects
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { formatCheckOutput } from './credentials.js';
|
|
2
3
|
import { loadEnvFiles } from './env.js';
|
|
4
|
+
import { runSetupWizard } from './setup.js';
|
|
3
5
|
import { startQuantumMcpServer } from './server.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
async function main() {
|
|
7
|
+
loadEnvFiles();
|
|
8
|
+
if (process.argv.includes('--setup')) {
|
|
9
|
+
await runSetupWizard();
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (process.argv.includes('--check')) {
|
|
13
|
+
const { text, exitCode } = await formatCheckOutput();
|
|
14
|
+
console.log(text);
|
|
15
|
+
process.exit(exitCode);
|
|
16
|
+
}
|
|
17
|
+
await startQuantumMcpServer();
|
|
18
|
+
}
|
|
19
|
+
main().catch((err) => {
|
|
6
20
|
console.error('quantum-openqasm-mcp failed to start:', err);
|
|
7
21
|
process.exit(1);
|
|
8
22
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,KAAK,UAAU,IAAI;IACf,YAAY,EAAE,CAAC;IAEf,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,cAAc,EAAE,CAAC;QACvB,OAAO;IACX,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,qBAAqB,EAAE,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { QuantumEnv } from './env.js';
|
|
2
|
+
export declare function getMissingRequiredVars(): string[];
|
|
3
|
+
export declare function maskSecret(value: string): string;
|
|
4
|
+
export declare function formatSetupBanner(missing: string[]): string;
|
|
5
|
+
export declare function assertCredentialsAtStartup(): void;
|
|
6
|
+
export declare function testIamToken(apiKey: string): Promise<boolean>;
|
|
7
|
+
export declare function formatCredentialToolError(missing: string[]): string;
|
|
8
|
+
export declare function isCredentialError(error: unknown): boolean;
|
|
9
|
+
export declare function formatCheckOutput(): Promise<{
|
|
10
|
+
text: string;
|
|
11
|
+
exitCode: number;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function formatCredentialStatus(missing: string[], env: QuantumEnv | null, iamOk: boolean): string;
|
|
14
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CASjD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAoB3D;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBnE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CASnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKzD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BrF;AAED,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,UAAU,GAAG,IAAI,EACtB,KAAK,EAAE,OAAO,GACf,MAAM,CA0BR"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
export function getMissingRequiredVars() {
|
|
3
|
+
const missing = [];
|
|
4
|
+
if (!process.env.IBM_API_KEY) {
|
|
5
|
+
missing.push('IBM_API_KEY');
|
|
6
|
+
}
|
|
7
|
+
if (!process.env.IBM_SERVICE_CRN) {
|
|
8
|
+
missing.push('IBM_SERVICE_CRN');
|
|
9
|
+
}
|
|
10
|
+
return missing;
|
|
11
|
+
}
|
|
12
|
+
export function maskSecret(value) {
|
|
13
|
+
if (value.length <= 8) {
|
|
14
|
+
return '***';
|
|
15
|
+
}
|
|
16
|
+
return `${value.slice(0, 4)}...${value.slice(-4)}`;
|
|
17
|
+
}
|
|
18
|
+
export function formatSetupBanner(missing) {
|
|
19
|
+
return [
|
|
20
|
+
'╔══════════════════════════════════════════════════════════╗',
|
|
21
|
+
'║ quantum-openqasm-mcp — SETUP REQUIRED ║',
|
|
22
|
+
'╠══════════════════════════════════════════════════════════╣',
|
|
23
|
+
`║ Missing environment variables: ${missing.join(', ')}`,
|
|
24
|
+
'║',
|
|
25
|
+
'║ Fix one of these:',
|
|
26
|
+
'║',
|
|
27
|
+
'║ 1. Set in mcp.json "env" block:',
|
|
28
|
+
'║ "IBM_API_KEY": "your_key"',
|
|
29
|
+
'║ "IBM_SERVICE_CRN": "crn:v1:..."',
|
|
30
|
+
'║',
|
|
31
|
+
'║ 2. Create ~/.quantum-openqasm-mcp/.env with those keys',
|
|
32
|
+
'║',
|
|
33
|
+
'║ 3. Run: npx @markusvankempen/quantum-openqasm-mcp --setup',
|
|
34
|
+
'║',
|
|
35
|
+
'║ Get keys: https://quantum.ibm.com → Account → API keys',
|
|
36
|
+
'╚══════════════════════════════════════════════════════════╝',
|
|
37
|
+
].join('\n');
|
|
38
|
+
}
|
|
39
|
+
export function assertCredentialsAtStartup() {
|
|
40
|
+
const missing = getMissingRequiredVars();
|
|
41
|
+
if (missing.length > 0) {
|
|
42
|
+
console.error(formatSetupBanner(missing));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export async function testIamToken(apiKey) {
|
|
47
|
+
try {
|
|
48
|
+
await axios.post('https://iam.cloud.ibm.com/identity/token', new URLSearchParams({
|
|
49
|
+
grant_type: 'urn:ibm:params:oauth:grant-type:apikey',
|
|
50
|
+
apikey: apiKey,
|
|
51
|
+
}), {
|
|
52
|
+
headers: {
|
|
53
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
54
|
+
Accept: 'application/json',
|
|
55
|
+
},
|
|
56
|
+
timeout: 15000,
|
|
57
|
+
});
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export function formatCredentialToolError(missing) {
|
|
65
|
+
const vars = missing.join(', ');
|
|
66
|
+
return [
|
|
67
|
+
`Error: ${vars} missing.`,
|
|
68
|
+
'Run: quantum-openqasm-mcp --setup',
|
|
69
|
+
'Or add credentials to mcp.json env block.',
|
|
70
|
+
'Or create ~/.quantum-openqasm-mcp/.env',
|
|
71
|
+
'Get keys: https://quantum.ibm.com → Account → API keys',
|
|
72
|
+
].join('\n');
|
|
73
|
+
}
|
|
74
|
+
export function isCredentialError(error) {
|
|
75
|
+
if (!(error instanceof Error)) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return /IBM_API_KEY|IBM_SERVICE_CRN|missing\. Set in mcp\.json/.test(error.message);
|
|
79
|
+
}
|
|
80
|
+
export async function formatCheckOutput() {
|
|
81
|
+
const missing = getMissingRequiredVars();
|
|
82
|
+
const env = missing.length === 0
|
|
83
|
+
? {
|
|
84
|
+
apiKey: process.env.IBM_API_KEY,
|
|
85
|
+
crn: process.env.IBM_SERVICE_CRN,
|
|
86
|
+
endpoint: process.env.IBM_QUANTUM_ENDPOINT || '(default us-east)',
|
|
87
|
+
backend: process.env.IBM_QUANTUM_BACKEND || 'ibm_fez',
|
|
88
|
+
}
|
|
89
|
+
: null;
|
|
90
|
+
const iamOk = env ? await testIamToken(env.apiKey) : false;
|
|
91
|
+
const ok = (label, value, pass) => `${label.padEnd(22)} ${value.padEnd(20)} ${pass ? '✅' : '❌'}`;
|
|
92
|
+
const lines = [
|
|
93
|
+
ok('IBM_API_KEY:', process.env.IBM_API_KEY ? maskSecret(process.env.IBM_API_KEY) : '(not set)', !missing.includes('IBM_API_KEY')),
|
|
94
|
+
ok('IBM_SERVICE_CRN:', process.env.IBM_SERVICE_CRN ? maskSecret(process.env.IBM_SERVICE_CRN) : '(not set)', !missing.includes('IBM_SERVICE_CRN')),
|
|
95
|
+
ok('IBM_QUANTUM_ENDPOINT:', process.env.IBM_QUANTUM_ENDPOINT || 'https://us-east.quantum-computing.cloud.ibm.com', true),
|
|
96
|
+
ok('IBM IAM token:', iamOk ? 'OK' : (env ? 'FAILED' : 'skipped'), env ? iamOk : false),
|
|
97
|
+
];
|
|
98
|
+
const ready = missing.length === 0 && iamOk;
|
|
99
|
+
if (ready) {
|
|
100
|
+
lines.push('', 'quantum-openqasm-mcp is ready.');
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
lines.push('', 'Not ready. Run: quantum-openqasm-mcp --setup');
|
|
104
|
+
}
|
|
105
|
+
return { text: lines.join('\n'), exitCode: ready ? 0 : 1 };
|
|
106
|
+
}
|
|
107
|
+
export function formatCredentialStatus(missing, env, iamOk) {
|
|
108
|
+
const lines = ['IBM Quantum credential check', ''];
|
|
109
|
+
if (missing.length > 0) {
|
|
110
|
+
lines.push(`Missing required: ${missing.join(', ')}`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
lines.push('Required variables: OK');
|
|
114
|
+
}
|
|
115
|
+
lines.push('');
|
|
116
|
+
lines.push('Configured:');
|
|
117
|
+
lines.push(` IBM_API_KEY: ${process.env.IBM_API_KEY ? maskSecret(process.env.IBM_API_KEY) : '(not set)'}`);
|
|
118
|
+
lines.push(` IBM_SERVICE_CRN: ${process.env.IBM_SERVICE_CRN ? maskSecret(process.env.IBM_SERVICE_CRN) : '(not set)'}`);
|
|
119
|
+
lines.push(` IBM_QUANTUM_ENDPOINT: ${process.env.IBM_QUANTUM_ENDPOINT || '(default us-east)'}`);
|
|
120
|
+
lines.push(` IBM_QUANTUM_BACKEND: ${process.env.IBM_QUANTUM_BACKEND || 'ibm_fez (default)'}`);
|
|
121
|
+
lines.push('');
|
|
122
|
+
if (!env) {
|
|
123
|
+
lines.push('IBM IAM token test: skipped (credentials incomplete)');
|
|
124
|
+
}
|
|
125
|
+
else if (iamOk) {
|
|
126
|
+
lines.push('IBM IAM token test: OK');
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
lines.push('IBM IAM token test: FAILED (check IBM_API_KEY)');
|
|
130
|
+
}
|
|
131
|
+
return lines.join('\n');
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
CHANGED
|
@@ -6,5 +6,7 @@ export interface QuantumEnv {
|
|
|
6
6
|
}
|
|
7
7
|
/** Load .env from cwd, then ~/.quantum-openqasm-mcp/.env (legacy: ~/.quantum-mcp/.env). */
|
|
8
8
|
export declare function loadEnvFiles(): void;
|
|
9
|
+
/** Returns env when required vars are set; otherwise null (no throw). */
|
|
10
|
+
export declare function safeRequireEnv(): QuantumEnv | null;
|
|
9
11
|
export declare function requireEnv(): QuantumEnv;
|
|
10
12
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAID,2FAA2F;AAC3F,wBAAgB,YAAY,IAAI,IAAI,CAWnC;AAED,yEAAyE;AACzE,wBAAgB,cAAc,IAAI,UAAU,GAAG,IAAI,CAUlD;AAED,wBAAgB,UAAU,IAAI,UAAU,CASvC"}
|
package/dist/env.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { config as loadDotenv } from 'dotenv';
|
|
5
|
+
import { getMissingRequiredVars } from './credentials.js';
|
|
5
6
|
const DEFAULT_ENDPOINT = 'https://us-east.quantum-computing.cloud.ibm.com';
|
|
6
7
|
/** Load .env from cwd, then ~/.quantum-openqasm-mcp/.env (legacy: ~/.quantum-mcp/.env). */
|
|
7
8
|
export function loadEnvFiles() {
|
|
@@ -16,20 +17,24 @@ export function loadEnvFiles() {
|
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
const crn = process.env.IBM_SERVICE_CRN;
|
|
25
|
-
if (!crn) {
|
|
26
|
-
throw new Error('IBM_SERVICE_CRN missing. Set it in the environment or in .env / ~/.quantum-openqasm-mcp/.env');
|
|
20
|
+
/** Returns env when required vars are set; otherwise null (no throw). */
|
|
21
|
+
export function safeRequireEnv() {
|
|
22
|
+
if (getMissingRequiredVars().length > 0) {
|
|
23
|
+
return null;
|
|
27
24
|
}
|
|
28
25
|
return {
|
|
29
|
-
apiKey,
|
|
30
|
-
crn,
|
|
26
|
+
apiKey: process.env.IBM_API_KEY,
|
|
27
|
+
crn: process.env.IBM_SERVICE_CRN,
|
|
31
28
|
endpoint: (process.env.IBM_QUANTUM_ENDPOINT || DEFAULT_ENDPOINT).replace(/\/$/, ''),
|
|
32
29
|
defaultBackend: process.env.IBM_QUANTUM_BACKEND || 'ibm_fez',
|
|
33
30
|
};
|
|
34
31
|
}
|
|
32
|
+
export function requireEnv() {
|
|
33
|
+
const env = safeRequireEnv();
|
|
34
|
+
if (!env) {
|
|
35
|
+
const missing = getMissingRequiredVars().join(', ');
|
|
36
|
+
throw new Error(`${missing} missing. Set in mcp.json env, ~/.quantum-openqasm-mcp/.env, or run --setup`);
|
|
37
|
+
}
|
|
38
|
+
return env;
|
|
39
|
+
}
|
|
35
40
|
//# sourceMappingURL=env.js.map
|
package/dist/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAS1D,MAAM,gBAAgB,GAAG,iDAAiD,CAAC;AAE3E,2FAA2F;AAC3F,MAAM,UAAU,YAAY;IACxB,MAAM,UAAU,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,uBAAuB,EAAE,MAAM,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC;KAClD,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc;IAC1B,IAAI,sBAAsB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QACH,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAY;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,eAAgB;QACjC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACnF,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS;KAC/D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,KAAK,CACX,GAAG,OAAO,6EAA6E,CAC1F,CAAC;IACN,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export { loadEnvFiles, requireEnv, type QuantumEnv } from './env.js';
|
|
1
|
+
export { loadEnvFiles, requireEnv, safeRequireEnv, type QuantumEnv } from './env.js';
|
|
2
|
+
export { assertCredentialsAtStartup, formatCheckOutput, formatCredentialStatus, formatCredentialToolError, getMissingRequiredVars, testIamToken, } from './credentials.js';
|
|
3
|
+
export { buildVsCodeInputsConfig, getVsCodeUserMcpPath, isGlobalPackageInstalled, mergeVsCodeMcpConfig, } from './mcp-config.js';
|
|
4
|
+
export { runSetupWizard } from './setup.js';
|
|
2
5
|
export { createQuantumMcpServer, startQuantumMcpServer, SERVER_NAME, SERVER_VERSION, } from './server.js';
|
|
3
6
|
export { fetchBackendList, formatBackendList, formatBackendLine, parseBackendListResponse, type NormalizedBackend, } from './backend-utils.js';
|
|
4
7
|
export { parseMeasurementResults, parseResultPayload, formatCountsHistogram, type MeasurementResult, } from './result-utils.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,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EACH,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,YAAY,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,cAAc,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,iBAAiB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,iBAAiB,GACzB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export { loadEnvFiles, requireEnv } from './env.js';
|
|
1
|
+
export { loadEnvFiles, requireEnv, safeRequireEnv } from './env.js';
|
|
2
|
+
export { assertCredentialsAtStartup, formatCheckOutput, formatCredentialStatus, formatCredentialToolError, getMissingRequiredVars, testIamToken, } from './credentials.js';
|
|
3
|
+
export { buildVsCodeInputsConfig, getVsCodeUserMcpPath, isGlobalPackageInstalled, mergeVsCodeMcpConfig, } from './mcp-config.js';
|
|
4
|
+
export { runSetupWizard } from './setup.js';
|
|
2
5
|
export { createQuantumMcpServer, startQuantumMcpServer, SERVER_NAME, SERVER_VERSION, } from './server.js';
|
|
3
6
|
export { fetchBackendList, formatBackendList, formatBackendLine, parseBackendListResponse, } from './backend-utils.js';
|
|
4
7
|
export { parseMeasurementResults, parseResultPayload, formatCountsHistogram, } from './result-utils.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAmB,MAAM,UAAU,CAAC;AACrF,OAAO,EACH,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,YAAY,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,cAAc,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GAE3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,GAExB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const NPM_PACKAGE = "@markusvankempen/quantum-openqasm-mcp";
|
|
2
|
+
export declare const SERVER_NAME = "quantum-openqasm-mcp";
|
|
3
|
+
export declare const DEFAULT_ENDPOINT = "https://us-east.quantum-computing.cloud.ibm.com";
|
|
4
|
+
export declare const DEFAULT_BACKEND = "ibm_fez";
|
|
5
|
+
export type McpOutputMode = 'inputs' | 'hardcoded' | 'env-only';
|
|
6
|
+
export declare function getVsCodeUserMcpPath(): string;
|
|
7
|
+
export declare function isGlobalPackageInstalled(): boolean;
|
|
8
|
+
export declare function buildNpmCommand(useGlobal: boolean): {
|
|
9
|
+
command: string;
|
|
10
|
+
args: string[];
|
|
11
|
+
};
|
|
12
|
+
export declare function buildVsCodeInputsConfig(endpoint?: string, backend?: string, useGlobal?: boolean): Record<string, unknown>;
|
|
13
|
+
export declare function buildVsCodeHardcodedConfig(creds: {
|
|
14
|
+
apiKey: string;
|
|
15
|
+
serviceCrn: string;
|
|
16
|
+
endpoint: string;
|
|
17
|
+
backend: string;
|
|
18
|
+
}, useGlobal?: boolean): Record<string, unknown>;
|
|
19
|
+
export declare function mergeVsCodeMcpConfig(filePath: string, patch: Record<string, unknown>): void;
|
|
20
|
+
//# sourceMappingURL=mcp-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,0CAA0C,CAAC;AACnE,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAClD,eAAO,MAAM,gBAAgB,oDAAoD,CAAC;AAClF,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEhE,wBAAgB,oBAAoB,IAAI,MAAM,CAe7C;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAWlD;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAKvF;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,SAAmB,EAC3B,OAAO,SAAkB,EACzB,SAAS,UAA6B,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzB;AAED,wBAAgB,0BAA0B,CACtC,KAAK,EAAE;IACH,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB,EACD,SAAS,UAA6B,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB;AAED,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAwBN"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
export const NPM_PACKAGE = '@markusvankempen/quantum-openqasm-mcp';
|
|
6
|
+
export const SERVER_NAME = 'quantum-openqasm-mcp';
|
|
7
|
+
export const DEFAULT_ENDPOINT = 'https://us-east.quantum-computing.cloud.ibm.com';
|
|
8
|
+
export const DEFAULT_BACKEND = 'ibm_fez';
|
|
9
|
+
export function getVsCodeUserMcpPath() {
|
|
10
|
+
const home = os.homedir();
|
|
11
|
+
switch (process.platform) {
|
|
12
|
+
case 'darwin':
|
|
13
|
+
return path.join(home, 'Library', 'Application Support', 'Code', 'User', 'mcp.json');
|
|
14
|
+
case 'win32':
|
|
15
|
+
return path.join(process.env.APPDATA || path.join(home, 'AppData', 'Roaming'), 'Code', 'User', 'mcp.json');
|
|
16
|
+
default:
|
|
17
|
+
return path.join(home, '.config', 'Code', 'User', 'mcp.json');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function isGlobalPackageInstalled() {
|
|
21
|
+
try {
|
|
22
|
+
const prefix = execSync('npm prefix -g', { encoding: 'utf8' }).trim();
|
|
23
|
+
const candidates = [
|
|
24
|
+
path.join(prefix, 'lib', 'node_modules', NPM_PACKAGE, 'package.json'),
|
|
25
|
+
path.join(prefix, 'node_modules', NPM_PACKAGE, 'package.json'),
|
|
26
|
+
];
|
|
27
|
+
return candidates.some((p) => fs.existsSync(p));
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function buildNpmCommand(useGlobal) {
|
|
34
|
+
if (useGlobal && isGlobalPackageInstalled()) {
|
|
35
|
+
return { command: 'quantum-openqasm-mcp', args: [] };
|
|
36
|
+
}
|
|
37
|
+
return { command: 'npx', args: ['-y', NPM_PACKAGE] };
|
|
38
|
+
}
|
|
39
|
+
export function buildVsCodeInputsConfig(endpoint = DEFAULT_ENDPOINT, backend = DEFAULT_BACKEND, useGlobal = isGlobalPackageInstalled()) {
|
|
40
|
+
const { command, args } = buildNpmCommand(useGlobal);
|
|
41
|
+
return {
|
|
42
|
+
servers: {
|
|
43
|
+
[SERVER_NAME]: {
|
|
44
|
+
type: 'stdio',
|
|
45
|
+
command,
|
|
46
|
+
args,
|
|
47
|
+
env: {
|
|
48
|
+
IBM_API_KEY: '${input:ibmApiKey}',
|
|
49
|
+
IBM_SERVICE_CRN: '${input:ibmServiceCrn}',
|
|
50
|
+
IBM_QUANTUM_ENDPOINT: endpoint,
|
|
51
|
+
IBM_QUANTUM_BACKEND: backend,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
inputs: [
|
|
56
|
+
{
|
|
57
|
+
id: 'ibmApiKey',
|
|
58
|
+
type: 'promptString',
|
|
59
|
+
description: 'IBM Cloud API Key (quantum.ibm.com → Account → API keys)',
|
|
60
|
+
password: true,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'ibmServiceCrn',
|
|
64
|
+
type: 'promptString',
|
|
65
|
+
description: 'IBM Quantum Instance CRN (crn:v1:bluemix:public:quantum-computing:...)',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function buildVsCodeHardcodedConfig(creds, useGlobal = isGlobalPackageInstalled()) {
|
|
71
|
+
const { command, args } = buildNpmCommand(useGlobal);
|
|
72
|
+
return {
|
|
73
|
+
servers: {
|
|
74
|
+
[SERVER_NAME]: {
|
|
75
|
+
type: 'stdio',
|
|
76
|
+
command,
|
|
77
|
+
args,
|
|
78
|
+
env: {
|
|
79
|
+
IBM_API_KEY: creds.apiKey,
|
|
80
|
+
IBM_SERVICE_CRN: creds.serviceCrn,
|
|
81
|
+
IBM_QUANTUM_ENDPOINT: creds.endpoint,
|
|
82
|
+
IBM_QUANTUM_BACKEND: creds.backend,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function mergeVsCodeMcpConfig(filePath, patch) {
|
|
89
|
+
let config = {};
|
|
90
|
+
if (fs.existsSync(filePath)) {
|
|
91
|
+
config = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
92
|
+
}
|
|
93
|
+
const servers = config.servers ?? {};
|
|
94
|
+
const patchServers = patch.servers ?? {};
|
|
95
|
+
config.servers = { ...servers, ...patchServers };
|
|
96
|
+
if (patch.inputs) {
|
|
97
|
+
const existing = config.inputs ?? [];
|
|
98
|
+
const patchInputs = patch.inputs;
|
|
99
|
+
const byId = new Map();
|
|
100
|
+
for (const item of [...existing, ...patchInputs]) {
|
|
101
|
+
if (typeof item === 'object' && item !== null && 'id' in item && typeof item.id === 'string') {
|
|
102
|
+
byId.set(item.id, item);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
config.inputs = [...byId.values()];
|
|
106
|
+
}
|
|
107
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
108
|
+
fs.writeFileSync(filePath, JSON.stringify(config, null, 2) + '\n', 'utf8');
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=mcp-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
const dir = path.dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
const pkg = JSON.parse(readFileSync(path.join(dir, '..', 'package.json'), 'utf8'));
|
|
6
|
+
console.log(`
|
|
7
|
+
✅ ${pkg.name}@${pkg.version} installed
|
|
8
|
+
|
|
9
|
+
Next step — configure your IBM Quantum credentials:
|
|
10
|
+
|
|
11
|
+
quantum-openqasm-mcp --setup
|
|
12
|
+
quantum-openqasm-mcp --check
|
|
13
|
+
|
|
14
|
+
Or set IBM_API_KEY + IBM_SERVICE_CRN in mcp.json env block.
|
|
15
|
+
Get keys: https://quantum.ibm.com → Account → API keys
|
|
16
|
+
`.trim());
|
|
17
|
+
//# sourceMappingURL=postinstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAGhF,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC;IACR,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO;;;;;;;;;CAS1B,CAAC,IAAI,EAAE,CAAC,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
5
5
|
export declare const SERVER_NAME = "quantum-openqasm-mcp";
|
|
6
|
-
export declare const SERVER_VERSION = "1.7.
|
|
6
|
+
export declare const SERVER_VERSION = "1.7.2";
|
|
7
7
|
export declare function createQuantumMcpServer(): Server;
|
|
8
8
|
/** Start the MCP server on stdio (for Cursor, VS Code, Claude Desktop, etc.). */
|
|
9
9
|
export declare function startQuantumMcpServer(): Promise<void>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAgBnE,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAClD,eAAO,MAAM,cAAc,UAAU,CAAC;AAqKtC,wBAAgB,sBAAsB,IAAI,MAAM,CAsK/C;AAED,iFAAiF;AACjF,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3D"}
|
package/dist/server.js
CHANGED
|
@@ -6,10 +6,11 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
6
6
|
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
7
7
|
import axios from 'axios';
|
|
8
8
|
import { fetchBackendList, formatBackendList } from './backend-utils.js';
|
|
9
|
-
import {
|
|
9
|
+
import { assertCredentialsAtStartup, formatCredentialStatus, formatCredentialToolError, getMissingRequiredVars, isCredentialError, testIamToken, } from './credentials.js';
|
|
10
|
+
import { requireEnv, safeRequireEnv } from './env.js';
|
|
10
11
|
import { formatCountsHistogram, parseMeasurementResults } from './result-utils.js';
|
|
11
12
|
export const SERVER_NAME = 'quantum-openqasm-mcp';
|
|
12
|
-
export const SERVER_VERSION = '1.7.
|
|
13
|
+
export const SERVER_VERSION = '1.7.2';
|
|
13
14
|
const API_VERSION = '2023-11-16';
|
|
14
15
|
let cachedToken = null;
|
|
15
16
|
let tokenExpiry = 0;
|
|
@@ -241,12 +242,24 @@ export function createQuantumMcpServer() {
|
|
|
241
242
|
required: ['job_id'],
|
|
242
243
|
},
|
|
243
244
|
},
|
|
245
|
+
{
|
|
246
|
+
name: 'check_credentials',
|
|
247
|
+
description: 'Check which IBM Quantum env vars are set (masked) and test IBM IAM connectivity.',
|
|
248
|
+
inputSchema: { type: 'object', properties: {} },
|
|
249
|
+
},
|
|
244
250
|
],
|
|
245
251
|
}));
|
|
246
252
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
247
253
|
const name = request.params.name;
|
|
248
254
|
const args = request.params.arguments ?? {};
|
|
249
255
|
try {
|
|
256
|
+
if (name === 'check_credentials') {
|
|
257
|
+
const missing = getMissingRequiredVars();
|
|
258
|
+
const env = safeRequireEnv();
|
|
259
|
+
const iamOk = env ? await testIamToken(env.apiKey) : false;
|
|
260
|
+
const isError = missing.length > 0 || (env !== null && !iamOk);
|
|
261
|
+
return textResult(formatCredentialStatus(missing, env, iamOk), isError);
|
|
262
|
+
}
|
|
250
263
|
const env = requireEnv();
|
|
251
264
|
switch (name) {
|
|
252
265
|
case 'list_backends':
|
|
@@ -286,6 +299,10 @@ export function createQuantumMcpServer() {
|
|
|
286
299
|
}
|
|
287
300
|
}
|
|
288
301
|
catch (error) {
|
|
302
|
+
const missing = getMissingRequiredVars();
|
|
303
|
+
if (missing.length > 0 || isCredentialError(error)) {
|
|
304
|
+
return textResult(formatCredentialToolError(missing.length > 0 ? missing : ['IBM_API_KEY', 'IBM_SERVICE_CRN']), true);
|
|
305
|
+
}
|
|
289
306
|
return textResult(`Error: ${extractApiError(error)}`, true);
|
|
290
307
|
}
|
|
291
308
|
});
|
|
@@ -293,6 +310,7 @@ export function createQuantumMcpServer() {
|
|
|
293
310
|
}
|
|
294
311
|
/** Start the MCP server on stdio (for Cursor, VS Code, Claude Desktop, etc.). */
|
|
295
312
|
export async function startQuantumMcpServer() {
|
|
313
|
+
assertCredentialsAtStartup();
|
|
296
314
|
const server = createQuantumMcpServer();
|
|
297
315
|
const transport = new StdioServerTransport();
|
|
298
316
|
await server.connect(transport);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA4DA,qFAAqF;AACrF,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA2EpD"}
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import * as readline from 'readline/promises';
|
|
5
|
+
import { stdin as input, stdout as output } from 'process';
|
|
6
|
+
import { testIamToken } from './credentials.js';
|
|
7
|
+
import { buildVsCodeHardcodedConfig, buildVsCodeInputsConfig, getVsCodeUserMcpPath, isGlobalPackageInstalled, mergeVsCodeMcpConfig, } from './mcp-config.js';
|
|
8
|
+
const ENV_DIR = path.join(os.homedir(), '.quantum-openqasm-mcp');
|
|
9
|
+
const ENV_FILE = path.join(ENV_DIR, '.env');
|
|
10
|
+
const DEFAULT_ENDPOINT = 'https://us-east.quantum-computing.cloud.ibm.com';
|
|
11
|
+
async function prompt(rl, label, defaultValue = '') {
|
|
12
|
+
const suffix = defaultValue ? ` [${defaultValue}]` : '';
|
|
13
|
+
const answer = (await rl.question(`${label}${suffix}: `)).trim();
|
|
14
|
+
return answer || defaultValue;
|
|
15
|
+
}
|
|
16
|
+
async function promptSecret(rl, label) {
|
|
17
|
+
return (await rl.question(`${label}: `)).trim();
|
|
18
|
+
}
|
|
19
|
+
async function promptOutputMode(rl) {
|
|
20
|
+
console.log('\nOutput options:');
|
|
21
|
+
console.log(' (a) mcp.json with VS Code inputs prompts (recommended — secure)');
|
|
22
|
+
console.log(' (b) mcp.json with hardcoded env vars');
|
|
23
|
+
console.log(' (c) .env only (for Cursor / npx without VS Code prompts)');
|
|
24
|
+
const choice = (await rl.question('Choose [a/b/c] (default a): ')).trim().toLowerCase();
|
|
25
|
+
if (choice === 'b') {
|
|
26
|
+
return 'hardcoded';
|
|
27
|
+
}
|
|
28
|
+
if (choice === 'c') {
|
|
29
|
+
return 'env-only';
|
|
30
|
+
}
|
|
31
|
+
return 'inputs';
|
|
32
|
+
}
|
|
33
|
+
function buildEnvContent(values) {
|
|
34
|
+
return [
|
|
35
|
+
'# quantum-openqasm-mcp credentials (generated by --setup)',
|
|
36
|
+
`IBM_API_KEY=${values.IBM_API_KEY}`,
|
|
37
|
+
`IBM_SERVICE_CRN=${values.IBM_SERVICE_CRN}`,
|
|
38
|
+
`IBM_QUANTUM_ENDPOINT=${values.IBM_QUANTUM_ENDPOINT}`,
|
|
39
|
+
`IBM_QUANTUM_BACKEND=${values.IBM_QUANTUM_BACKEND}`,
|
|
40
|
+
'',
|
|
41
|
+
].join('\n');
|
|
42
|
+
}
|
|
43
|
+
function writeEnvFile(values) {
|
|
44
|
+
fs.mkdirSync(ENV_DIR, { recursive: true });
|
|
45
|
+
fs.writeFileSync(ENV_FILE, buildEnvContent(values), { mode: 0o600 });
|
|
46
|
+
}
|
|
47
|
+
/** Interactive setup: prompts, validates IAM, writes .env and/or VS Code mcp.json */
|
|
48
|
+
export async function runSetupWizard() {
|
|
49
|
+
const rl = readline.createInterface({ input, output });
|
|
50
|
+
try {
|
|
51
|
+
console.log('Quantum OpenQASM MCP — setup wizard\n');
|
|
52
|
+
if (!isGlobalPackageInstalled()) {
|
|
53
|
+
console.log('Tip: npm install -g @markusvankempen/quantum-openqasm-mcp for a shorter mcp.json command.\n');
|
|
54
|
+
}
|
|
55
|
+
const outputMode = await promptOutputMode(rl);
|
|
56
|
+
const apiKey = await promptSecret(rl, 'IBM_API_KEY');
|
|
57
|
+
if (!apiKey) {
|
|
58
|
+
console.error('IBM_API_KEY is required.');
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
console.log('Validating IBM API key against IAM...');
|
|
62
|
+
if (!(await testIamToken(apiKey))) {
|
|
63
|
+
console.error('IBM IAM validation failed. Check your API key and try again.');
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
console.log('IBM API key: OK\n');
|
|
67
|
+
const crn = await promptSecret(rl, 'IBM_SERVICE_CRN');
|
|
68
|
+
if (!crn) {
|
|
69
|
+
console.error('IBM_SERVICE_CRN is required.');
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
const endpoint = await prompt(rl, 'IBM_QUANTUM_ENDPOINT', DEFAULT_ENDPOINT);
|
|
73
|
+
const backend = await prompt(rl, 'IBM_QUANTUM_BACKEND', 'ibm_fez');
|
|
74
|
+
const creds = {
|
|
75
|
+
IBM_API_KEY: apiKey,
|
|
76
|
+
IBM_SERVICE_CRN: crn,
|
|
77
|
+
IBM_QUANTUM_ENDPOINT: endpoint,
|
|
78
|
+
IBM_QUANTUM_BACKEND: backend,
|
|
79
|
+
};
|
|
80
|
+
if (outputMode === 'env-only' || outputMode === 'hardcoded') {
|
|
81
|
+
writeEnvFile(creds);
|
|
82
|
+
console.log(`\nWrote ${ENV_FILE}`);
|
|
83
|
+
}
|
|
84
|
+
if (outputMode === 'inputs' || outputMode === 'hardcoded') {
|
|
85
|
+
const mcpPath = getVsCodeUserMcpPath();
|
|
86
|
+
const patch = outputMode === 'inputs'
|
|
87
|
+
? buildVsCodeInputsConfig(endpoint, backend)
|
|
88
|
+
: buildVsCodeHardcodedConfig({
|
|
89
|
+
apiKey,
|
|
90
|
+
serviceCrn: crn,
|
|
91
|
+
endpoint,
|
|
92
|
+
backend,
|
|
93
|
+
});
|
|
94
|
+
mergeVsCodeMcpConfig(mcpPath, patch);
|
|
95
|
+
console.log(`Wrote VS Code MCP config: ${mcpPath}`);
|
|
96
|
+
console.log('Reload VS Code (Developer → Reload Window) to apply.');
|
|
97
|
+
}
|
|
98
|
+
if (outputMode === 'inputs') {
|
|
99
|
+
console.log('\nVS Code will prompt for IBM_API_KEY and IBM_SERVICE_CRN on first MCP use.');
|
|
100
|
+
console.log('Optional: run with (c) next time to also write ~/.quantum-openqasm-mcp/.env for Cursor.');
|
|
101
|
+
}
|
|
102
|
+
console.log('\nVerify anytime: quantum-openqasm-mcp --check');
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
rl.close();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markusvankempen/quantum-openqasm-mcp",
|
|
3
3
|
"mcpName": "io.github.markusvankempen/quantum-openqasm-mcp",
|
|
4
|
-
"version": "1.7.
|
|
5
|
-
"description": "IBM Quantum OpenQASM 2.0 MCP server —
|
|
4
|
+
"version": "1.7.2",
|
|
5
|
+
"description": "IBM Quantum OpenQASM 2.0 MCP server — 10 tools to list backends, submit QASM circuits, poll jobs, check credentials, and fetch histograms. Cursor, VS Code, Claude Desktop, Bob, Antigravity via stdio or npx.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"mcp",
|
|
8
8
|
"mcp-server",
|
|
@@ -99,8 +99,10 @@
|
|
|
99
99
|
"build": "tsc -p tsconfig.json",
|
|
100
100
|
"dev": "tsc -p tsconfig.json --watch",
|
|
101
101
|
"start": "node dist/cli.js",
|
|
102
|
+
"postinstall": "node dist/postinstall.js",
|
|
102
103
|
"prepublishOnly": "npm run build",
|
|
103
104
|
"pack:check": "npm run build && npm pack --dry-run",
|
|
105
|
+
"publish:mcp": "mcp-publisher publish",
|
|
104
106
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
105
107
|
},
|
|
106
108
|
"dependencies": {
|