{"_id":"@anht3889/cucumber-studio-mcp","_rev":"4-079d28f24c599dc025f23e3517ce4f85","name":"@anht3889/cucumber-studio-mcp","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@anht3889/cucumber-studio-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","cucumber-studio","cucumber","test-case-management","ai"],"author":{"name":"Anh Tran"},"license":"MIT","_id":"@anht3889/cucumber-studio-mcp@0.1.0","maintainers":[{"name":"anht3889","email":"anh.tran.3889@gmail.com"}],"bin":{"cucumber-studio-mcp":"dist/index.js"},"dist":{"shasum":"f3e5f25def0dc14f5f5970ad134a1f4563c6cabd","tarball":"https://registry.npmjs.org/@anht3889/cucumber-studio-mcp/-/cucumber-studio-mcp-0.1.0.tgz","fileCount":19,"integrity":"sha512-N767jUXtwzhKfb7LGRFrYwup65QE5Xe/yHkPrV1a4TelyMUk2rdEcDFSdop0rbzkGGzI/43t8Z2hXdYHdXcN7Q==","signatures":[{"sig":"MEYCIQCsGIUb2Jv5HXpYA9DT9lB3odsmlDLHKqMVflt8RfDezQIhAKCQG7Qb5UsJXpEYJf7ufOsXkdahSa0zlPaWGedaKFmd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151962},"main":"dist/index.js","engines":{"node":">=18.0.0"},"gitHead":"4cd0cd12e8f648fdbb11f09689dd221b43f8ce5b","scripts":{"build":"tsc","start":"tsc && node dist/index.js","update":"npm run build && npm version patch && npm publish","inspect":"tsc && npx @modelcontextprotocol/inspector node -- dist/index.js","inspect-live":"npx @modelcontextprotocol/inspector npx -- @anht3889/cucumber-studio-mcp","prepublishOnly":"npm run build"},"_npmUser":{"name":"anht3889","email":"anh.tran.3889@gmail.com"},"_npmVersion":"10.9.2","description":"MCP (Model Context Protocol) server for Cucumber Studio integration","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.22.2","axios":"^1.6.0","zod-to-json-schema":"^3.23.5","@modelcontextprotocol/sdk":"1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.2","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/cucumber-studio-mcp_0.1.0_1743485763791_0.5622548662535765","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anht3889/cucumber-studio-mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","cucumber-studio","cucumber","test-case-management","ai"],"author":{"name":"Anh Tran"},"license":"MIT","_id":"@anht3889/cucumber-studio-mcp@0.1.1","maintainers":[{"name":"anht3889","email":"anh.tran.3889@gmail.com"}],"homepage":"https://github.com/anht3889/cucumber-studio-mcp#readme","bugs":{"url":"https://github.com/anht3889/cucumber-studio-mcp/issues"},"bin":{"cucumber-studio-mcp":"dist/index.js"},"dist":{"shasum":"56a131454c9d92c3271daaa4d3b3bda296044644","tarball":"https://registry.npmjs.org/@anht3889/cucumber-studio-mcp/-/cucumber-studio-mcp-0.1.1.tgz","fileCount":19,"integrity":"sha512-0g6cfQBMYBkSZTEiUE6EmzgvuREP7X9HiePNBiGy0CIxwlu3m2yk32vt8gkPFmnyVUCko00fFa109NoOQT8nBw==","signatures":[{"sig":"MEQCIAQNGKaThV4bhjg4AEmYiJhPcOea4ob+3/kRdAerNdCmAiAE/SgSz/LQbadMk14sY1L11qzgTivVcA2IGriS1Mgwqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152279},"main":"dist/index.js","engines":{"node":">=18.0.0"},"gitHead":"1f425f546c935763d4fa48836d827682186c717e","scripts":{"build":"tsc","start":"tsc && node dist/index.js","update":"npm run build && npm version patch && npm publish","inspect":"tsc && npx @modelcontextprotocol/inspector node -- dist/index.js","inspect-live":"npx @modelcontextprotocol/inspector npx -- @anht3889/cucumber-studio-mcp","prepublishOnly":"npm run build"},"_npmUser":{"name":"anht3889","email":"anh.tran.3889@gmail.com"},"repository":{"url":"git+https://github.com/anht3889/cucumber-studio-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP (Model Context Protocol) server for Cucumber Studio integration","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.22.2","axios":"^1.6.0","zod-to-json-schema":"^3.23.5","@modelcontextprotocol/sdk":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.2","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/cucumber-studio-mcp_0.1.1_1743486242645_0.024944570207091177","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@anht3889/cucumber-studio-mcp","version":"0.1.2","keywords":["mcp","model-context-protocol","cucumber-studio","cucumber","test-case-management","ai"],"author":{"name":"Anh Tran"},"license":"MIT","_id":"@anht3889/cucumber-studio-mcp@0.1.2","maintainers":[{"name":"anht3889","email":"anh.tran.3889@gmail.com"}],"homepage":"https://github.com/anht3889/cucumber-studio-mcp#readme","bugs":{"url":"https://github.com/anht3889/cucumber-studio-mcp/issues"},"bin":{"cucumber-studio-mcp":"dist/index.js"},"dist":{"shasum":"73641a6505dae83a0582a643f667f45ed2a5a32b","tarball":"https://registry.npmjs.org/@anht3889/cucumber-studio-mcp/-/cucumber-studio-mcp-0.1.2.tgz","fileCount":19,"integrity":"sha512-XRxadYgYLllZZys6HrY703GGmgz6jchZD4l1ctOvhmhAzkTynHa/GE9MqBkxPxLjlapWSPHOd0no+e63o0B4OQ==","signatures":[{"sig":"MEQCIFhRUgLkDhB3Uqj0r9R90f/iN8gVEu3H1x95tGEEIcBCAiAvMDuSe3nPRLMVnt8M47LcZAGD8MpGv4pp48P4Yq4Gug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152288},"main":"dist/index.js","engines":{"node":">=18.0.0"},"gitHead":"dbaf45fe13107e7a8ca1a245ce4b1787dfe6dd64","scripts":{"build":"tsc","start":"tsc && node dist/index.js","update":"npm run build && npm version patch && npm publish","inspect":"tsc && npx @modelcontextprotocol/inspector node -- dist/index.js","inspect-live":"npx @modelcontextprotocol/inspector npx -- @anht3889/cucumber-studio-mcp","prepublishOnly":"npm run build"},"_npmUser":{"name":"anht3889","email":"anh.tran.3889@gmail.com"},"repository":{"url":"git+https://github.com/anht3889/cucumber-studio-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP (Model Context Protocol) server for Cucumber Studio integration","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.22.2","axios":"^1.6.0","zod-to-json-schema":"^3.23.5","@modelcontextprotocol/sdk":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.2","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/cucumber-studio-mcp_0.1.2_1743487509469_0.5090565862968559","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@anht3889/cucumber-studio-mcp","version":"0.1.3","description":"MCP (Model Context Protocol) server for Cucumber Studio integration","main":"dist/index.js","bin":{"cucumber-studio-mcp":"dist/index.js"},"scripts":{"inspect":"tsc && npx @modelcontextprotocol/inspector node -- dist/index.js","inspect-live":"npx @modelcontextprotocol/inspector npx -- @anht3889/cucumber-studio-mcp","build":"tsc","start":"tsc && node dist/index.js","prepublishOnly":"npm run build","update":"npm run build && npm version patch && npm publish"},"engines":{"node":">=18.0.0"},"keywords":["mcp","model-context-protocol","cucumber-studio","cucumber","test-case-management","ai"],"author":{"name":"Anh Tran"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/anht3889/cucumber-studio-mcp.git"},"homepage":"https://github.com/anht3889/cucumber-studio-mcp#readme","bugs":{"url":"https://github.com/anht3889/cucumber-studio-mcp/issues"},"publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"1.8.0","axios":"^1.6.0","zod":"^3.22.2","zod-to-json-schema":"^3.23.5"},"devDependencies":{"@types/node":"^22","typescript":"^5.6.2"},"_id":"@anht3889/cucumber-studio-mcp@0.1.3","gitHead":"72068fc2864e341b7fe1f9d46264ae618156d22a","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-FeIDAFdtAP55beLBvi5Dc4R1v2LjTTFC4WEZe1JCEjdhA50Y2LAD+XR7Xw34/gJsMyJyzrr5IDt9MM7Z1vW+PQ==","shasum":"3a1c451618ccf1a2b0fa80016d166401fe8a3c33","tarball":"https://registry.npmjs.org/@anht3889/cucumber-studio-mcp/-/cucumber-studio-mcp-0.1.3.tgz","fileCount":19,"unpackedSize":147710,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDUaD1k7RlbcxAlZgv4l4dyBiNDqv4e5PO2GHpAPa+4aAIgN4Yev/jCFTwB33S4X5WGE79ONjPd/Au+5s4fh6Qyg5g="}]},"_npmUser":{"name":"anht3889","email":"anh.tran.3889@gmail.com"},"directories":{},"maintainers":[{"name":"anht3889","email":"anh.tran.3889@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cucumber-studio-mcp_0.1.3_1743860801892_0.3950159218365883"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-01T05:36:03.731Z","modified":"2025-04-05T13:46:42.269Z","0.1.0":"2025-04-01T05:36:03.981Z","0.1.1":"2025-04-01T05:44:02.842Z","0.1.2":"2025-04-01T06:05:09.660Z","0.1.3":"2025-04-05T13:46:42.096Z"},"bugs":{"url":"https://github.com/anht3889/cucumber-studio-mcp/issues"},"author":{"name":"Anh Tran"},"license":"MIT","homepage":"https://github.com/anht3889/cucumber-studio-mcp#readme","keywords":["mcp","model-context-protocol","cucumber-studio","cucumber","test-case-management","ai"],"repository":{"type":"git","url":"git+https://github.com/anht3889/cucumber-studio-mcp.git"},"description":"MCP (Model Context Protocol) server for Cucumber Studio integration","maintainers":[{"name":"anht3889","email":"anh.tran.3889@gmail.com"}],"readme":"# Cucumber Studio MCP\n\nMCP (Model Context Protocol) server for integrating Cucumber Studio with AI assistants. This integration allows AI assistants to interact with Cucumber Studio to manage BDD scenarios, projects, folders, and tags.\n\n## Features\n\n- **Comprehensive BDD Management**: Access and manage your Cucumber Studio projects, scenarios, folders, and tags\n- **Read-Only Mode**: Optional protection to prevent accidental modifications to your BDD assets\n- **Caching Support**: Improved performance with configurable caching\n- **Detailed Logging**: Configurable logging levels for troubleshooting\n- **API Coverage**: Coverage of essential Cucumber Studio operations\n\n## Tools\n\n### Read-Only Tools (available in all modes)\n\n1. `cucumber_studio_get_projects`\n   - Get all projects from Cucumber Studio\n   - Inputs:\n     - None\n   - Returns: List of all accessible projects\n\n2. `cucumber_studio_get_project`\n   - Get a specific project by ID\n   - Inputs:\n     - `project_id` (string): ID of the project to retrieve\n   - Returns: Project details including name, description, and metadata\n\n3. `cucumber_studio_get_scenarios`\n   - Get all scenarios from a project\n   - Inputs:\n     - `project_id` (string): ID of the project\n     - `include_tags` (optional boolean): Whether to include tags in the response (default: true)\n   - Returns: List of scenarios in the project\n\n4. `cucumber_studio_get_scenario`\n   - Get a specific scenario by ID\n   - Inputs:\n     - `project_id` (string): ID of the project\n     - `scenario_id` (string): ID of the scenario\n     - `include_tags` (optional boolean): Whether to include tags (default: true)\n   - Returns: Scenario details including steps, tags, and metadata\n\n5. `cucumber_studio_find_scenarios_by_tags`\n   - Find scenarios with specific tags\n   - Inputs:\n     - `project_id` (string): ID of the project\n     - `tag_key` (string): The tag key to search for\n     - `tag_value` (string): The tag value to search for\n     - `include_tags` (optional boolean): Whether to include tags (default: true)\n   - Returns: List of matching scenarios\n\n6. `cucumber_studio_get_folders`\n   - Get all folders from a project\n   - Inputs:\n     - `project_id` (string): ID of the project\n   - Returns: List of folders in the project\n\n### Write Tools (blocked in read-only mode)\n\n7. `cucumber_studio_create_scenario`\n   - Create a new scenario\n   - Inputs:\n     - `project_id` (string): ID of the project\n     - `name` (string): Name of the scenario\n     - `description` (optional string): Description\n     - `folder_id` (optional string): ID of the folder\n     - `steps` (optional array): Steps for the scenario\n     - `tags` (optional array): Tags to add to the scenario\n   - Returns: Created scenario details\n\n8. `cucumber_studio_update_scenario`\n   - Update an existing scenario\n   - Inputs:\n     - `project_id` (string): ID of the project\n     - `scenario_id` (string): ID of the scenario to update\n     - `name` (optional string): New name\n     - `description` (optional string): New description\n     - `folder_id` (optional string): New folder ID\n     - `steps` or `definition` (optional): New steps or definition\n     - `tags` (optional array): New tags\n   - Returns: Updated scenario details\n\n9. `cucumber_studio_delete_scenario`\n   - Delete a scenario\n   - Inputs:\n     - `project_id` (string): ID of the project\n     - `scenario_id` (string): ID of the scenario to delete\n   - Returns: Operation result\n\n10. `cucumber_studio_add_tag`\n    - Add a tag to a scenario\n    - Inputs:\n      - `project_id` (string): ID of the project\n      - `scenario_id` (string): ID of the scenario\n      - `key` (string): Tag key\n      - `value` (string): Tag value\n    - Returns: Added tag details\n\n11. `cucumber_studio_add_tags`\n    - Add multiple tags to a scenario\n    - Inputs:\n      - `project_id` (string): ID of the project\n      - `scenario_id` (string): ID of the scenario\n      - `tags` (array): Tags to add, each with `key` and `value`\n    - Returns: Operation result\n\n12. `cucumber_studio_update_tag`\n    - Update an existing tag\n    - Inputs:\n      - `project_id` (string): ID of the project\n      - `scenario_id` (string): ID of the scenario\n      - `tag_id` (string): ID of the tag to update\n      - `key` (string): New tag key\n      - `value` (string): New tag value\n    - Returns: Updated tag details\n\n13. `cucumber_studio_delete_tag`\n    - Delete a tag from a scenario\n    - Inputs:\n      - `project_id` (string): ID of the project\n      - `scenario_id` (string): ID of the scenario\n      - `tag_id` (string): ID of the tag to delete\n    - Returns: Operation result\n\n14. `cucumber_studio_create_folder`\n    - Create a new folder\n    - Inputs:\n      - `project_id` (string): ID of the project\n      - `name` (string): Name of the folder\n      - `parent_id` (optional number): ID of the parent folder\n    - Returns: Created folder details\n\n15. `cucumber_studio_update_folder`\n    - Update an existing folder\n    - Inputs:\n      - `project_id` (string): ID of the project\n      - `folder_id` (string): ID of the folder to update\n      - `name` (optional string): New folder name\n      - `description` (optional string): New description\n      - `definition` (optional string): New definition\n      - `parent_id` (optional number): New parent folder ID\n    - Returns: Updated folder details\n\n16. `cucumber_studio_delete_folder`\n    - Delete a folder\n    - Inputs:\n      - `project_id` (string): ID of the project\n      - `folder_id` (string): ID of the folder to delete\n    - Returns: Operation result\n\n### Required Credentials\nTo use Cucumber Studio MCP, you need to obtain the following credentials:\n\n1. **Access Token**: Your Cucumber Studio API access token\n2. **Client ID**: Your Cucumber Studio client identifier\n3. **User ID**: Your Cucumber Studio user email/ID\n\nThese can be obtained from your Cucumber Studio account settings.\n\n## Environment Variables\n\n- `CUCUMBER_STUDIO_ACCESS_TOKEN` (required): Your Cucumber Studio API access token\n- `CUCUMBER_STUDIO_CLIENT_ID` (required): Your Cucumber Studio client identifier\n- `CUCUMBER_STUDIO_UID` (required): Your Cucumber Studio user email/ID\n\n### Optional Environment Variables\n\n```bash\n# API Configuration\nCUCUMBER_STUDIO_BASE_URL=https://studio.cucumberstudio.com/api  # Default URL\n\n# Access Control\nCUCUMBER_STUDIO_READ_ONLY_MODE=true  # Default: false\n\n# Logging Configuration\nCUCUMBER_STUDIO_LOG_LEVEL=info  # Options: error, warn, info, debug\nCUCUMBER_STUDIO_ENABLE_REQUEST_LOGGING=true  # Default: true\nCUCUMBER_STUDIO_ENABLE_RESPONSE_LOGGING=false  # Default: false\nCUCUMBER_STUDIO_LOG_DIR=./logs  # Directory for log files\n\n# Performance\nCUCUMBER_STUDIO_ENABLE_CACHE=true  # Default: true\nCUCUMBER_STUDIO_CACHE_TTL_SECONDS=120  # Default: 120 seconds\nCUCUMBER_STUDIO_REQUEST_TIMEOUT_MS=30000  # Default: 30 seconds\n```\n\n## Setup\n\n### Usage with Claude and other AI assistants\n\nThe MCP server can be integrated with AI assistants that support the Model Context Protocol, enabling them to interact with your Cucumber Studio projects and scenarios.\n\n```json\n{\n  \"mcpServers\": {\n    \"cucumber-studio\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@anht3889/cucumber-studio-mcp\"\n      ],\n      \"env\": {\n        \"CUCUMBER_STUDIO_ACCESS_TOKEN\": \"<YOUR_ACCESS_TOKEN>\",\n        \"CUCUMBER_STUDIO_CLIENT_ID\": \"<YOUR_CLIENT_ID>\",\n        \"CUCUMBER_STUDIO_UID\": \"<YOUR_UID>\",\n        \"CUCUMBER_STUDIO_READ_ONLY_MODE\": \"< true / false>\"\n      }\n    }\n  }\n}\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n\n# Run with inspector for debugging\nnpm run inspect\n\n# Run the inspector against the live npm package\nnpm run inspect-live\n```\n\n## License\n\nThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.\n\n## Author\n\nAnh Tran ","readmeFilename":"README.md"}