Easy2257

AI Assistant (MCP)

Connect an AI assistant to an Easy2257 account over the Model Context Protocol. Read-only, no performer identity data, included with every producer plan.

Easy2257 runs a Model Context Protocol server at https://easy2257.com/api/mcp. It lets a producer's AI assistant read that producer's compliance state and answer in plain language: which scenes still need something, what expires next, whether a production is ready to finalize, whether a certificate someone sent them is genuine. It works with Claude, ChatGPT, Gemini, Copilot, Cursor, and any other client that speaks MCP.

It is read-only by design. Nothing reachable through it can create, change, sign, or delete a record, activate a scene, or spend money, and it never returns performer identity data.

This is not the Partner API. The Partner API (/api/v1, ez_live_ keys from the partner portal) is for platforms and can write records. The MCP connection (/api/mcp, ez_mcp_ keys from a producer's account, or sign-in) is for producers and can only read. A producer who wants to ask their assistant about their records wants this page. A platform integrating Easy2257 wants the Quickstart.

Partner APIMCP connection
Who uses itPlatforms integrating Easy2257Producers and solo creators, through an AI assistant
Can it writeYes: provisions creators, opens scenes, delivers certificatesNo. Sixteen read-only tools
Credentialez_live_ key, created at partner.easy2257.com/api-keysez_mcp_ key, created at Account, then MCP Keys, or OAuth 2.1 sign-in
Base URLhttps://easy2257.com/api/v1https://easy2257.com/api/mcp
ReferenceThe rest of this siteThis page, plus the producer-facing guide at easy2257.com/ai-assistant

Endpoint and discovery

Authentication

Two credentials, one authorization story. A pasted key and a sign-in token resolve to the same account, the same tools, and the same scoping; nothing downstream can tell them apart.

MCP keys

  • Created by the producer at Account, then MCP Keys. Prefix ez_mcp_. Up to ten active keys per account.
  • The secret is shown once at creation and stored only as a hash. Rotate or revoke any key at any time. Every key on the account is revoked automatically when the password is reset.
  • Send it as a bearer token:
Authorization: Bearer ez_mcp_...
  • Keys are live only. They need an active subscription; every plan includes MCP access.

Sign-in (OAuth 2.1)

For clients that connect by sign-in instead of a pasted key (ChatGPT, Claude on the web and desktop, and others with a connectors screen).

GrantAuthorization code with PKCE, S256 only. No implicit, password, or client-credentials grants.
Scopemcp:read, the only scope. It is read-only access to the signed-in producer's own records.
Client identificationClient ID Metadata Documents: client_id is an https URL that serves the client's own metadata (name, redirect URIs). There is no dynamic registration endpoint. Public clients only (token_endpoint_auth_methods_supported: ["none"]).
Authorizehttps://easy2257.com/oauth/authorize
Tokenhttps://easy2257.com/api/oauth/token
Revokehttps://easy2257.com/api/oauth/revoke
LifetimesAccess token 1 hour. Refresh token 30 days idle, rotated on every use.

The producer approves the connection on an Easy2257 consent screen that names the client and states what it can and cannot read. Connected clients are listed under Account, then MCP Keys with a one-click disconnect, which revokes the grant immediately.

Refusals

ResponseMeaningWhat a client should do
401 with WWW-Authenticate: BearerNo credential, or one that is unknown, revoked, or expiredRe-authenticate
403 ACCOUNT_LOCKEDThe account is temporarily lockedStop. Re-authenticating will not help
403 SUBSCRIPTION_REQUIREDNo active subscription entitles the connectionStop and tell the producer; billing is fixed on the site, not by the agent

Neither response reveals whether a given key exists. Locked and unentitled accounts deliberately answer 403 rather than 401, so an agent refused over billing does not loop on re-authentication.

Connecting a client

claude mcp add --transport http easy2257 https://easy2257.com/api/mcp \
  --header "Authorization: Bearer ez_mcp_..."

Cursor, VS Code, Windsurf, Gemini CLI, Codex CLI, and most editor assistants take a block like this in their MCP config:

{
  "mcpServers": {
    "easy2257": {
      "type": "http",
      "url": "https://easy2257.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ez_mcp_..."
      }
    }
  }
}

In the assistant's connector or integration settings, add a custom connector with the URL https://easy2257.com/api/mcp. The client reads the discovery documents, sends the producer to Easy2257 to sign in and approve, and holds a token no one copied. There is no key to paste.

