Skip to main content

ECZ-ID MCP Server Inspection

ecz-id-mcp statically inspects MCP server manifests for ECZ-ID configuration posture, transport posture and identity. Part of the ECZ-ID PyPI family. It inspects, explains and routes only.

It never starts an MCP server, never executes a configured command, never connects to a transport, and never creates another MCP identity or Official MCP Registry entry. It never issues or activates an ECZ-ID, never prices or carts, and never certifies. It is not a safety/compliance/insurance/premium decision and not a security, capability or behavioural proof. Missing public proof is neutral. Local policy decides. Re-check before reliance.

One-command first run

$ ecz-id-mcp inspect ./my-mcp-server
ECZ-ID inspection: ./my-mcp-server [ecz-id-mcp]
A. configuration posture : PRESENT
B. public proof posture  : NOT_CHECKED  (neutral)
...
local policy decides; re-check before reliance

Supported inputs

  • A directory or manifest file (static JSON only). Recognised surfaces, each labelled with the configuration dialect it came from: .vscode/mcp.json, .mcp.json, .cursor/mcp.json, .claude/mcp.json, Copilot / user-level MCP config, claude_desktop_config.json, ecz-mcp.json (and .well-known/), mcp_server_manifest.json, mcp.json / .mcp/*.json, and the Official MCP Registry server.json publication manifest.
  • Observes server name, declared tools (and read-only markers), declared stdio / remote transport posture, invocation command and args (never executed), remote endpoints (never connected, credentials and query string omitted), and registry / package / repository identity.
  • Observes pinned-vs-floating invocation (version pin present or not) and compares declared package identity with a co-located pyproject.toml.

Protocol generation awareness

Converged onto ECZ-BASELINE-2026-08-13. MCP 2026-07-28 is the current generation; earlier generations stay explicitly supported.

  • Records the declared protocol generation and its support status: CURRENT, SUPPORTED, DEPRECATED, UNRECOGNISED or INVALID.
  • Deprecated does not mean broken. A deprecated generation or transport (for example legacy SSE) is reported as ecosystem direction, never as a failure.
  • An unrecognised generation is neutral — it may simply be newer than this build. It is never reported as invalid.
  • Records declared stateless (modern) vs stateful (legacy) session posture, and declared capability surfaces where present: Tasks, subscriptions, cache semantics, extensions, routing metadata, result types, MRTR, authorization posture, server/discover and JSON Schema 2020-12.
  • Registry metadata is recorded as declared; registry presence is never treated as verified or as public proof.

Every protocol observation is a declaration, not independent proof (reason code ECZ-6006), and static inspection performs no behavioural conformance (ECZ-6011). Active conformance is a separate, explicitly opt-in lane; its record contract ships in ecz_id_mcp.conformance, and the execution engine is not implemented in this release.

On Python < 3.11, the pyproject.toml comparison needs a TOML backport: pip install ecz-id-mcp[toml]. Without it, that one observation degrades to a neutral note instead of failing.

Privacy boundaries

Static JSON inspection; never starts, connects to or executes anything. Bounded, symlink-refusing enumeration. No telemetry, no uploads. Secrets redacted on every export. Offline mode (--offline / ECZ_ID_OFFLINE=1) skips all network.

Explicit non-claims

Not a safety / certification / compliance / insurance / premium decision. Not a security, capability or behavioural proof. Does not start, connect to or execute any MCP server. Does not create another MCP identity or registry entry. Does not price or cart.

Python API

from ecz_id_mcp import inspect

result = inspect("./my-mcp-server")
print(result.configuration_evidence.posture.value)   # PRESENT / PARTIAL / ABSENT / INVALID

CI / test example

$ ecz-id-mcp inspect . --json > ecz-id-mcp.json   # exit 0 for any completed inspection
$ ecz-id-mcp doctor --json

Routes

Re-check

$ ecz-id-mcp recheck ./my-mcp-server --json

Machine-readable integration

Machine Interface · Manifest · Resolver · Operator setup · Developer guidance

Each installation includes structured machine-readable metadata for automation, CI and supported integrations. Every JSON report embeds a compact machine_interface object with the canonical roots and safe, read-only actions.

The package runs locally to inspect, explain and route. It does not issue an ECZ-ID, write canonical truth, create public proof, price a cart, or replace Resolver proof.

$ ecz-id-mcp manifest --json
$ ecz-id-mcp compare ./old ./new --json    # neutral drift
$ ecz-id-mcp inspect . --sarif             # SARIF for code scanning
$ uvx ecz-id-mcp inspect .                 # or: pipx run ecz-id-mcp inspect .

Need help choosing the right ECZ-ID route?

Use ECZ-ID GPT guidance: https://trustops.ecocitizenz.com/start#gpt-guidance

Route guidance only. TrustOps handles setup; Backend/Core writes truth; Resolver proves public state. Local policy decides reliance. Re-check before reliance.

Continue with ECZ-ID

Licence and trademarks

Apache-2.0 (see LICENSE, NOTICE). The code licence grants no trademark rights; “ECZ-ID” and “EcoCitizenz” are trademarks of their owner(s) — see TRADEMARKS.md. Changelog: CHANGELOG.md. Security: SECURITY.md.

CLI: ecz-id-mcp  |  Import: ecz_id_mcp  |  Plugin group: ecz_id.plugins

Metadata

Release files for ecz-id-mcp 0.2.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 ecz-id-mcp 0.2.0
File Size Uploaded
ecz_id_mcp-0.2.0.tar.gz 29.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ecz-id-mcp 0.2.0
File Interpreter ABI Platform
ecz_id_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.1 kB

Release files / ecz_id_mcp-0.2.0.tar.gz

Download URL ecz_id_mcp-0.2.0.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8ffd7da92bec9c4d84a292889968022b1100960982b561d010f2ba05094f0376
BLAKE2b-256 checksum
How to use checksums
7b41226bc7bf56eacae7cda7d861d53c287c9492537da566f80ecdeaa3160321
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 13, 2026.

Transparency log

Release files / ecz_id_mcp-0.2.0-py3-none-any.whl

Download URL ecz_id_mcp-0.2.0-py3-none-any.whl
Size 25.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5590cba8533900780a00d8d62d82eaa5e0c7bd6e385362d23a5e379090ab163
BLAKE2b-256 checksum
How to use checksums
d4eff949c98bedfbc13a934c153bfad427786804e373aa5e3d318506a6ede2cd
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 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

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