For MCP server operators
Give the MCP server you operate a resolvable identity.
ECZ-ID Trust MCP is the identity, authority, evidence and current-state layer for MCP. If you operate an MCP server, this page is the whole path: claim an identity, attach the server you operate to it, publish a reference anyone can resolve, expose the evidence you actually have — and let the people and agents on the other side check for themselves, out of band, without touching your request path.
It makes you checkable. It does not make anyone trust you. Those are different things, and this page keeps them apart.
This page is for MCP providers. It is not a list of them. There is no directory here, nothing is ranked or rated, and no provider is listed, approved, recommended or compared.
Publishing an identity confers no status. It is not approval, not accreditation, not a compliance finding and not a security assessment — and you should know that before you begin, not after.
The record behind that second link is ours, it is live, and it currently publishes binding.state = NO_PUBLIC_PROOF. We show it anyway.
The layer, and its surfaces
One layer. Five surfaces. The site is the layer; the server is one surface.
ECZ-ID Trust MCP is not a single program you install. It is a layer, and you meet it through whichever surface fits what you are doing. Each surface has its own name and its own job, and this page names which one it means every time.
- ECZ-ID Trust MCP — the layer
- The identity, authority, evidence and current-state layer for MCP. This website explains it and routes you to the surface you need. It writes nothing.mcp.ecocitizenz.com
- Trust MCP Server — the machine surface
- A Streamable-HTTP MCP server that answers identity and state questions over JSON-RPC 2.0. Seven tools: six anonymous and read-only, one protected by OAuth2. An agent calls it; a person does not.trust-mcp.ecocitizenz.com/mcp
- ECZ-ID MCP Verifier — the CI and command-line surface
- A local-first, read-only checker. Runs as an npm package, as a command-line tool, as a GitHub Action, and as a read-only MCP stdio server with three tools. It reads the public Resolver; it never writes anything anywhere.@ecocitizenz/ecz-id-mcp-verifier
- ECZ-ID MCP Trust — the editor surface
- A Visual Studio Code extension that inventories the MCP configuration on a developer's own machine and shows what changed. It is about your editor, not about anyone else's server.developers.ecocitizenz.com/mcp-trust
- ECZ-ID Resolver — the proof surface
- The public, read-only projection. It is where a reference resolves, for people and for machines. It is a projection of canonical state, never a source of it.resolver.ecocitizenz.org
- TrustOps — the commercial surface
- Where acquisition, entitlement and lifecycle actually happen. TrustOps is authoritative for order and payment status. Everything on this page that costs money happens there, not here.trustops.ecocitizenz.com
Websites explain. TrustOps operates. Backend truth decides. Resolver proves. Nothing on this website — a page, a link, a payment or a badge — creates or amends authoritative ECZ-ID state.
The gap
Your server answers "what can you do". Nothing answers "who is behind you".
MCP is very good at describing capability. A client connects, calls tools/list, and learns exactly what your server offers. What the protocol does not carry is the other half of the question a cautious enterprise asks before it lets an agent call you: who operates this, under what authority, with what evidence, and is any of that still true this morning.
Who operates this server?
Today: A domain name, a README and, if you are lucky, a company name in a footer. All of it is assertion, and none of it is re-checkable at the moment of reliance.
With ECZ-ID: A persistent identifier that resolves to a public record naming the operator, its jurisdiction and its entity type, with the basis of each field visible.
What is this server allowed to act for?
Today: Usually nothing states it, so the relying party assumes, and assumption is where incidents start.
With ECZ-ID: A binding state and an explicit list of things a reader must not infer — published by us, on the record, whether or not it flatters the record holder.
Is any of this still true right now?
Today: A PDF from six months ago attached to an email thread.
With ECZ-ID: A URL the relying party re-checks at the moment they rely, with a dated projection and a lifecycle state that can say REVOKED or SUSPENDED out loud.
None of this is a criticism of MCP. The protocol is doing its job. Identity, authority and evidence are simply a different layer, and they belong out of band — which is also why adding them costs your server nothing at request time.
The journey
Five steps. Four of them happen somewhere other than this website.
Here is the whole path, and who performs each part of it. This website explains and routes. It does not claim an identity for you, it does not create a record, and it does not publish proof. Read the ownership column before you read anything else on this page.
- Step 1Claim identity
- Step 2Create the ECZ-ID relationship
- Step 3Publish the Resolver reference
- Step 4Expose evidence
- Step 5Become easier to verify
1. Claim identity
- What actually happens
- A parent ECZ-ID Business Passport entitlement is created and activated for your organisation.
- System that owns it
- Owned by: TrustOps for acquisition and entitlement. ECZ-ID Backend/Core creates and activates the record and writes the canonical state. This website explains and routes.
- This website's role
- Explains it. Routes you to TrustOps.
2. Create the ECZ-ID relationship
- What actually happens
- A child passport for the MCP server you operate is issued under your parent ECZ-ID.
- System that owns it
- Owned by: TrustOps for acquisition. ECZ-ID Backend/Core issues the child record and writes the canonical state. The ECZ-ID Resolver publishes the projection. This website explains and routes.
- This website's role
- Explains the model. Routes you to TrustOps.
3. Publish the Resolver reference
- What actually happens
- You put your ECZ-ID and its Resolver URL where people and machines already look.
- System that owns it
- Owned by: you, on your own infrastructure. The ECZ-ID Resolver serves the URL when someone follows it. Nothing is written, registered or submitted to us by publishing a reference.
- This website's role
- Tells you the exact URL shapes and placements.
4. Expose evidence
- What actually happens
- Profile fields, bindings and receipts appear on the projection as they become true.
- System that owns it
- Owned by: you supply profile data and bindings through TrustOps. ECZ-ID Backend/Core writes the canonical state. The ECZ-ID Resolver renders a read-only projection of what that state permits. This website renders none of it.
- This website's role
- Tells you which fields exist and what they mean.
5. Become easier to verify
- What actually happens
- Relying parties resolve your reference, out of band, at the moment they rely.
- System that owns it
- Owned by: the relying party. They resolve your reference, on their schedule, under their own policy. Neither this website nor any ECZ-ID surface decides what they conclude.
- This website's role
- Tells them how. Promises them nothing about you.
Step 3 is the only step you perform. Steps 1, 2 and 4 are performed by systems that are not this website, and step 5 is performed by someone else entirely. If a page ever tells you that a website verified you, bound you or approved you, that page is wrong — including this one.
Step 1 of 5
Claim identity — a parent ECZ-ID for the organisation behind the server
Owned by: TrustOps for acquisition and entitlement. ECZ-ID Backend/Core creates and activates the record and writes the canonical state. This website explains and routes.
An MCP server does not have a company. The organisation that operates it does. So the first thing that exists is a parent identity for that organisation: the ECZ-ID Business Passport. It is your organisation's persistent identity foundation and the spine every downstream credential resolves back to.
Every paid MCP service includes a 90-day ECZ-ID Business Passport experience: a machine-readable business profile for the emerging agent and machine economy, with a public Resolver page that people and software can read for themselves.
How the included Passport reaches you
Purchase
Your order automatically starts account setup. There is nothing to apply for and no approval step — setup begins on its own.
Activation
When setup completes, your included Passport access activates automatically.
90-day access
Your included 90-day period starts at activation. There is no automatic renewal and no automatic charge at day 91 — continuing is a separate decision you make.
Resolver profile
Your live ECZ-ID profile becomes available through Resolver after activation. You control what it says — optional profile information and bindings are managed by you through TrustOps.
There is no gate. Getting the included Passport is frictionless: no eligibility assessment, no qualification, no identity verification and no approval step stands between a successful purchase and an active entitlement.
Which is exactly why holding one proves very little on its own. Payment does not create Declared, Verified, Assured or BOUND status, and does not make anything approved, compliant or safe. Paying does not verify, certify, assure or approve you or your MCP implementation. What you get is a record that exists, resolves, and can start carrying evidence.
Step 2 of 5
Create the relationship — the server you operate becomes a child of the operator
Owned by: TrustOps for acquisition. ECZ-ID Backend/Core issues the child record and writes the canonical state. The ECZ-ID Resolver publishes the projection. This website explains and routes.
The parent identifies your organisation. It does not identify the MCP server you operate, and it must not be read as if it did. That is what child passports are for.
A child passport is a distinct, resolvable identity issued under a parent ECZ-ID, for one specific thing you operate: an API, an agent, a piece of software, a model, a dataset, a device. The child always resolves back to an accountable parent, which is the whole point — an agent or an API that cannot be traced to an organisation is exactly the thing enterprises are refusing.
- Parent ECZ-ID
- ECZ, a two-letter country or class segment, then six uppercase Base36 characters.
ECZ-GB-RBS1NW - Child ECZ-ID
- The parent, then a double colon, then a registry-controlled passport code, then a six-character instance suffix. The suffix is split off the final hyphen, so passport codes that themselves contain hyphens still parse.
ECZ-GB-RBS1NW::API-4F9Q2A
API ECZ-ID API Passport
The API or MCP surface itself — the thing being called.
AGENT Agent Credential
An agent you operate, so it resolves back to you rather than to nobody.
SSCM Software Supply Chain Passport
The build and toolchain provenance behind what you ship.
AI AI Model Passport
A model your surface exposes or depends on.
DATASET Dataset Passport
Data provenance where your tools return or act on it.
CYBER Cyber Resilience Passport
Cyber posture evidence, where a counterparty asks for it.
There is no passport code whose name is "MCP server". The API Passport is the closest fit for an MCP endpoint and is what most operators use, and an Agent Credential is the right shape when the thing you want identified is an agent rather than an endpoint. Which you need depends on what you want a relying party to be able to check, so it is a conversation rather than a dropdown.
Not every system needs every credential. Nothing in the MCP specification requires any of these, and no regulation names them. Start with the evidence gap your customers, reviewers or counterparties actually ask you about.
Start a child passport on TrustOps (external)
Child passport prices are published on TrustOps. They are not restated here, because TrustOps owns commercial state and a second copy of a price is a second thing that can go stale.
Step 3 of 5 — the only step you perform
Publish the reference — put the identifier where people and machines already look
Owned by: you, on your own infrastructure. The ECZ-ID Resolver serves the URL when someone follows it. Nothing is written, registered or submitted to us by publishing a reference.
A record nobody can find is a record nobody uses. Publishing the reference is the step that turns an ECZ-ID from something you hold into something a relying party can act on — and it is entirely under your control, on surfaces you already own.
There is nothing to submit. You are not adding yourself to a directory, and there is no listing to be accepted into. You are publishing a string and a URL, the same way you publish a licence or a security contact.
The four URL shapes
- Parent, for people
- The URL a reviewer, an auditor or a customer opens.
https://resolver.ecocitizenz.org/p/ECZ-GB-RBS1NW - Parent, for machines
- The read-only machine projection an automated client fetches.
https://api.ecocitizenz.com/api/p/ECZ-GB-RBS1NW.json - Child, for people
- The external child form decomposes: parent, then passport code, then instance suffix — as path segments, never a percent-encoded child identifier.
https://resolver.ecocitizenz.org/p/ECZ-GB-RBS1NW/API/4F9Q2A - Child, for machines
- There is no documented public child machine endpoint. The ECZ-ID MCP Verifier deliberately does not fabricate one; it returns a human URL for a child and reports the machine projection as unproven rather than inventing a path. Where a machine needs a child, it resolves the parent machine JSON and reads the child representation from inside that body.
The four Resolver URL shapes: parent for people, parent for machines, child for people, and the child machine projection, which has no documented public endpoint.
Where to publish it
1. Your own site, on a page that does not move
Why: It is the reference a human follows from an email, a questionnaire or a contract, and it is the one that has to still work in two years.
Example: A /trust or /security page carrying the identifier as text and the human Resolver URL as a link. Text, not an image — an identifier inside a PNG is not machine-readable and not copy-pasteable.
2. Your repository README
Why: For an open-source MCP server this is where a developer looks first, and it is the surface a reviewer screenshots.
Example: A short line near the top — Operator identity: ECZ-GB-RBS1NW · https://resolver.ecocitizenz.org/p/ECZ-GB-RBS1NW — as plain text or a markdown link. If you use a badge, keep the identifier as text as well: a badge image asserts nothing and cannot be resolved.
3. A .well-known file on the host that serves your MCP endpoint
Why: This is the machine-facing placement, and it is the shape the ECZ-ID MCP Verifier already recognises. A target URL ending in /.well-known/ecz-mcp.json is classified as an MCP server target by the verifier's deterministic classifier.
Example: https://api.example.com/.well-known/ecz-mcp.json — with the honest limit stated below, in full.
The honest limit on a .well-known file
What the verifier does with that file today, precisely: it recognises the URL shape and classifies the target as an MCP server. It does not fetch the file, parse it, or read an identifier out of it — the ECZ-ID MCP Verifier does not inspect the contents, manifests or runtime protocol of any target, by design. A public Resolver lookup runs only for a valid ECZ-ID.
So the file is a durable, machine-findable place to keep your identifier for humans, crawlers and your own tooling. It is not yet an automatic discovery path into the Verifier. Publish the identifier itself wherever a relying party will actually read it, and expect them to resolve the identifier rather than the file.
4. Your MCP registry entry
Why: It travels with your server to anyone who discovers you through a registry rather than through you.
Example: In the server.json you publish, point websiteUrl at the page from placement 1 — the page that carries your identifier and your Resolver link. No other field is named here, because no other field is confirmed.
5. Your MCP server's own initialize response, if you want it in band
Why: Some hosts will surface it; most will not read it.
Example: Putting the identifier in your protocol response is a convenience, not a proof step. A relying party still resolves it out of band. A string your server returns about itself is an assertion by your server; the Resolver record is what gets checked.
What a relying party does with the reference
They take the identifier — not your domain, not your package name, not your repository — and resolve it. A person opens the human URL. A machine fetches the parent machine JSON, or asks the Trust MCP Server, or runs the ECZ-ID MCP Verifier in their pipeline. In every case the answer comes from the Resolver, not from you, and it is dated at the moment they asked.
That last part is the reason to publish a reference instead of a document. A PDF says what was true when it was written. A reference says what is true when it is followed.
Step 4 of 5
Expose evidence — and let the record say plainly what is not there yet
Owned by: you supply profile data and bindings through TrustOps. ECZ-ID Backend/Core writes the canonical state. The ECZ-ID Resolver renders a read-only projection of what that state permits. This website renders none of it.
Evidence is not a section you fill in once. It is a set of named fields, each of which has a state, and each of which is allowed to say "nothing here". A record that could only report good news would be worth nothing to the person reading it.
identity.legal_name, trading_name, jurisdiction, entity_type
- What it answers
- Who the operator is
- A new record typically says
- Present once you complete the profile
- What that means
- Externally referenced fields carry their source; declared fields say so.
identity.profile_state
- What it answers
- Is the profile finished
- A new record typically says
- PROFILE_COMPLETE once required fields are supplied
- What that means
- Completeness of a form, not verification of its contents.
state.lifecycle_state
- What it answers
- Is the record enabled right now
- A new record typically says
- ACTIVE
- What that means
- Enabled, and not suspended, revoked, cancelled, lapsed or expired.
state.reliance_level
- What it answers
- How much weight the record carries
- A new record typically says
- LIMITED_RELIANCE_NO_BINDING
- What that means
- The honest state for a record with identity but no demonstrated control.
binding.state
- What it answers
- Has control over anything been demonstrated
- A new record typically says
- NO_PUBLIC_PROOF
- What that means
- See the panel below. This is the field operators misread.
binding.reason_code
- What it answers
- Why
- A new record typically says
- NO_PUBLIC_BINDING_PROOF_AVAILABLE
- What that means
- A reason, not a verdict.
binding.scopes
- What it answers
- What control was demonstrated
- A new record typically says
- []
- What that means
- Empty until something is bound.
evidence.public_receipt_state
- What it answers
- Is there published receipt evidence
- A new record typically says
- PUBLIC_RECEIPT_AVAILABLE once a receipt exists
- What that means
- With a count and a timestamp.
ledger.ledger_name
- What it answers
- Where receipts are anchored
- A new record typically says
- ecozledger
- What that means
- Azure Confidential Ledger.
ledger.last_public_anchor_at
- What it answers
- When
- A new record typically says
- A timestamp
- What that means
- Dated, so staleness is visible.
agent_trust.status
- What it answers
- Has an agent credential been issued
- A new record typically says
- AGENT_CREDENTIAL_MISSING
- What that means
- Absence, stated as absence.
public_projection.axes
- What it answers
- Seven independent current-state axes
- A new record typically says
- Mixed
- What that means
- Subject, freshness, enrolment, publication, entitlement, verification service, receipt verification.
Why a new record says NO_PUBLIC_PROOF
Your new record will say binding.state = NO_PUBLIC_PROOF. That is correct, it is not an error, and it is not a failure.
Binding means something specific: that control over a named thing — a domain, an API, a repository, a wallet, an asset — has actually been demonstrated and can be publicly proven. On a record that has just been created, nothing has been demonstrated yet, so the honest value is NO_PUBLIC_PROOF with reason_code NO_PUBLIC_BINDING_PROOF_AVAILABLE and an empty scopes list.
Alongside it the record publishes do_not_infer_control_over: domain_control, api_control, repository_control, wallet_control, asset_control. That list is there to stop a reader concluding from the existence of your record that you control the things it mentions.
Our own parent record, ECZ-GB-RBS1NW, is at NO_PUBLIC_PROOF as of 23 August 2026. Open it and check. A layer that hid this state on its own record would not be worth publishing.
How the four field classes differ
- Verified
- Checked by ECZ-ID against a defined check. The check that was run is identifiable.
- Self-declared
- Supplied by the holder and published as their statement. Useful, and not independently checked.
- Bound
- Cryptographically or operationally tied to a control the holder demonstrated, such as a domain or an endpoint.
- Referenced
- Points at something maintained elsewhere. It is only ever as current as that source.
Verified, self-declared, bound and referenced information stay visibly distinct on the Resolver page. A reader can always tell which is which — that distinction is the product. A page that blurred them would be worse than no page.
Step 5 of 5
Become easier to verify — which is not the same as becoming trusted
Owned by: the relying party. They resolve your reference, on their schedule, under their own policy. Neither this website nor any ECZ-ID surface decides what they conclude.
At the end of the four steps above, something specific is true: a person or a machine on the other side of an integration can now ask a question about you and get a dated, structured, re-checkable answer, without contacting you and without waiting for you.
Here is exactly what that changes, and what it does not.
What it changes
- A relying party can check who operates the server, in a form they can automate.
- They can re-check at the moment of reliance, not at the moment a document was written.
- They can see the basis of each field, so declared information is never mistaken for checked information.
- They can see absence as absence — no agent credential, no binding, no receipts — instead of guessing.
- They can wire the check into CI with the ECZ-ID MCP Verifier and its GitHub Action, and make their own policy decision from a deterministic result state.
- An agent can ask the Trust MCP Server the same question over JSON-RPC and get the same answer.
What it does not change
- It does not make anyone trust you. Trust is their decision, and they may still say no.
- It does not certify, approve or endorse you, your organisation or your MCP implementation.
- It is not a compliance finding, and no regulation names ECZ-ID.
- It is not a security assessment. Nothing here has looked at your code, your configuration or your runtime.
- It does not make your server safe, and it does not make it correct.
- It does not create an obligation on anyone to accept you.
Publishing a resolvable identity makes verification possible. It does not make anyone trust you.
How useful any of that is depends on the information and bindings you maintain. A Resolver page does not prove compliance, and it does not make its holder the right choice — it lets a reader check specific things for themselves and see what has actually been checked.
The other side of the integration
Four ways someone checks you, none of which involve asking you
Worth knowing, because it tells you what publishing a reference is actually buying. Every one of these is read-only, runs on their infrastructure, and never touches your server.
A person, in a browser
https://resolver.ecocitizenz.org/p/<your ECZ-ID>They see the record, the basis of each field, and the date. This is the path a procurement reviewer or an auditor takes.
A developer, on the command line
npx @ecocitizenz/ecz-id-mcp-verifier check --target ECZ-GB-RBS1NWThe ECZ-ID MCP Verifier classifies the target deterministically — regex only, no model — and, for a valid ECZ-ID, performs a read-only GET against the public machine projection. It returns one of 18 canonical result states.
A pipeline, in CI
The ECZ-ID MCP Verifier GitHub Action, with a local policy of OPEN, PREFER or REQUIREThe consuming team gets a deterministic exit code plus JSON and SARIF. The policy is theirs, set on their side. Nothing about your record forces an outcome in their pipeline.
An agent, over MCP
https://trust-mcp.ecocitizenz.com/mcpThe Trust MCP Server answers over JSON-RPC 2.0 with Streamable HTTP. Six of its seven tools are anonymous and read-only: resolve_identity, get_current_state, get_resolver_link, explain_status, find_product and get_install_instructions. The seventh, create_request_to_resolve, is the only one that writes anything, and it requires an OAuth2 bearer token.
There is no FAILED_VERIFICATION state
One design decision worth knowing before you publish anything. The ECZ-ID MCP Verifier has 18 canonical result states, and there is deliberately no state called FAILED_VERIFICATION. A target with no public proof returns NO_PUBLIC_RESOLVER_PROOF_FOUND. A partial one returns PARTIAL_PUBLIC_PROOF_FOUND. Absence of proof is reported as absence, never rendered as failure and never rendered as unsafe.
That protects you twice: your record is never described as a failure while it is still filling up, and a competitor without a record is never described as dangerous. The states that do fail closed are the ones that mean something went wrong: REVOKED, SUSPENDED, DEGRADED, MISMATCH, PROOF_UNAVAILABLE, PUBLIC_PROJECTION_UNAVAILABLE, ACTIVE_ABUSE_FLAGGED and UNKNOWN.
Read what the ECZ-ID MCP Verifier does and does not do (external)
Boundaries
What a reader of your record must not infer
This list is not a disclaimer we wrote for this page. It is published on the record itself, in the reliance block, on every ECZ-ID. We are reproducing it here so you know what your own record will tell people about the limits of relying on it.
What a reader may rely on
- record_existence
- active_parent_state
- current_parent_tier
- public_resolver_visibility
What a reader must not infer
- legal_name
- domain_control
- api_control
- repository_control
- wallet_control
- asset_control
- agent_authority
- insurance
- regulatory_approval
- safety
- compliance
- business_quality
- live_operational_monitoring
This identity has not issued an Agent Credential. Do not infer agent authority from the parent ECZ-ID.
ECZ-ID is not an MCP security scanner, not an MCP certification authority, not a trust score provider, not an MCP marketplace, not a directory of MCP providers, not a registry of servers, not an identity provider, not a gateway and not a firewall. It does not sit in the execution path and it does not allow or block actions. It is a neutral, resolver-verifiable identity, authority, evidence and current-state layer, and everything on this page should be read that way.
Cost and starting points
Three ways in, one of which is free
There is no single provider plan, because the four steps are owned by different systems and priced accordingly. Here is the honest map.
Free — check before you commit
The ECZ-ID MCP Verifier is free to use under the ECZ-ID Proprietary Limited-Use License, and it is local-first and read-only. Run it against any target, including your own, before you buy anything. There is no paid checkout for the Verifier and there never has been.
npm @ecocitizenz/ecz-id-mcp-verifier
Included — a paid MCP service carries the Passport
Every paid engagement includes a 90-day ECZ-ID Business Passport experience. Nothing renews and nothing is charged at day 91. The engagement is what you are buying; the Passport comes with it.
The four fixed-scope engagements below
Direct — acquire identity on its own, through TrustOps
Business Passports and child passports are acquired and priced on TrustOps, which owns commercial state. This site does not restate those prices.
https://trustops.ecocitizenz.com
The four fixed-scope MCP engagements
Each is a fixed-scope engagement with a published total and milestones, and each includes the Passport. Full scope, exclusions, deliverables and the checkout for every one of them live on the services pages — this page publishes the price and routes you there, rather than taking money in the middle of a trust-layer explanation.
MCP Readiness Audit
£395A fixed-scope, human-reviewed assessment of one MCP implementation — what will hold in production, what will not, and what to change first.
Paid in full at checkout
Stateless Migration Sprint
£1,950A bounded, hands-on migration of one existing MCP implementation to a stateless, deployment-safe architecture — implemented, tested and documented.
£1,170 at checkout + £780 on acceptance
EMA/ID-JAG Design & Pilot
from £3,500Enterprise-managed authorization (EMA) and identity-assertion grant (ID-JAG) design for MCP — cross-app access, token exchange and identity boundaries, piloted against your identity provider.
£1,750 at checkout; balance per written scope
Enterprise MCP Pilot
£6,500A complete, evidence-backed MCP pilot for one enterprise use case — discovery to handover, with the documentation security and procurement actually ask for.
£2,600 at checkout; 30% + 30% at agreed milestones
Full scope, exclusions and deliverables for every MCP service
Continuation, not part of the fixed-price services
After delivery: keep your Resolver proof current
A fixed-scope engagement ends. Your MCP surface keeps changing. These ongoing ECZ-ID packages are operated by TrustOps and exist so the proof you can point people at stays current after we hand over — they are a continuation route, not part of the fixed-price services above.
ECZ-ID MCP Verifier™
Free
Resolve a Passport, inspect what a page actually asserts, and see the basis of each field.
Anyone checking a provider before they rely on it.
ECZ-ID MCP Assurance™
£199/month
Keep your MCP provider identity and evidence current and independently resolvable, with the lifecycle operations that hold it accurate as your surfaces change.
Providers whose customers re-check them.
ECZ-ID MCP Assurance Plus™
£499/month
Extend that evidence posture across broader MCP surfaces and targets, within the entitlements the canonical product defines.
Providers operating several surfaces or targets.
ECZ-ID MCP Policy™
£1,499/month
Publish machine-readable buyer-side acceptance policy for MCP surfaces — what your organisation will and will not accept from what it consumes, stated under your own authority.
Buying organisations consuming third-party MCP surfaces.
The four professional services above are fixed-scope engagements with published totals and milestones — they are not subscriptions, never convert into one, and buying an engagement never enrols you in a package.
These packages are acquired and operated through TrustOps — see the ongoing packages on TrustOps (external).
Choose your next step
Check something first
Run the ECZ-ID MCP Verifier against any target, including a competitor's and your own. It costs nothing, uploads nothing and writes nothing.
Read the questions other operators ask
Cost, lock-in, impersonation, what happens when your details change, and who can see any of it.
Start with an engagement
A paid MCP service includes the 90-day ECZ-ID Business Passport, and the delivery schedule is confirmed during intake.
The questions operators ask first
- Why would I do this?
- What does it cost?
- Does this lock me in?
- Is this a certification?
- Does this slow my server down?
- What stops someone from creating a record and claiming to be me?
- What if my details change?
- Who can see this, and what exactly is public?
Websites explain. TrustOps operates. Backend truth decides. Resolver proves. Nothing on this website — a page, a link, a payment or a badge — creates or amends authoritative ECZ-ID state.