Tools

Sixteen tools, all read-only. Results are always scoped to the authenticated account; a record that belongs to someone else comes back as found: false, the same as one that does not exist.

Productions and scenes

ToolReturns
list_productionsThe account's productions, newest first, with documentation status, scene counts by status, and the state of the latest compliance certificate. Paginated with nextCursor.
get_productionOne production with its scenes, each carrying its status and a count of what is still outstanding (pending invites, unverified identities, unsigned forms and documents, missing releases).
get_scene_compliancePer-participant compliance state for one scene, by id or SCENE- code: invite state, identity verification state and freshness, form and document counts, model release.
list_compliance_gapsScenes with outstanding work and what is outstanding on each. Filter by attestationSource to see every scene carrying a given provenance.
list_expiring_documentsAssigned documents expiring within a number of days, across the account's scenes.

Certificates and archives

ToolReturns
get_certificateEvery compliance certificate issued for one production with its lifecycle state (CURRENT, SUPERSEDED with supersededBy, REVOKED). Delivery state is included when the caller owns the linked partner registration.
verify_certificateChecks a certificate belonging to any account: pass the full JWT to verify its signature, or a code to check its state. Lookups of certificates you do not own are rate limited.
get_archive_statusThe sealed archive for a finalized production: when it was sealed, whether it is locked, headline counts, and the SHA-256 hashes of the package and report.

Account

ToolReturns
get_account_statusPlan, subscription state, scene allowance for the current period, whether the 2257 custodian statement is published, and the most recent acquirer report period.
get_removal_requests_summaryRemoval requests linked to the account's own productions or scenes: counts by status and legal basis, plus open items with deadlines.
list_notificationsNotification types and timestamps with the record each concerns. Titles and bodies are not returned.
list_webhook_deliveriesDelivery attempts for the webhook endpoints registered under the account's own partner registration: event type, HTTP status, attempts, outcome. Payloads are not returned.
get_compliance_requirementsWhat a complete record looks like: document tiers, participant roles, the checks that produce a gap, and the document templates this account can use.

Solo creators and public codes

ToolReturns
list_content_logsA solo creator's own content logs: code, title, type, platform, date, depiction count, and the public lookup URL. Requires a solo creator plan.
get_content_logOne content log by LOG- code or id, with its attestation state and public lookup URL.
verify_recordAny Easy2257 record by its public code (SCENE-, a project code, or LOG-) and the evidence state behind it: complete or not, how many participants are satisfied, outstanding, or awaiting an undecided identity. Lookups of records you do not own are rate limited.

Resources

The server also publishes six easy2257:// resources (data-model, closed-scenes, certificates, provenance, removals, solo). They explain the parts of the data model that surprise people: how a person maps to a record, what can and cannot change after a scene closes, when certificates are delivered, why an imported record never upgrades to a verified one, and what happens to a record after it is removed. An assistant that reads them before explaining an odd-looking result will explain it correctly.

What comes back, and what never does

Every tool returns compliance state: ids, public codes (PROD-, SCENE-, LOG-), statuses, counts, timestamps, SHA-256 hashes, and short labels of the caller's own records (a production title, a key name).

No tool returns performer names, dates of birth, ID numbers, images, file paths, document contents, IP addresses, notification bodies, webhook payloads, or anything about a removal-request claimant. Those fields are not filtered out of responses; they are never selected in the first place, and an automated sweep calls every tool against poisoned rows on every build to keep it that way. This is why the connection is safe to point at a shared assistant: there is no identity data in it to leak.

Limits

  • One account per credential. A key or token sees the account that issued it and nothing else.
  • Foreign lookups are budgeted. verify_record and verify_certificate on records the caller does not own are rate limited per credential. Once the budget is spent, the tool answers the same way whether or not the code exists. Lookups of your own records are not budgeted.
  • No paid or attesting path. Scene activation, checkout, attestations, and signatures happen at easy2257.com, by a person, on purpose. An assistant asked to do any of those should point the producer at the site.
  • Every call is logged against the credential that made it, and a producer can see when each key or connection was last used.

Producer-facing setup guide: easy2257.com/ai-assistant.

Listed in the official MCP registry as io.github.Agaveis/easy2257-mcp. The registry entry, the connector's privacy statement, and example prompts are at github.com/Agaveis/easy2257-mcp.

On this page