Sign inSign up

agaveis/easy2257-mcp

By agaveis

•Updated about 3 hours ago

stdio bridge to the hosted Easy2257 MCP server: read-only 18 U.S.C. 2257 compliance records

Image
0

71

agaveis/easy2257-mcp repository overview

⁠easy2257-mcp: the Easy2257 MCP connector

This repository is the public listing for the Easy2257 Model Context Protocol⁠ server. The server itself is hosted by Easy2257 and reached over the network, so there is nothing here to install and no engine source: this repo holds the registry metadata, the privacy statement, and the setup notes.

Endpoint: https://easy2257.com/api/mcp (Streamable HTTP) Setup and screenshots: https://easy2257.com/ai-assistant⁠

This connector reads one account's own compliance state. It is not the Easy2257 Partner API, which is the separate integration surface a platform uses to receive compliance events.

Easy2257 keeps 18 U.S.C. 2257 records for adult content producers: who was in a scene, that their identity was verified, which paperwork is signed, and a certificate proving the record existed at a point in time. This connector lets the AI assistant you already use read that compliance state and answer in plain language.

MCP is an open, vendor-neutral standard, so one connection serves any MCP client: Claude Code, Claude on the web and desktop, ChatGPT, Cursor, VS Code with Copilot, Windsurf, Gemini CLI, Codex CLI, and others.

⁠Read-only, and narrow on purpose

The connection reports state. It cannot create a scene, change a record, sign anything, attest to anything, or spend money. Paid actions and attestations happen at easy2257.com, by a person, on purpose.

What comes back is compliance state: ids, public codes (SCENE-, PROD-, LOG-), statuses, counts, dates, integrity hashes, and the short titles you wrote yourself, returned only to the account that owns them. It never returns a performer's name, date of birth, ID number, image, file path, address, or the contents of anyone's document: those columns are not selected. That is a deliberate boundary, not a gap, and it is what makes this surface safe to point a shared assistant at.

Three guarantees, restated plainly:

  • It only reads. No tool creates, changes, signs, or deletes a record.
  • No identity data crosses the wire. Statuses, codes, counts, dates, integrity hashes, and your own titles only.
  • No money moves. No tool touches checkout, scene activation, or any paid action.

⁠Connecting

Two ways in. Both land on the same read-only view of your own records, and the tools cannot tell them apart.

⁠Sign in (no key to copy)

For ChatGPT, Claude on the web and desktop, and any assistant with a connectors or integrations screen: add a custom connector pointing at https://easy2257.com/api/mcp. The assistant sends you to Easy2257, you sign in, and you approve read-only access. The assistant never sees a password or a key. OAuth 2.1 with PKCE; the single scope is mcp:read.

⁠Paste a key

For Claude Code, Cursor, VS Code with Copilot, Windsurf, Gemini CLI, Codex CLI, and anything else that lets you set a connection header. Several of these can also sign in; either route works. Create a key under Account, then MCP Keys at https://easy2257.com/profile/account/api-keys⁠. Keys start with ez_mcp_, are shown once, and are stored as a hash plus the first four characters, which is how the settings screen tells one key from another. You can hold ten at a time and revoke any of them at any moment.

Command-line assistants usually take one line:

--header "Authorization: Bearer YOUR_KEY"

Editors and other assistants usually take a config block:

{
  "mcpServers": {
    "easy2257": {
      "type": "http",
      "url": "https://easy2257.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}
⁠Run it as a container (clients that cannot set a header)

Some MCP clients can only start a local command over stdio and cannot attach a header. For those, agaveis/easy2257-mcp on Docker Hub is a small image that bridges stdio to the hosted server. It contains no server code: it runs the official mcp-remote package, pinned by version, and forwards every request to https://easy2257.com/api/mcp with your key as the bearer token. The server is still hosted by Easy2257; the image only carries the stream.

docker run -i --rm -e EASY2257_API_KEY=YOUR_KEY agaveis/easy2257-mcp:latest

As a config block:

{
  "mcpServers": {
    "easy2257": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "EASY2257_API_KEY", "agaveis/easy2257-mcp:latest"],
      "env": {
        "EASY2257_API_KEY": "YOUR_KEY"
      }
    }
  }
}

The key stays in your environment and is never written into the image or its logs. Without a key the container exits with a message and does nothing. The image is built from this repository's Dockerfile⁠ and bridge/⁠ by the publish-dockerhub⁠ workflow, with the base image, every package and every action pinned.

Every connected assistant, key or sign-in, is listed on the same settings screen with a one-click disconnect. Revoking ends access immediately.

Included with every Easy2257 plan. The two content log tools are part of the solo creator plan; on other plans they refuse and say so.

⁠The sixteen tools

⁠Productions and scenes
ToolWhat it answers
list_productionsYour productions with their documentation status and certificate state.
get_productionOne production, scene by scene.
get_scene_compliancePer-participant state for one scene: invite state, identity verification, form and document counts, and model release. Participants appear by role and an opaque id, never by name.
list_compliance_gapsEvery scene with outstanding compliance work, in one call, so an assistant can answer "which scenes still need something?". Cancelled scenes are excluded, and expiring paperwork has its own tool.
list_expiring_documentsPaperwork that expires within a window you choose, with dates. Anything already overdue is included.
⁠Certificates and archives
ToolWhat it answers
get_certificateA production's compliance certificates and where each one stands.
verify_certificateWhether a certificate someone handed you is current, superseded, or revoked.
get_archive_statusThe sealed archive's hashes for a finalized production.
⁠Your account
ToolWhat it answers
get_account_statusPlan, allowance, and published custodian statement.
get_compliance_requirementsThe document tiers this platform applies, kept separate, plus the participant roles, the checks that produce a gap, and the templates this account can use.
get_removal_requests_summaryRemoval and takedown requests linked to your own records, by status and legal basis. Nothing about who filed one.
list_notificationsAccount notifications.
list_webhook_deliveriesWebhook delivery outcomes.
⁠Solo creators and public codes
ToolWhat it answers
list_content_logsA solo creator's own content logs.
get_content_logOne content log.
verify_recordThe evidence state behind a public record code, which is how a platform confirms what a creator sent it.

Looking up a code that is not yours is rate limited per credential, the same whether you signed in or pasted a key, and an exhausted credential learns nothing, not even whether a code exists. Your own records are free through verify_record. verify_certificate always counts, even for your own certificates; use get_certificate for those.

Example questions are in docs/example-prompts.md⁠.

⁠Privacy

PRIVACY.md⁠ covers what this connector transmits and what it never transmits. The hosted policy is at https://easy2257.com/privacy⁠.

⁠Publishing

server.json is the entry in the official MCP registry⁠ under io.github.Agaveis/easy2257-mcp. It is republished by the publish-registry⁠ workflow, which authenticates with GitHub Actions OIDC, so there is no interactive login and no stored credential.

⁠Support

Questions and problems: https://easy2257.com/contact⁠.

Website: https://easy2257.com⁠ Listing and source: https://github.com/Agaveis/easy2257-mcp⁠ Built and maintained by AgaveIS⁠, Scottsdale, Arizona.

Tag summary

Content type

Image

Digest

sha256:da48a63e9…

Size

59.8 MB

Last updated

about 3 hours ago

docker pull agaveis/easy2257-mcp