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, andadd_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
- 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.
- Install uv. pestrail isn't
on PyPI yet, so it runs from GitHub with
uvx --from git+https://github.com/poyrazemun/pestrail pestrail. - 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
- Configuration: all settings,
.envfiles, proxies/TLS, more client examples - Safety model and limits
- Troubleshooting
- Contributing · Security policy
License
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.