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: Unbounded mcp dependency resolves to mcp 2.x and fails to start; use 0.1.1 or later.

mantivor-collector

Runtime security monitoring for an MCP server you run.

The collector is a stdio proxy. You put it between your agent and one MCP server: your agent launches the collector instead of the server, and the collector launches the server. Every response the server returns is forwarded to your agent byte for byte, and inspected on the way past for things that look like an attack on the agent — hidden instructions, role injection, encoded payloads and exfiltration patterns in tool output. What it finds is reported to your Mantivor organisation, where you read it in the dashboard. The rules it matches against are downloaded at startup and change over time, so what it detects is not fixed by the version you install.

It is a monitor, not a firewall. It never blocks, filters or alters a response.

Before it will do anything

Two things have to be true, and it is better to read them here than to meet them as an error on your first run:

  1. You need a Mantivor organisation and an API key. Sign up at mantivor.io, add the server you want to monitor, then create a key under Settings → API keys. A collector key needs exactly two scopes, runtime:write and ruleset:read. Scopes are fixed when a key is created — to change them, mint a new key.
  2. A person must confirm, in the dashboard, that they are authorised to observe that server. An API key cannot grant this to itself. The confirmation lasts 30 days and can be withdrawn at any time.

Without the first, the collector exits and tells you to log in. Without the second, it starts, forwards your traffic normally, and tells you loudly that it is not monitoring.

pip install mantivor-collector
mantivor login                       # the `mantivor` CLI installs alongside this package
mantivor-collector run \
  --server-id srv_a1b2c3 \
  --upstream python --upstream-arg -m acme.mcp

mantivor-collector doctor --server-id srv_a1b2c3 checks every one of those gates before you wire anything into your agent. Start there.

Names that look like typos but are not

This package is mantivor-collector, but it imports as vorlox_collector and reads environment variables called VORLOX_API_KEY and VORLOX_API_URL.

Vorlox was this product's former name. The import package and the environment variables deliberately kept the old spelling: renaming them would break every existing install and pipeline for no functional gain. They are the correct, current names — not stale documentation, and not something you need to work around.

What it does to your traffic

Nothing. The response your agent receives is always the one your server sent, byte for byte. Inspection happens alongside; if it fails, the call completes normally.

If the collector cannot monitor, it keeps forwarding. A revoked key, an expired authorisation, a plan change, an unreachable API — all of them stop detection. None of them stops your traffic, and none of them exits. You get a loud, repeated warning on stderr instead of a broken agent.

That is one rule to remember: if something is wrong, your traffic still flows and Mantivor tells you it is not watching.

Consent is re-checked every five minutes while running. If it is withdrawn or expires mid-session, observation stops there and then, buffered events are discarded, and forwarding continues.

What leaves your machine

By default, response text does not. A reported event carries which rule matched, its category and weight, where in the response it matched, and a score. It does not carry the matched text.

You can opt in with --redaction none, which adds up to 200 characters of the matched text per signal. The setting is recorded on every event, so the dashboard shows which choice produced each record.

Both the startup banner and mantivor-collector doctor state the current setting in the same words.

Diagnosing it

mantivor-collector doctor --server-id srv_a1b2c3

Runs every check the collector runs at startup and prints each verdict — credential, connectivity, scopes, ruleset, redaction, server, consent, entitlement — exiting non-zero on the first failure. Paste this output into a support request; it is what we would ask for.

Credentials

The collector reads the key stored by mantivor login (from the mantivor CLI, which is installed as a dependency of this package), or VORLOX_API_KEY if set, which wins. A collector key cannot read your findings, start scans, or register servers.

Use one key per collector host. Revoking then affects that machine alone. Each install also generates a random collector id, so the same key presenting from two machines is visible in your organisation's records — which is how a cloned or imaged machine gets noticed.

Detection rules

The collector downloads its detection rules from the Mantivor API at startup and holds them in memory. They are never written to disk.

Being direct about what that does and does not achieve:

A customer with a valid key can extract the ruleset from the collector's memory, and we are not preventing that — no design that runs on someone else's machine can. What changes is that bulk anonymous access ends and access becomes attributable.

Concretely: the rules are not in a package anyone can download without an account, every full fetch is tied to a key and recorded, and access is revocable. We do not claim more than that.

We also do not vary the rules per customer to trace leaks. Doing so would mean different customers get different detection, trading your protection for our attribution, and that is not a trade we will make.

If the rules cannot be downloaded, or require a newer collector than you have installed, the collector refuses them entirely and detects nothing rather than applying the part it understands — a partially applied ruleset scores lower, so a real attack would be reported as clean. It tells you loudly, and keeps forwarding your traffic.

Buffering and delivery

Events are buffered in memory, never on disk, and posted to your Mantivor organisation in batches of up to 100. A batch is sent every 30 seconds, and immediately once a batch's worth has accumulated — so a burst does not sit waiting for a tick, and a quiet server's single detection does not sit for half an hour. A last batch is sent when your agent disconnects.

The buffer holds at most 1000 events and drops anything older than 6 hours; when it fills, the oldest are dropped and the count is reported. Buffered events are lost if the process is killed — that is the cost of never writing your response data to disk, and the flush interval is what keeps the window small.

On a refusal:

Daily event limit reached (429) Buffered events are dropped, not held — holding them would deliver a flood when the window reopens. The count is reported.
Our server erred, or the network failed The batch goes back on the queue, oldest first, and is retried.
Authorisation withdrawn or expired The buffer is discarded and monitoring stops. Your traffic keeps flowing.
The batch was malformed Discarded rather than retried forever, and reported as our bug.

A retried batch cannot double-report: each event is stamped with a unique id when it is detected, not when it is sent, so a re-send carries the same ids and the API recognises them.

mantivor-collector prints a status line after each delivery — observed=… events=… delivered=… buffered=… dropped=… — so "detected" and "actually reached Mantivor" are two numbers you can compare rather than one you have to trust.

Install size

This package depends on the MCP SDK, which brings roughly 44 MB of dependencies — including a web server framework it uses for transports a stdio proxy never touches. That is why the collector is a separate package from the mantivor CLI, which stays at about 2.7 MB for CI use.

Licence

Proprietary. Installing and running it against your own Mantivor organisation is permitted; redistribution and modification are not. The full terms ship in the package as LICENSE.

Support: mantivor.io/support · Questions about the licence: contact@mantivor.io

Metadata

Release files for mantivor-collector 0.1.0

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

Built distribution (wheel)

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

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

Download URL mantivor_collector-0.1.0-py3-none-any.whl
Size 52.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df348dccbb6dd25fbda12a518821ba584a0b2608b1664b6e6bd28a7a7c4c557e
BLAKE2b-256 checksum
How to use checksums
c3c3c04640ec62aebb860aac04065bdaa6a2d382c76eb747e2d1917a93932fc6
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 Aug 9, 2026.

Transparency log

Security for mantivor-collector 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.

Full provenance

All 1 file in this release has been uploaded with provenance metadata.

Attestation for mantivor_collector-0.1.0-py3-none-any.whl

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 Aug 9, 2026.

Transparency log

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

1 release file Full 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