trackmcp
Install the privacy release with pip install trackmcp==0.1.1.
Correlation is disabled by default and does not change MCP schemas. External mode accepts a synchronous resolver returning an already anonymized opaque handle from bounded request metadata. Invalid, oversized, credential-like, or resolver-failed values are recorded as missing. correlation_mode="issued" is exposed for contract parity but is not enabled by the current Python MCP middleware because it has no stable schema-rewrite-and-strip seam; it therefore records missing provenance until a compatible adapter exists. Resolvers must not return emails, tokens, URLs, raw user IDs, prompts, completions, or private reasoning.
Observe the MCP server boundary without capturing a host's private model turn.
Events emitted by this server SDK carry observation_source="server". The
P1-04 Node client adapter is TypeScript-only; Python client transports are not
supported in that workstream. Legacy events without provenance remain nullable
and are treated as legacy_unknown.
import os
from trackmcp import with_trackmcp
app = with_trackmcp(server, api_key=os.environ["TRACKMCP_KEY"], service="my-mcp-server")
Telemetry is batched, redacted locally, and fail-open. Payload mode defaults to redacted; every default payload is recursively sanitized before it enters the queue or an HTTP body. Common sensitive keys, emails, bearer/basic tokens, JWTs, private-key text, credential-like text, binary/base64 resources, and credential-bearing URLs are replaced or omitted, and payloads are bounded to 32 KiB, depth 6, 50 keys/items per container, and 2,048 characters per string. Use metadata to omit arguments/results, or opt into full knowing it remains bounded and sanitized. The ingest route independently caps payloads at 128 KiB and requests at 1 MiB as a last-line defense for non-SDK clients.
redact keeps compatibility with explicit dotted paths, while redact_keys adds case-insensitive exact key names. redact_event receives an already sanitized event, may mutate it, or can return None to drop it. Hook failures drop only the event. The SDK queue is bounded to 500 events or 2 MiB; failed deliveries are requeued within those limits.
For an explicit business outcome, optionally call app.trackmcp.workflow("issue_resolution", "completed") from your application code. This is an application-emitted signal, not proof that an answer was correct. Payloads default to bounded redacted mode; use payload_mode="metadata" to omit arguments/results. See the Python docs, configuration reference, and API docs for trace and latency semantics.
Intent and capability gaps are explicit, bounded signals. A safe context value is
captured as intent_source="context_parameter"; an intent_fallback callback is
labeled fallback when it supplies a value. Applications that call capture with
intent_source="external_callback" must supply the context themselves. Values
containing credentials, URLs, emails, or oversized text are omitted and become
missing. Report a missing tool or capability with:
app.trackmcp.report_missing("bulk_export", "Export all matching records")
# or: from trackmcp import trackmcp_report_missing
trackmcp_report_missing("bulk_export")
The report is a bounded custom event named trackmcp_report_missing and retains
correlation provenance. The current Python MCP middleware does not rewrite tool
schemas; it leaves handler arguments unchanged. TrackMCP never infers intent from
private model reasoning, prompts, completions, or unsuccessful calls.
Release files for trackmcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| trackmcp-0.1.1.tar.gz | 16.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trackmcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.6 kB
Release files / trackmcp-0.1.1.tar.gz
| Download URL | trackmcp-0.1.1.tar.gz |
|---|---|
| Size | 16.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b28025cdd7647f3d426a9ce6a9b4018a834ef04509cc16dea4176852ea2c0803
|
|
BLAKE2b-256 checksum How to use checksums |
77900bd8a4feda340fc37225a31018322f555fea58281f5cbf242c2d0b41e172
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / trackmcp-0.1.1-py3-none-any.whl
| Download URL | trackmcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a10ccef533dec4cd89987e45a055e354955ca11c78d3d53c1c82f241650198c0
|
|
BLAKE2b-256 checksum How to use checksums |
ae1bc55f99b9d1ba15536c118de03d9dd1a98dee6dfdbe0b8f871cc4f6d3c978
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|