wopee-mcp 1.12.0 → 1.14.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
|
@@ -70,6 +70,59 @@ If you're unsure about your proxy settings, check your VS Code settings (`settin
|
|
|
70
70
|
- `http://10.x.x.x:8080`
|
|
71
71
|
- `http://username:password@proxy.company.com:8080` (if authentication is required)
|
|
72
72
|
|
|
73
|
+
### TLS / Certificate Issues
|
|
74
|
+
|
|
75
|
+
**This is not required for MCP to work.** If you see HTTPS or certificate-related errors, that indicates a TLS or certificate trust issue in your environment.
|
|
76
|
+
|
|
77
|
+
If the server fails with errors such as **`UNABLE_TO_VERIFY_LEAF_SIGNATURE`** or **`certificate has expired`**, it may be due to:
|
|
78
|
+
|
|
79
|
+
- **Self-signed certificates** (e.g. when `WOPEE_API_URL` points to an internal or dev server)
|
|
80
|
+
- **Corporate proxy / SSL inspection** (traffic re-encrypted with a corporate CA your machine doesn’t trust)
|
|
81
|
+
- **Missing CA certificates** in Node’s trust store
|
|
82
|
+
|
|
83
|
+
#### Preferred solutions (secure)
|
|
84
|
+
|
|
85
|
+
1. **Use a valid TLS certificate** – e.g. Let’s Encrypt, or an internal CA – and ensure the **full certificate chain** is served.
|
|
86
|
+
2. **Install the corporate or internal CA** so Node trusts it:
|
|
87
|
+
|
|
88
|
+
Example:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
export NODE_EXTRA_CA_CERTS=/etc/ssl/certs/internal-ca.pem
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
In MCP config `env`:
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
"env": {
|
|
98
|
+
"WOPEE_PROJECT_UUID": "your-project-uuid-here",
|
|
99
|
+
"WOPEE_API_KEY": "your-api-key-here",
|
|
100
|
+
"NODE_EXTRA_CA_CERTS": "/path/to/ca.pem"
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### Insecure workaround (not recommended)
|
|
105
|
+
|
|
106
|
+
For **local debugging only**, you may disable TLS verification in Node. This should **never** be used in production, as it disables HTTPS security and exposes traffic to interception.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
export NODE_TLS_REJECT_UNAUTHORIZED=0
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Or in MCP config `env`:
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
"env": {
|
|
116
|
+
"WOPEE_PROJECT_UUID": "your-project-uuid-here",
|
|
117
|
+
"WOPEE_API_KEY": "your-api-key-here",
|
|
118
|
+
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Treat this as a **debug-only escape hatch**, not a normal setup step.
|
|
123
|
+
|
|
124
|
+
**Note:** Some users have reported setting `PYTHONHTTPSVERIFY=0` as well. This MCP server does not use Python; that variable has no effect on it. It would only apply if you run a Python-based MCP host or other tooling that also performs HTTPS in the same environment—outside the scope of this server.
|
|
125
|
+
|
|
73
126
|
## Getting Started
|
|
74
127
|
|
|
75
128
|
Most tools in this MCP server require a `suiteUuid` to operate. You have two options to get started:
|
|
@@ -122,6 +175,8 @@ Fetch all existing analysis suites for my project
|
|
|
122
175
|
|
|
123
176
|
Creates and dispatches a new analysis/crawling suite for your project. Use this to start a fresh analysis session.
|
|
124
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.)
|
|
125
180
|
- **Returns:** Success message with the created suite information
|
|
126
181
|
|
|
127
182
|
**Example Usage:**
|
|
@@ -130,6 +185,10 @@ Creates and dispatches a new analysis/crawling suite for your project. Use this
|
|
|
130
185
|
Dispatch a new analysis suite
|
|
131
186
|
```
|
|
132
187
|
|
|
188
|
+
```
|
|
189
|
+
Dispatch a new analysis suite and focus on the checkout flow
|
|
190
|
+
```
|
|
191
|
+
|
|
133
192
|
#### `wopee_create_blank_suite`
|
|
134
193
|
|
|
135
194
|
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.
|
|
@@ -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,7 +10,7 @@ export const createDispatchAnalysisInput = () => {
|
|
|
10
10
|
username: null,
|
|
11
11
|
password: null,
|
|
12
12
|
cookiesPreference: null,
|
|
13
|
-
additionalInstructions: null,
|
|
13
|
+
additionalInstructions: input.additionalInstructions ?? null,
|
|
14
14
|
additionalVariables: null,
|
|
15
15
|
},
|
|
16
16
|
rerun: null,
|
|
@@ -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
|
|
16
|
-
const parsedInput = DispatchAnalysisInputSchema.parse(
|
|
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,8 @@ export const DispatchAnalysisInputSchema = z.object({
|
|
|
15
15
|
suiteAnalysisConfig: SuiteAnalysisConfigSchema,
|
|
16
16
|
rerun: RerunOptionsSchema.nullable().default(null),
|
|
17
17
|
});
|
|
18
|
+
export const WopeeDispatchAnalysisInputSchema = z.object({
|
|
19
|
+
additionalInstructions: z
|
|
20
|
+
.string({ description: "Additional instructions for the agent" })
|
|
21
|
+
.nullish(),
|
|
22
|
+
});
|