Skip to main content
Glama
MCP_NPM_INSTALLATION_GUIDE.mdโ€ข17 kB
# MCP Zebrunner - NPM Installation & Configuration Guide This guide walks you through installing and configuring the **Zebrunner MCP Server** for various AI clients including Claude Desktop, Cursor, IntelliJ IDEA, and ChatGPT Desktop. --- ## Table of Contents 1. [Prerequisites](#prerequisites) 2. [Installation Methods](#installation-methods) 3. [Required Configuration](#required-configuration) 4. [Optional Configuration](#optional-configuration) 5. [Client Configuration](#client-configuration) - [Claude Desktop](#claude-desktop) - [Cursor](#cursor) - [IntelliJ IDEA](#intellij-idea) - [ChatGPT Desktop](#chatgpt-desktop) 6. [Verification & Testing](#verification--testing) 7. [Troubleshooting](#troubleshooting) --- ## Prerequisites Before installing, ensure you have: - **Node.js** (v18 or higher) installed - **npm** package manager - Access to a **Zebrunner instance** - Zebrunner **login credentials** and **API token** --- ## Installation Methods ### Method 1: Global Installation (Recommended) Install the package globally to use it across all projects: ```bash npm install -g mcp-zebrunner ``` **Location after installation:** - macOS/Linux: `/usr/local/lib/node_modules/mcp-zebrunner/` - Windows: `%APPDATA%\npm\node_modules\mcp-zebrunner\` ### Method 2: Local Installation Install in a specific project directory: ```bash # Navigate to your project directory cd /path/to/your/project # Install locally npm install mcp-zebrunner ``` **Location after installation:** - `./node_modules/mcp-zebrunner/` ### Verify Installation Check that the package was installed correctly: ```bash # For global installation npm list -g mcp-zebrunner # For local installation npm list mcp-zebrunner ``` ### Check Registry Status Verify the package is available in the MCP Registry: ```bash curl "https://registry.modelcontextprotocol.io/v0/servers?search=zebrunner" ``` --- ## Required Configuration The Zebrunner MCP Server requires **3 mandatory environment variables**: | Variable | Description | Example | |----------|-------------|---------| | `ZEBRUNNER_URL` | Base URL of your Zebrunner instance | `https://your-company.zebrunner.com` | | `ZEBRUNNER_LOGIN` | Your Zebrunner username/login | `john.doe@company.com` | | `ZEBRUNNER_TOKEN` | Your Zebrunner API authentication token | `zt_abc123...` | ### How to Get Your Zebrunner Token 1. Log into your Zebrunner instance 2. Navigate to **User Profile** โ†’ **API Tokens** 3. Generate a new token or copy an existing one 4. Save it securely - you'll need it for configuration --- ## Optional Configuration The following environment variables are **optional** and have default values: ### API & Performance Settings | Variable | Description | Default | |----------|-------------|---------| | `TIMEOUT` | API request timeout in milliseconds | `30000` (30 seconds) | | `RETRY_ATTEMPTS` | Number of retry attempts for failed requests | `3` | | `RETRY_DELAY` | Delay between retry attempts (ms) | `1000` (1 second) | | `MAX_PAGE_SIZE` | Maximum page size for paginated requests | `100` (max: 1000) | | `DEFAULT_PAGE_SIZE` | Default page size for paginated requests | `10` | ### Feature Flags | Variable | Description | Default | |----------|-------------|---------| | `DEBUG` | Enable debug logging | `false` | | `ENABLE_RULES_ENGINE` | Enable rules engine for test case validation | `auto` (auto-detected from `mcp-zebrunner-rules.md` file) | ### Security Settings | Variable | Description | Default | |----------|-------------|---------| | `STRICT_URL_VALIDATION` | Enable strict URL validation for security | `true` | | `SKIP_URL_VALIDATION_ON_ERROR` | Skip validation if it fails (less secure) | `false` | ### Rate Limiting | Variable | Description | Default | |----------|-------------|---------| | `ENABLE_RATE_LIMITING` | Enable rate limiting for API calls | `true` | | `MAX_REQUESTS_PER_SECOND` | Maximum API requests per second | `5` (max: 100) | | `RATE_LIMITING_BURST` | Allow burst of API requests | `10` (max: 200) | --- ## Client Configuration ### Claude Desktop Claude Desktop uses a configuration file to manage MCP servers. #### Configuration File Location **macOS:** ``` ~/Library/Application Support/Claude/claude_desktop_config.json ``` **Windows:** ``` %APPDATA%\Claude\claude_desktop_config.json ``` #### Configuration Steps 1. **Locate or create the configuration file** ```bash # macOS - Open with your editor open ~/Library/Application\ Support/Claude/claude_desktop_config.json # Windows - Open with Notepad notepad %APPDATA%\Claude\claude_desktop_config.json ``` 2. **Add the Zebrunner MCP Server configuration** For **global installation**: ```json { "mcpServers": { "zebrunner": { "command": "node", "args": ["/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js"], "env": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token" } } } } ``` For **local installation**: ```json { "mcpServers": { "zebrunner": { "command": "node", "args": ["/path/to/your/project/node_modules/mcp-zebrunner/dist/server.js"], "env": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token" } } } } ``` 3. **Add optional environment variables** (if needed): ```json { "mcpServers": { "zebrunner": { "command": "node", "args": ["/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js"], "env": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token", "DEBUG": "true", "TIMEOUT": "60000", "MAX_PAGE_SIZE": "50" } } } } ``` 4. **Restart Claude Desktop** for changes to take effect. --- ### Cursor Cursor supports MCP servers through its configuration. #### Configuration Steps 1. **Open Cursor Settings** - Press `Cmd/Ctrl + ,` to open settings - Navigate to **MCP Servers** or search for "MCP" 2. **Add MCP Server Configuration** **Method A: Using Cursor's MCP UI (if available)** - Click "Add MCP Server" - Enter the following details: - **Name:** `zebrunner` - **Command:** `node` - **Args:** `/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js` (or local path) - **Environment Variables:** Add ZEBRUNNER_URL, ZEBRUNNER_LOGIN, ZEBRUNNER_TOKEN **Method B: Edit settings.json manually** Open Cursor's `settings.json`: ```json { "mcp.servers": { "zebrunner": { "command": "node", "args": ["/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js"], "env": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token" } } } } ``` 3. **Reload Cursor** or restart the window for changes to take effect. --- ### IntelliJ IDEA IntelliJ IDEA can integrate with MCP servers through plugins or external tools. #### Configuration Steps 1. **Install MCP Plugin** (if available) - Go to **Settings** โ†’ **Plugins** - Search for "Model Context Protocol" or "MCP" - Install the plugin and restart IntelliJ IDEA 2. **Configure External Tool** (alternative approach) If no plugin is available, set up MCP as an external tool: **Step 1: Create External Tool** - Go to **Settings** โ†’ **Tools** โ†’ **External Tools** - Click the **+** button to add a new tool - Configure: - **Name:** `Zebrunner MCP Server` - **Program:** `node` - **Arguments:** `/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js` - **Working directory:** `$ProjectFileDir$` **Step 2: Set Environment Variables** - In the External Tool configuration, click **Environment Variables** - Add: - `ZEBRUNNER_URL=https://your-instance.zebrunner.com` - `ZEBRUNNER_LOGIN=your-username` - `ZEBRUNNER_TOKEN=your-api-token` 3. **Run the MCP Server** - Go to **Tools** โ†’ **External Tools** โ†’ **Zebrunner MCP Server** - The server will start and listen for requests #### Using .env File (Recommended for IntelliJ) Create a `.env` file in your project root: ```bash ZEBRUNNER_URL=https://your-instance.zebrunner.com ZEBRUNNER_LOGIN=your-username ZEBRUNNER_TOKEN=your-api-token DEBUG=false ``` Then run the server with: ```bash node /usr/local/lib/node_modules/mcp-zebrunner/dist/server.js ``` --- ### ChatGPT Desktop ChatGPT Desktop may support MCP servers through custom integrations. #### Configuration Steps 1. **Open ChatGPT Desktop Settings** - Navigate to **Settings** โ†’ **Integrations** or **Advanced** 2. **Add Custom MCP Server** (if supported) ```json { "mcp_servers": { "zebrunner": { "command": "node", "args": ["/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js"], "environment": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token" } } } } ``` 3. **Alternative: Run as Standalone Server** If direct integration isn't available, run the MCP server separately: ```bash # Set environment variables export ZEBRUNNER_URL="https://your-instance.zebrunner.com" export ZEBRUNNER_LOGIN="your-username" export ZEBRUNNER_TOKEN="your-api-token" # Run the server node /usr/local/lib/node_modules/mcp-zebrunner/dist/server.js ``` Then configure ChatGPT Desktop to connect to the running server. **Note:** MCP support in ChatGPT Desktop may vary. Check the official ChatGPT documentation for the latest integration methods. --- ## Verification & Testing ### 1. Verify Installation Check that the package is installed correctly: ```bash # Global installation which node npm list -g mcp-zebrunner # Local installation npm list mcp-zebrunner ls -la node_modules/mcp-zebrunner/dist/ ``` ### 2. Test Server Manually Run the server manually to check for errors: ```bash # Set environment variables export ZEBRUNNER_URL="https://your-instance.zebrunner.com" export ZEBRUNNER_LOGIN="your-username" export ZEBRUNNER_TOKEN="your-api-token" # Run the server node /usr/local/lib/node_modules/mcp-zebrunner/dist/server.js ``` **Expected Output:** - The server should start without errors - You should see logs indicating MCP server initialization - If `DEBUG=true`, you'll see detailed configuration output ### 3. Test in Client **For Claude Desktop:** 1. Restart Claude Desktop 2. Open a new conversation 3. Type a prompt related to Zebrunner (e.g., "Show me test cases from Zebrunner") 4. Check if Claude can access Zebrunner data **For Cursor:** 1. Reload Cursor window 2. Open the MCP panel or command palette 3. Look for "Zebrunner" in the list of available servers 4. Try executing a Zebrunner-related command **For IntelliJ IDEA:** 1. Run the external tool or plugin 2. Check the console for startup logs 3. Verify no errors appear **For ChatGPT Desktop:** 1. Restart ChatGPT Desktop 2. Check the integrations panel 3. Verify the Zebrunner MCP server appears in the list ### 4. Test API Connection Create a test script to verify API connectivity: ```javascript // test-zebrunner-connection.js import { ZebrunnerClient } from 'mcp-zebrunner'; const client = new ZebrunnerClient({ baseUrl: process.env.ZEBRUNNER_URL, login: process.env.ZEBRUNNER_LOGIN, authToken: process.env.ZEBRUNNER_TOKEN }); // Test connection async function testConnection() { try { const projects = await client.getProjects(); console.log('โœ… Connection successful!'); console.log(`Found ${projects.length} projects`); } catch (error) { console.error('โŒ Connection failed:', error.message); } } testConnection(); ``` Run the test: ```bash node test-zebrunner-connection.js ``` --- ## Troubleshooting ### Common Issues #### Issue 1: "Module not found" Error **Problem:** Client can't find the mcp-zebrunner module. **Solution:** - Verify installation: `npm list -g mcp-zebrunner` - Check the path in your configuration file - For global installation, find the correct path: ```bash npm root -g # Then use: <npm-root>/mcp-zebrunner/dist/server.js ``` #### Issue 2: "Missing required environment variables" Error **Problem:** Required environment variables are not set. **Solution:** - Ensure all 3 required variables are set: - `ZEBRUNNER_URL` - `ZEBRUNNER_LOGIN` - `ZEBRUNNER_TOKEN` - Check for typos in variable names - Verify the values are correct (no extra spaces, quotes, etc.) #### Issue 3: Authentication Failed **Problem:** "401 Unauthorized" or similar authentication errors. **Solution:** - Verify your Zebrunner token is valid and not expired - Regenerate the token in Zebrunner if needed - Check that `ZEBRUNNER_URL` doesn't have trailing slashes - Ensure `ZEBRUNNER_LOGIN` matches your Zebrunner username exactly #### Issue 4: Timeout Errors **Problem:** Requests to Zebrunner API are timing out. **Solution:** - Increase the `TIMEOUT` value: `"TIMEOUT": "60000"` (60 seconds) - Check your network connection to Zebrunner - Verify the Zebrunner instance is accessible from your network - Consider adjusting `RETRY_ATTEMPTS` and `RETRY_DELAY` #### Issue 5: Server Not Appearing in Client **Problem:** The MCP server doesn't show up in the client. **Solution:** - Restart the client application completely - Check client logs for error messages - Verify the configuration file syntax (valid JSON) - Ensure the configuration file is in the correct location - Try running the server manually to check for errors #### Issue 6: Rate Limiting Errors **Problem:** Getting rate limit errors from Zebrunner API. **Solution:** - Enable rate limiting: `"ENABLE_RATE_LIMITING": "true"` - Adjust rate limiting settings: - `"MAX_REQUESTS_PER_SECOND": "3"` (lower value) - `"RATE_LIMITING_BURST": "5"` (lower value) - Contact your Zebrunner administrator about API limits ### Debug Mode Enable debug mode for detailed logging: ```json { "env": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token", "DEBUG": "true" } } ``` Debug mode will show: - Configuration loading details - API request/response information - Rules engine detection status - Environment variable values (tokens are masked) ### Getting Help If you continue to experience issues: 1. **Check the logs** - Look for error messages in: - Client application logs - Terminal output (if running manually) - System console logs 2. **Review the documentation**: - Main README: https://github.com/maksimsarychau/mcp-zebrunner - Changelog: https://github.com/maksimsarychau/mcp-zebrunner/blob/main/change-logs.md 3. **Report issues**: - GitHub Issues: https://github.com/maksimsarychau/mcp-zebrunner/issues - Include: - Client name and version - Operating system - Node.js version - Error messages (with sensitive data removed) - Configuration (with credentials removed) --- ## Additional Resources - **npm Package**: https://www.npmjs.com/package/mcp-zebrunner - **GitHub Repository**: https://github.com/maksimsarychau/mcp-zebrunner - **MCP Registry**: Search for "zebrunner" at https://registry.modelcontextprotocol.io - **License**: GNU AGPL v3.0 --- ## Quick Reference ### Minimal Configuration (Required Only) ```json { "mcpServers": { "zebrunner": { "command": "node", "args": ["/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js"], "env": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token" } } } } ``` ### Full Configuration (With Optional Settings) ```json { "mcpServers": { "zebrunner": { "command": "node", "args": ["/usr/local/lib/node_modules/mcp-zebrunner/dist/server.js"], "env": { "ZEBRUNNER_URL": "https://your-instance.zebrunner.com", "ZEBRUNNER_LOGIN": "your-username", "ZEBRUNNER_TOKEN": "your-api-token", "DEBUG": "true", "TIMEOUT": "60000", "RETRY_ATTEMPTS": "5", "RETRY_DELAY": "2000", "MAX_PAGE_SIZE": "50", "DEFAULT_PAGE_SIZE": "20", "ENABLE_RULES_ENGINE": "true", "STRICT_URL_VALIDATION": "true", "ENABLE_RATE_LIMITING": "true", "MAX_REQUESTS_PER_SECOND": "5", "RATE_LIMITING_BURST": "10" } } } } ``` --- **Version:** 5.12.0 **Last Updated:** December 2, 2025 **Maintainer:** Maksim Sarychau

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/maksimsarychau/mcp-zebrunner'

If you have feedback or need assistance with the MCP directory API, please join our Discord server