@askqa/mcp 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "askqa",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "AskQA skills — set up notifications and monitoring for your websites",
5
5
  "mcpServers": {
6
6
  "askqa": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askqa/mcp",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "MCP server for AskQA — monitor websites with automated tests by chatting with AI",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/server.js CHANGED
@@ -205,9 +205,10 @@ server.registerTool(
205
205
  code: z.string().optional().describe("Custom Playwright test code. Must define an async function test({ page, step, log, secrets }). Omit if using template_id."),
206
206
  secrets: z.record(z.string()).optional().describe("Optional key-value secrets (e.g. { email: '...', password: '...' } or { api_key: '...' }). Encrypted at rest, never returned in API responses."),
207
207
  headers: z.record(z.string()).optional().describe("Optional HTTP headers injected into requests to the target domain (e.g. { 'X-Test-Secret': 'abc' })"),
208
+ enable_test_mode: z.boolean().optional().describe("Send X-AskQA-Secret header to the target site, enabling test mode on sites that support it (default: true)"),
208
209
  },
209
210
  },
210
- async ({ name, url, template_id, params, code, secrets, headers }) => {
211
+ async ({ name, url, template_id, params, code, secrets, headers, enable_test_mode }) => {
211
212
  try {
212
213
  const body = { name, url };
213
214
  if (template_id) body.template_id = template_id;
@@ -215,6 +216,7 @@ server.registerTool(
215
216
  if (code) body.code = code;
216
217
  if (secrets) body.secrets = secrets;
217
218
  if (headers) body.headers = headers;
219
+ if (enable_test_mode !== undefined) body.enable_test_mode = enable_test_mode;
218
220
  const test = await apiPost("/api/tests/create", body);
219
221
  return { content: [{ type: "text", text: JSON.stringify(test, null, 2) }] };
220
222
  } catch (err) {
@@ -403,9 +405,10 @@ server.registerTool(
403
405
  params: z.record(z.string()).optional().describe("Updated template parameters"),
404
406
  secrets: z.record(z.string()).nullable().optional().describe("Updated secrets (pass null to clear)"),
405
407
  headers: z.record(z.string()).nullable().optional().describe("Updated HTTP headers (pass null to clear)"),
408
+ enable_test_mode: z.boolean().optional().describe("Send X-AskQA-Secret header to the target site, enabling test mode on sites that support it (default: true)"),
406
409
  },
407
410
  },
408
- async ({ test_id, name, url, code, template_id, params, secrets, headers }) => {
411
+ async ({ test_id, name, url, code, template_id, params, secrets, headers, enable_test_mode }) => {
409
412
  try {
410
413
  const body = {};
411
414
  if (name !== undefined) body.name = name;
@@ -415,6 +418,7 @@ server.registerTool(
415
418
  if (params !== undefined) body.params = params;
416
419
  if (secrets !== undefined) body.secrets = secrets;
417
420
  if (headers !== undefined) body.headers = headers;
421
+ if (enable_test_mode !== undefined) body.enable_test_mode = enable_test_mode;
418
422
  const test = await apiPatch(`/api/tests/${test_id}`, body);
419
423
  return { content: [{ type: "text", text: JSON.stringify(test, null, 2) }] };
420
424
  } catch (err) {