npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@uarlouski/testrail-mcp-server

v1.9.0

Published

Model Context Protocol (MCP) server for TestRail integration, enabling LLMs to fetch test cases and metadata.

Readme


🌟 Why Choose TestRail MCP Server?

Managing test cases manually is tedious and error-prone. With the TestRail MCP Server, your AI assistant (whether it’s Claude, Cursor, Windsurf, or any MCP-compliant client) interacts directly with your TestRail instance. Instruct it to find test cases, draft new ones, kick off test runs, and record test results—all through natural conversation.

No context switching. No tedious copy-pasting. Just ask your AI.

✨ Key Features & Capabilities

| Capability | Description | |------------|-------------| | 🔍 Intelligent Discovery | Browse projects, test suites, and sections to automatically map your QA organization. | | 📋 Full Case Management | Fetch, create, update, and bulk-edit test cases with comprehensive custom field support. | | ▶️ Actionable Execution | Create test runs, update results by test_id or case_id, attach files, and track statuses. | | 🧠 Context-Aware AI | Dynamically exposes templates, fields, priorities, and statuses so LLMs generate valid, structured data. |

🚀 Quick Start Guide

1. Obtain Your TestRail API Key

Navigate to My Settings → API Keys in your TestRail platform and generate a new key for authentication.

2. Configure Your MCP Client

Add the server to your chosen MCP client configuration. The Claude Desktop example is shown below; Cursor, Windsurf, and other clients use the same pattern (see the collapsible sections further down).

🤖 Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "testrail": {
      "command": "npx",
      "args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
      "env": {
        "TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
        "TESTRAIL_USERNAME": "[email protected]",
        "TESTRAIL_API_KEY": "your-api-key",
        "TESTRAIL_ENABLE_SHARED_STEPS": "true"
      }
    }
  }
}

Open Settings → Features → MCP and add a new configuration:

{
  "mcpServers": {
    "testrail": {
      "command": "npx",
      "args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
      "env": {
        "TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
        "TESTRAIL_USERNAME": "[email protected]",
        "TESTRAIL_API_KEY": "your-api-key"
      }
    }
  }
}

Update your Windsurf MCP configuration file:

{
  "mcpServers": {
    "testrail": {
      "command": "npx",
      "args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
      "env": {
        "TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
        "TESTRAIL_USERNAME": "[email protected]",
        "TESTRAIL_API_KEY": "your-api-key"
      }
    }
  }
}

Any MCP-compliant client can utilize this server. The pattern is universal—point your client at the npx command with the required environment variables.

3. See It in Action

Once configured, turbo-charge your QA workflow by asking your AI assistant:

  • "List all projects in TestRail to find the latest active project."
  • "Show me all test cases in section 5 of project 3."
  • "Create a comprehensive test case for 'Login Validation' with detailed steps."
  • "Start a new test run containing cases from section 5."
  • "Mark test case ID 1042 as passed with the comment 'Tested successfully on staging'."

⚙️ Environment Variables

| Variable | Description | Required | |----------|-------------|:--------:| | TESTRAIL_INSTANCE_URL | Your TestRail instance URL (e.g., https://example.testrail.io) | ✅ | | TESTRAIL_USERNAME | Your TestRail user email address | ✅ | | TESTRAIL_API_KEY | Your TestRail API key (Guide) | ✅ | | TESTRAIL_ENABLE_SHARED_STEPS | Set to true to enable Shared Steps management tools | |


🛠️ Complete Tool Reference

The TestRail MCP Server provides heavily typed, descriptive tools designed specifically for LLM interaction:

🔭 Discovery & Navigation

| Tool | Functionality | |------|-------------| | get_projects | List all available active and completed projects in your instance. | | get_sections | Navigate the precise folder/section hierarchy of any test suite. |

📋 Test Case Management

| Tool | Functionality | |------|-------------| | get_cases | Query test cases with advanced filtering (priority, template, type, etc.) and pagination. | | get_case | Fetch complete, structured details of a specific test case, including custom steps and fields. | | add_case | Seamlessly create a new test case equipped with robust custom field validation. | | update_case | Modify an existing test case's steps, metadata, or titles. | | update_cases | Execute bulk-updates on multiple test cases simultaneously to save time. |

▶️ Test Execution & Tracking

| Tool | Functionality | |------|-------------| | add_run | Generate a new, focused test run directly in TestRail. | | get_tests | Retrieve individual tests for a specific test run, with optional status filtering. | | add_results | Submit test results to a test run using the specific test_id. | | add_results_for_cases | Submits results to a run mapping directly to case_ids, streamlining automation workflows. | | add_attachment_to_run | Attach logs, files, or zipped artifacts directly to an ongoing test run. |

🔗 Shared Steps (Optional)

| Tool | Functionality | |------|-------------| | get_shared_steps | List shared test steps for a project with optional reference filtering. | | get_shared_step | Retrieve precise details of a specific shared test step set. | | get_shared_step_history | View the complete audit trail and version history of a shared step set. | | add_shared_step | Create a new reusable set of shared test steps. | | update_shared_step | Modify an existing shared step set (changes propagate to all linked test cases). | | delete_shared_step | Securely delete a shared step entity. |

🧠 System Metadata

| Tool | Functionality | |------|-------------| | get_statuses | Systematically list all configured test statuses (Passed, Failed, Blocked, Retest, etc.). | | get_priorities | Retrieve priority levels configured within your instance structure. | | get_case_fields | Discover custom field definitions, formats, and UI dropdown options. Supports filtering by project_id. | | get_templates | Identify available case templates to mandate correct AI structuring. |


🤝 Contributing

Open-source contributions are actively welcomed! Please feel free to open an issue for feature requests or submit a pull request for improvements.

📜 License

This project is securely licensed under the Apache License 2.0.