wopee-mcp 1.13.0 → 1.15.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/README.md CHANGED
@@ -175,6 +175,11 @@ Fetch all existing analysis suites for my project
175
175
 
176
176
  Creates and dispatches a new analysis/crawling suite for your project. Use this to start a fresh analysis session.
177
177
 
178
+ - **Parameters:**
179
+ - `additionalInstructions` _(optional)_ - Additional instructions to guide the agent during the analysis/crawling phase (e.g. focus areas, things to ignore, login steps, etc.)
180
+ - `additionalVariables` _(optional)_ - Additional environment variables to pass to the analysis. Array of objects, each with:
181
+ - `key` - Variable name, must be uppercase with underscores only (e.g. `MY_VAR`, `BASE_URL`)
182
+ - `value` - Variable value (non-empty string)
178
183
  - **Returns:** Success message with the created suite information
179
184
 
180
185
  **Example Usage:**
@@ -183,6 +188,14 @@ Creates and dispatches a new analysis/crawling suite for your project. Use this
183
188
  Dispatch a new analysis suite
184
189
  ```
185
190
 
191
+ ```
192
+ Dispatch a new analysis suite and focus on the checkout flow
193
+ ```
194
+
195
+ ```
196
+ Dispatch a new analysis suite with additional variables CARD_FILAMENT=123321123 and AUTH_TOKEN=abc123
197
+ ```
198
+
186
199
  #### `wopee_create_blank_suite`
187
200
 
188
201
  Creates a blank analysis suite for your project. Use this when you want to manually configure and populate a suite rather than having it automatically analyzed.
@@ -278,12 +291,10 @@ Dispatch agent for my latest suite's user story US001 and test case TC003
278
291
  ## Typical Workflow
279
292
 
280
293
  1. **Start with a suite:**
281
-
282
294
  - Use `wopee_fetch_analysis_suites` to see existing suites, OR
283
295
  - Use `wopee_dispatch_analysis` to create a new suite
284
296
 
285
297
  2. **Generate artifacts:**
286
-
287
298
  - Generate app context: `wopee_generate_artifact` with `APP_CONTEXT` and specific `suiteUuid`
288
299
  - Generate general user stories: `wopee_generate_artifact` with `GENERAL_USER_STORIES` and specific `suiteUuid`
289
300
  - Generate user stories with test cases: `wopee_generate_artifact` with `USER_STORIES_WITH_TEST_CASES` and specific `suiteUuid`
@@ -292,7 +303,6 @@ Dispatch agent for my latest suite's user story US001 and test case TC003
292
303
  - Generate test case steps: `wopee_generate_artifact` with `TEST_CASE_STEPS` and specific `suiteUuid`
293
304
 
294
305
  3. **Fetch generated content:**
295
-
296
306
  - Use the fetch tools to retrieve generated markdown/JSON files
297
307
 
298
308
  4. **Run tests:**
@@ -1,5 +1,5 @@
1
1
  import { getConfig } from "../../utils/getConfig.js";
2
- export const createDispatchAnalysisInput = () => {
2
+ export const createDispatchAnalysisInput = (input) => {
3
3
  const { WOPEE_PROJECT_UUID } = getConfig();
4
4
  if (!WOPEE_PROJECT_UUID)
5
5
  throw new Error("WOPEE_PROJECT_UUID is not set");
@@ -10,8 +10,10 @@ export const createDispatchAnalysisInput = () => {
10
10
  username: null,
11
11
  password: null,
12
12
  cookiesPreference: null,
13
- additionalInstructions: null,
14
- additionalVariables: null,
13
+ additionalInstructions: input.additionalInstructions ?? null,
14
+ additionalVariables: input.additionalVariables?.length
15
+ ? JSON.stringify(input.additionalVariables)
16
+ : null,
15
17
  },
16
18
  rerun: null,
17
19
  };
@@ -1,5 +1,5 @@
1
1
  import { _parseError } from "../shared/helpers.js";
2
- import { DispatchAnalysisInputSchema } from "./schema.js";
2
+ import { DispatchAnalysisInputSchema, WopeeDispatchAnalysisInputSchema, } from "./schema.js";
3
3
  import { createDispatchAnalysisInput } from "./factory.js";
4
4
  import { DispatchAnalysis } from "../shared/gql-queries.js";
5
5
  import { requestClient } from "../../utils/requestClient.js";
@@ -9,11 +9,12 @@ export const wopeeDispatchAnalysis = {
9
9
  config: {
10
10
  title: "Dispatch analysis",
11
11
  description: "Create and dispatch analysis/crawling suite for a project",
12
+ inputSchema: WopeeDispatchAnalysisInputSchema.shape,
12
13
  },
13
- handler: async () => {
14
+ handler: async (input) => {
14
15
  try {
15
- const input = createDispatchAnalysisInput();
16
- const parsedInput = DispatchAnalysisInputSchema.parse(input);
16
+ const rawInput = createDispatchAnalysisInput(input);
17
+ const parsedInput = DispatchAnalysisInputSchema.parse(rawInput);
17
18
  const result = await requestClient(DispatchAnalysis, {
18
19
  input: parsedInput,
19
20
  });
@@ -15,3 +15,23 @@ export const DispatchAnalysisInputSchema = z.object({
15
15
  suiteAnalysisConfig: SuiteAnalysisConfigSchema,
16
16
  rerun: RerunOptionsSchema.nullable().default(null),
17
17
  });
18
+ const AdditionalVariableSchema = z.object({
19
+ key: z
20
+ .string({
21
+ description: "Variable name. Must be uppercase with underscores only (e.g. MY_VAR, BASE_URL).",
22
+ })
23
+ .regex(/^[A-Z_][A-Z0-9_]*$/, "Key must be uppercase alphanumeric with underscores, starting with a letter or underscore"),
24
+ value: z
25
+ .string({ description: "Variable value. Must be a non-empty string." })
26
+ .min(1, "Value must be a non-empty string"),
27
+ });
28
+ export const WopeeDispatchAnalysisInputSchema = z.object({
29
+ additionalInstructions: z
30
+ .string({ description: "Additional instructions for the agent" })
31
+ .nullish(),
32
+ additionalVariables: z
33
+ .array(AdditionalVariableSchema, {
34
+ description: "Additional environment variables for the analysis. Each variable needs a key (uppercase, e.g. BASE_URL) and a non-empty value.",
35
+ })
36
+ .nullish(),
37
+ });
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "bin": {
5
5
  "wopee-mcp": "./build/index.js"
6
6
  },
7
- "version": "1.13.0",
7
+ "version": "1.15.0",
8
8
  "description": "Wopee.io MCP server",
9
9
  "main": "./build/index.js",
10
10
  "scripts": {