cucumberstudio-mcp 1.1.8 → 1.2.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.
package/README.md
CHANGED
|
@@ -28,11 +28,11 @@ A Model Context Protocol (MCP) server that provides LLM access to Cucumber Studi
|
|
|
28
28
|
|
|
29
29
|
## Installation
|
|
30
30
|
|
|
31
|
-
### Desktop Extension (
|
|
31
|
+
### Desktop Extension (MCPB) Installation
|
|
32
32
|
|
|
33
33
|
The easiest way to use this MCP server is as a Desktop Extension:
|
|
34
34
|
|
|
35
|
-
1. **Download Extension**: Get the latest `.
|
|
35
|
+
1. **Download Extension**: Get the latest `.mcpb` file from the [releases page](https://github.com/HeroSizy/cucumberstudio-mcp/releases) (automatically built from each release)
|
|
36
36
|
2. **Install Extension**: Import the extension in your compatible AI desktop application
|
|
37
37
|
3. **Configure Credentials**: Set up your Cucumber Studio API credentials through the extension settings:
|
|
38
38
|
- **Access Token**: Your Cucumber Studio API access token
|
|
@@ -187,7 +187,7 @@ npm run start:http
|
|
|
187
187
|
### Using with MCP Clients
|
|
188
188
|
|
|
189
189
|
#### Desktop Extension (Recommended)
|
|
190
|
-
Import the `.
|
|
190
|
+
Import the `.mcpb` extension file directly into your compatible AI desktop application. The extension handles all configuration through its settings interface.
|
|
191
191
|
|
|
192
192
|
#### Manual MCP Configuration
|
|
193
193
|
|
|
@@ -326,19 +326,20 @@ npm run build
|
|
|
326
326
|
npm run build:dev
|
|
327
327
|
```
|
|
328
328
|
|
|
329
|
-
###
|
|
329
|
+
### MCPB Extension Development
|
|
330
|
+
|
|
330
331
|
```bash
|
|
331
332
|
# Validate manifest.json
|
|
332
|
-
npm run
|
|
333
|
+
npm run mcpb:validate
|
|
333
334
|
|
|
334
|
-
# Build complete
|
|
335
|
-
npm run
|
|
335
|
+
# Build complete MCPB extension for local testing (optimized production build)
|
|
336
|
+
npm run mcpb:build
|
|
336
337
|
|
|
337
338
|
# Check info about built extension
|
|
338
|
-
npm run
|
|
339
|
+
npm run mcpb:info
|
|
339
340
|
|
|
340
341
|
# Clean up build artifacts
|
|
341
|
-
npm run
|
|
342
|
+
npm run mcpb:clean
|
|
342
343
|
```
|
|
343
344
|
|
|
344
345
|
## Architecture
|
package/build/config/settings.js
CHANGED
|
@@ -28,7 +28,7 @@ export class ConfigManager {
|
|
|
28
28
|
config = null;
|
|
29
29
|
/**
|
|
30
30
|
* Load configuration from environment variables
|
|
31
|
-
* Supports both traditional environment variables and
|
|
31
|
+
* Supports both traditional environment variables and MCPB user configuration
|
|
32
32
|
* Note: .env file loading is handled by entry points (index.ts), not here
|
|
33
33
|
*/
|
|
34
34
|
loadFromEnvironment() {
|
|
@@ -67,7 +67,7 @@ export class ConfigManager {
|
|
|
67
67
|
throw new Error(`Configuration validation failed. Missing or invalid fields: ${missingFields}. ` +
|
|
68
68
|
'Please ensure all required credentials are configured: ' +
|
|
69
69
|
'Access Token, Client ID, and User ID. ' +
|
|
70
|
-
'In
|
|
70
|
+
'In MCPB environments, these should be configured through the extension settings. ' +
|
|
71
71
|
'For development, set environment variables: CUCUMBERSTUDIO_ACCESS_TOKEN, CUCUMBERSTUDIO_CLIENT_ID, CUCUMBERSTUDIO_UID');
|
|
72
72
|
}
|
|
73
73
|
throw error;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
2
2
|
import { createCucumberStudioMcpServer } from './mcp-server.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* MCPB-optimized entry point for the Cucumber Studio MCP Server
|
|
5
5
|
* STDIO transport only - HTTP transport code excluded from bundle
|
|
6
|
-
* Environment variables provided by
|
|
6
|
+
* Environment variables provided by MCPB runtime (no .env files needed)
|
|
7
7
|
*/
|
|
8
8
|
async function main() {
|
|
9
|
-
//
|
|
10
|
-
// No need for dotenv in
|
|
9
|
+
// MCPB provides environment variables through manifest configuration
|
|
10
|
+
// No need for dotenv in MCPB runtime
|
|
11
11
|
console.error(`🎯 Starting Cucumber Studio MCP Server with stdio transport...`);
|
|
12
12
|
try {
|
|
13
|
-
// STDIO transport only (
|
|
13
|
+
// STDIO transport only (MCPB optimization)
|
|
14
14
|
const server = createCucumberStudioMcpServer();
|
|
15
15
|
const stdioTransport = new StdioServerTransport();
|
|
16
16
|
console.error('🚀 CucumberStudio MCP Server running on stdio');
|
package/build/utils/errors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Convert various error types into MCP-compatible errors
|
|
4
|
-
* Enhanced for
|
|
4
|
+
* Enhanced for MCPB extension compatibility with detailed error context
|
|
5
5
|
*/
|
|
6
6
|
export function createMcpError(error, context) {
|
|
7
7
|
if (error instanceof McpError) {
|
|
@@ -16,9 +16,9 @@ export function createMcpError(error, context) {
|
|
|
16
16
|
if (error.name === 'ZodError') {
|
|
17
17
|
return new McpError(ErrorCode.InvalidParams, `Validation error${context ? ` (${context})` : ''}: ${error.message}`);
|
|
18
18
|
}
|
|
19
|
-
// Handle configuration errors specifically for
|
|
19
|
+
// Handle configuration errors specifically for MCPB
|
|
20
20
|
if (error.message.includes('Configuration validation failed')) {
|
|
21
|
-
return new McpError(ErrorCode.InvalidRequest, `Configuration error: ${error.message}. Please check your
|
|
21
|
+
return new McpError(ErrorCode.InvalidRequest, `Configuration error: ${error.message}. Please check your MCPB extension settings.`);
|
|
22
22
|
}
|
|
23
23
|
// Handle network/timeout errors
|
|
24
24
|
if (error.name === 'AxiosError' || error.message.includes('timeout')) {
|
package/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"manifest_version": "0.3",
|
|
3
3
|
"name": "cucumberstudio-mcp",
|
|
4
4
|
"display_name": "Cucumber Studio MCP",
|
|
5
|
-
"version": "1.1
|
|
5
|
+
"version": "1.2.1",
|
|
6
6
|
"description": "MCP server for Cucumber Studio API integration - access test scenarios, action words, and execution data",
|
|
7
7
|
"long_description": "A Model Context Protocol (MCP) server that provides LLM access to Cucumber Studio's testing platform. This server enables AI assistants to retrieve test scenarios, action words, test runs, and project information from Cucumber Studio. Features include project management, scenario browsing, reusable test steps access, and test execution monitoring with comprehensive error handling and type safety.",
|
|
8
8
|
"author": {
|
|
@@ -155,6 +155,8 @@
|
|
|
155
155
|
}
|
|
156
156
|
],
|
|
157
157
|
"compatibility": {
|
|
158
|
-
"
|
|
158
|
+
"runtimes": {
|
|
159
|
+
"node": ">=20.0.0"
|
|
160
|
+
}
|
|
159
161
|
}
|
|
160
162
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cucumberstudio-mcp",
|
|
3
|
-
"
|
|
3
|
+
"mcpName": "io.github.HeroSizy/cucumberstudio",
|
|
4
|
+
"version": "1.2.1",
|
|
4
5
|
"description": "MCP server for Cucumber Studio API integration",
|
|
5
6
|
"main": "build/index.js",
|
|
6
7
|
"type": "module",
|
|
@@ -44,10 +45,10 @@
|
|
|
44
45
|
"docker:compose:down": "docker-compose down",
|
|
45
46
|
"docker:compose:build": "docker-compose build",
|
|
46
47
|
"bundle": "node esbuild.config.js",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
48
|
+
"mcpb:validate": "npx @anthropic-ai/mcpb validate manifest.json",
|
|
49
|
+
"mcpb:build": "npm run bundle && npx @anthropic-ai/mcpb pack . cucumberstudio-mcp-local.mcpb",
|
|
50
|
+
"mcpb:info": "npx @anthropic-ai/mcpb info cucumberstudio-mcp-local.mcpb",
|
|
51
|
+
"mcpb:clean": "rm -f cucumberstudio-mcp-local.mcpb bundle.js"
|
|
51
52
|
},
|
|
52
53
|
"keywords": [
|
|
53
54
|
"mcp",
|
|
@@ -80,7 +81,7 @@
|
|
|
80
81
|
"zod": "^3.22.0"
|
|
81
82
|
},
|
|
82
83
|
"devDependencies": {
|
|
83
|
-
"@anthropic-ai/
|
|
84
|
+
"@anthropic-ai/mcpb": "^2.1.2",
|
|
84
85
|
"@types/cors": "^2.8.0",
|
|
85
86
|
"@types/express": "^4.17.0",
|
|
86
87
|
"@types/node": "^22.15.30",
|