sigrix-launcher
Start an MCP server you bought on Sigrix from the client you already use — Claude Code, Claude Desktop, Cursor, or any MCP client that starts a server over stdio.
Some Sigrix listings are delivered by Sigrix rather than installed from a public registry: the seller's server is a package only its buyers can download. This launcher is what your client starts for one. On every start it:
- asks Sigrix whether your token owns the listing;
- downloads the seller's package and verifies it before anything is written;
- installs it into an environment of its own, once per version;
- starts the seller's server on its own stdio, so your client talks to the server directly.
It speaks Postern, the open protocol for checking a purchase and fetching what was bought, using the protocol's reference client code.
Configure your client
The listing's page shows this with its identifier filled in, once you own it — copy it from there. <seller>/<listing-id> below is that identifier, and YOUR_SIGRIX_TOKEN is where your token goes.
Claude Code
claude mcp add modelwatch -e SIGRIX_TOKEN=YOUR_SIGRIX_TOKEN -- uvx sigrix-launcher run <seller>/<listing-id>
Claude Desktop (claude_desktop_config.json) and Cursor (.cursor/mcp.json)
{
"mcpServers": {
"modelwatch": {
"command": "uvx",
"args": [
"sigrix-launcher",
"run",
"<seller>/<listing-id>"
],
"env": {
"SIGRIX_TOKEN": "YOUR_SIGRIX_TOKEN"
}
}
}
}
uvx comes with uv. pipx run sigrix-launcher run <seller>/<listing-id> works as well. Python 3.11 or newer.
Arguments after the identifier are passed to the seller's server: ... run <seller>/<listing-id> -- --verbose. Any other variable in the env block (an API key the listing asks for, say) reaches the server as it is.
Your token
SIGRIX_TOKEN is a runner token for this listing: create one under Runner tokens on your Sigrix account's plugins page, https://sigrix.io/account/plugins, one for each machine. It covers this one listing, and revoking it there stops this configuration and nothing else. The plugin feed token on the same page works too and covers everything you bought, but regenerating it replaces it everywhere at once.
The launcher sends it only in the Authorization header of its two requests to Sigrix, never writes it to disk, and starts the seller's server without it — nor any other SIGRIX_ or POSTERN_ variable.
When it does not start
It prints one sentence on stderr saying why and exits; your client shows it in the server's log.
- Not owned. The token has not bought this listing, the purchase was refunded, or the token has since been regenerated. Sigrix answers all three the same way on purpose, so the message names all three. Nothing is downloaded.
- Offline. If Sigrix confirmed your purchase within its grace period (a day, for Sigrix) and a version is already installed here, that version starts. Otherwise the launcher asks you to reconnect.
- Nothing to install yet. The seller's newest version may still be waiting for Sigrix's review, or a version may have been withdrawn. A withdrawn version is not started from the cache either.
- Withdrawn listing. Buyers of a listing its seller withdrew keep access for a year; after that, the message gives the date it ended.
A refund takes effect at the next start: the purchase is checked when the server starts, not while it runs.
What it keeps on your machine
Everything is under one folder: ~/.cache/sigrix-launcher on Linux, ~/Library/Caches/sigrix-launcher on macOS, %LOCALAPPDATA%\sigrix-launcher on Windows. SIGRIX_LAUNCHER_HOME moves it. For each listing: every version you have started, each in its own environment, and Sigrix's last answer about your purchase, stored with a fingerprint of the token rather than the token. Delete the folder whenever you like; the next start downloads again.
Variables
| Variable | |
|---|---|
SIGRIX_TOKEN |
Required. A runner token for this listing, from the plugins page. |
SIGRIX_LAUNCHER_HOME |
Optional. Where installed versions are kept. |
POSTERN_DISTRIBUTOR |
Optional; defaults to https://sigrix.io. For testing against another distributor. Plain http:// is accepted only to a loopback address. |
Development
pip install -e ".[dev]"
ruff check . && ruff format --check . && pytest
The tests run a distributor on loopback and, for one of them, install a real wheel and talk to the started server over a real pipe. src/sigrix_launcher/_postern/ is a copy of the Postern reference runner's client code; change it upstream, never here.
Licence
Apache-2.0. The Sigrix name and logo are not covered by the licence — see NOTICE.
Release files for sigrix-launcher 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 | |
|---|---|---|---|
| sigrix_launcher-0.1.0.tar.gz | 58.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sigrix_launcher-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.1 kB
Release files / sigrix_launcher-0.1.0.tar.gz
| Download URL | sigrix_launcher-0.1.0.tar.gz |
|---|---|
| Size | 58.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a5967fceb0ebf810cd96c2f3068a23e73447813eab7f94ff6f91e715c71d0ba
|
|
BLAKE2b-256 checksum How to use checksums |
0ede31cba9ad9391b3a337c524c6c83ec568ad8203f8c839a2201c107b0f8e4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / sigrix_launcher-0.1.0-py3-none-any.whl
| Download URL | sigrix_launcher-0.1.0-py3-none-any.whl |
|---|---|
| Size | 61.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a40882f33f5c14c31c5453a7b864df30404fce335f1c51a069778e425dbfb83
|
|
BLAKE2b-256 checksum How to use checksums |
d53f37b315be766c8f576b0843df25462257d50f063819757cfda177790e6fef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log