Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.1.1 instead.
Reason given by maintainers: outdated install instructions

pestrail

A safety-first MCP server for TestRail. Let Claude Desktop, Claude Code or any MCP client do everyday QA work in TestRail: browse projects, cases, runs and plans, read tests and results, add results and attach files (logs, screenshots, reports).

pestrail cannot delete anything, cannot create, edit or move test cases, suites or sections, and cannot close runs or plans. These operations are missing by design and blocked in code, not just in prompts. Everything it writes is additive: new results and new attachments. See docs/safety.md.

Community project, not affiliated with or endorsed by TestRail, Gurock Software or Idera, Inc. "TestRail" is a trademark of its respective owner.

Tools

  • Read (29): projects, suites, sections, cases, case/result fields, statuses, priorities, configs, milestones, plans, runs, tests, results, attachment lists, users.
  • Write (9, hidden in read-only mode): add_result, add_result_for_case, add_results_for_cases (report a whole test session in one call), add_result_with_attachments, and add_attachment_to_result / _run / _case / _plan / _plan_entry.

IDs can be plain numbers or TestRail-style (C1234, R56, T678), and statuses can be given by name ("Failed", custom statuses too).

Quick start

  1. Get an API key. A TestRail admin enables the API once (Administration > Site Settings > API). Then go to My Settings > API Keys > Add Key. Prefer a dedicated user with a role that can only view and add results.
  2. Install uv. pestrail isn't on PyPI yet, so it runs from GitHub with uvx --from git+https://github.com/poyrazemun/pestrail pestrail.
  3. Add it to your MCP client. Start read-only and enable writes later.

Claude Desktop: open Settings > Desktop app > Extensions > Manage > Edit Config, add the block below, then quit Claude Desktop completely and start it again.

{
  "mcpServers": {
    "testrail": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/poyrazemun/pestrail", "pestrail"],
      "env": {
        "TESTRAIL_URL": "https://your-company.testrail.io",
        "TESTRAIL_USERNAME": "you@your-company.com",
        "TESTRAIL_API_KEY": "your-api-key",
        "TESTRAIL_READ_ONLY": "true",
        "PESTRAIL_ENV_FILE": "none"
      }
    }
  }
}

Claude Code:

claude mcp add testrail --scope user \
  -e TESTRAIL_URL=https://your-company.testrail.io \
  -e TESTRAIL_USERNAME=you@your-company.com \
  -e TESTRAIL_API_KEY=your-api-key \
  -e TESTRAIL_READ_ONLY=true \
  -e PESTRAIL_ENV_FILE=none \
  -- uvx --from git+https://github.com/poyrazemun/pestrail pestrail

(In PowerShell, end lines with a backtick ` instead of \.)

Enable writes: remove TESTRAIL_READ_ONLY and set TESTRAIL_ATTACHMENT_ROOTS to the folders holding your test artifacts (;-separated on Windows, : on macOS/Linux). Write mode won't start without it. Optionally limit writes with TESTRAIL_ALLOWED_PROJECT_IDS / TESTRAIL_ALLOWED_RUN_IDS.

Key settings

Variable Purpose
TESTRAIL_URL, TESTRAIL_USERNAME, TESTRAIL_API_KEY Required. https:// only.
TESTRAIL_READ_ONLY true registers only the read tools.
TESTRAIL_ATTACHMENT_ROOTS Folders attachments may be uploaded from. Required in write mode.
TESTRAIL_ALLOWED_PROJECT_IDS / TESTRAIL_ALLOWED_RUN_IDS Optional: confine writes to these projects/runs.

The full reference covers timeouts, .env files, proxies and corporate TLS: docs/configuration.md.

Example prompts

  • "In run R56, which tests are assigned to me? My TestRail email is me@your-company.com."
  • "Show me all Failed or Retest tests in run R56 with their latest comment."
  • "Report my session to run R56: C101 passed, C102 failed (defect UI-55), C103 blocked."
  • "Add a Failed result to C1234 in R56 and attach C:\artifacts\login.log."

Tip: ask the assistant to show you what it will add and wait for your OK. pestrail can't remove a result once it's added.

More

License

MIT

Metadata

Release files for pestrail 0.1.0

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

Source distribution (sdist)

Source distribution for pestrail 0.1.0
File Size Uploaded Provenance Actions
pestrail-0.1.0.tar.gz 52.7 kB Without provenance Details for pestrail-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pestrail 0.1.0
File Interpreter ABI Platform Actions
pestrail-0.1.0-py3-none-any.whl Python 3 none any Details for pestrail-0.1.0-py3-none-any.whl

Total release size: 92.0 kB

Release files / pestrail-0.1.0.tar.gz

Download URL pestrail-0.1.0.tar.gz
Size 52.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2d3e628a94d4188301ed6cd88206a5fc4bf989117f734290652a2b9b6843eadd
BLAKE2b-256 checksum
How to use checksums
f1135b8edcf7d57a5f607be2ac21ef46ced51748fb5721d5cfd00a435f1471d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pestrail-0.1.0-py3-none-any.whl

Download URL pestrail-0.1.0-py3-none-any.whl
Size 39.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c4ae5f946e5e460a218b0944753627cf54473bfb13e0f713d7caaeadef285fb0
BLAKE2b-256 checksum
How to use checksums
7da3eda5052fa50e63d6945f8e40d4d762f75f2ba6cccdbc5ffd5e43408313e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for pestrail 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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