Skip to main content

TestRail MCP Server

smithery badge

A Model Context Protocol (MCP) server for TestRail that allows interaction with TestRail's core entities through a standardized protocol.

Features

  • Authentication with TestRail API
  • Access to TestRail entities:
    • Projects
    • Cases
    • Runs
    • Results
    • Datasets
  • Full support for the Model Context Protocol
  • Compatible with any MCP client (Claude Desktop, Cursor, Winsurf, etc.)

Installation

Installing via Smithery

To install testrail-mcp for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @sker65/testrail-mcp --client claude

Manual Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/testrail-mcp.git
    cd testrail-mcp
    
  2. Create and activate a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install dependencies:

    pip install -e .
    

Configuration

The TestRail MCP server requires specific environment variables to authenticate with your TestRail instance. These must be set before running the server.

  1. Create a .env file in the root directory of the project:

    TESTRAIL_URL=https://your-instance.testrail.io
    TESTRAIL_USERNAME=your-email@example.com
    TESTRAIL_API_KEY=your-api-key
    

    Important Notes:

    • TESTRAIL_URL should be the full URL to your TestRail instance (e.g., https://example.testrail.io)
    • TESTRAIL_USERNAME is your TestRail email address used for login
    • TESTRAIL_API_KEY is your TestRail API key (not your password)
      • To generate an API key, log in to TestRail, go to "My Settings" > "API Keys" and create a new key
  2. Verify that the configuration is loaded correctly:

    uvx testrail-mcp --config
    

    This will display your TestRail configuration information, including your URL, username, and the first few characters of your API key for verification.

If you're using this server with a client like Claude Desktop or Cursor, make sure the environment variables are accessible to the process running the server. You may need to set these variables in your system environment or ensure they're loaded from the .env file.

Usage

Running the Server

The server can be run directly using the installed script:

uvx testrail-mcp

This will start the MCP server in stdio mode, which can be used with MCP clients that support stdio communication.

Using with MCP Clients

Claude Desktop

In Claude Desktop, add a new server with the following configuration:

{
  "mcpServers": {
    "testrail": {
      "command": "uvx",
      "args": [
        "testrail-mcp"
      ],
      "env": {
        "TESTRAIL_URL": "https://your-instance.testrail.io",
        "TESTRAIL_USERNAME": "your-email@example.com",
        "TESTRAIL_API_KEY": "your-api-key"
      }
    }
  }
}

Cursor

In Cursor, add a new custom tool with the following configuration:

{
  "name": "TestRail MCP",
  "command": "uvx",
  "args": [
    "testrail-mcp"
  ],
  "communication": "stdio",
  "env": {
    "TESTRAIL_URL": "https://your-instance.testrail.io",
    "TESTRAIL_USERNAME": "your-email@example.com",
    "TESTRAIL_API_KEY": "your-api-key"
  }
}

Winsurf

In Winsurf, add a new tool with the following configuration:

{
  "name": "TestRail MCP",
  "command": "uvx",
  "args": [
    "testrail-mcp"
  ],
  "protocol": "mcp",
  "env": {
    "TESTRAIL_URL": "https://your-instance.testrail.io",
    "TESTRAIL_USERNAME": "your-email@example.com",
    "TESTRAIL_API_KEY": "your-api-key"
  }
}

Testing with MCP Inspector

For testing and debugging, you can use the MCP Inspector:

npx @modelcontextprotocol/inspector \
  -e TESTRAIL_URL=<your-url> \
  -e TESTRAIL_USERNAME=<your-username> \
  -e TESTRAIL_API_KEY=<your-api-key> \
  uvx testrail-mcp

This will open a web interface where you can explore and test all the available tools and resources.

Development

This server is built using:

  • FastMCP - A Python framework for building MCP servers
  • Requests - For HTTP communication with TestRail API
  • python-dotenv - For environment variable management

License

MIT

Metadata

Release files for testrail-mcp 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for testrail-mcp 0.1.5
File Size Uploaded
testrail_mcp-0.1.5.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for testrail-mcp 0.1.5
File Interpreter ABI Platform
testrail_mcp-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 19.0 kB

Release files / testrail_mcp-0.1.5.tar.gz

Download URL testrail_mcp-0.1.5.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a7514f1f610b10ee2308fb166b714f299817dd128891e08ac0258bbb8b19dbac
BLAKE2b-256 checksum
How to use checksums
d6b86973081e2bd62be0466c803a426a6d06daf321d0c2d17d73c44eb2c3c7a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / testrail_mcp-0.1.5-py3-none-any.whl

Download URL testrail_mcp-0.1.5-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
440c332376d6e84be2357b8a3875dc5f9878c095c16ade52ff5955ca693fc686
BLAKE2b-256 checksum
How to use checksums
0528fb822c09c63b978f9500075d42f6da94c0d26276115aa7072ebae9484537
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page