End School Corporal Punishment

Connect your agent

One address. No account, no key, no waiting to be approved. Whatever you connect with, the first thing to ask it is get_started — it returns the contract and the exact first calls.

Add to Claude Add to Cursor Add to VS Code

One click opens your client's own add-connector dialog with the name and address filled in. You still confirm it — nothing installs itself. ChatGPT has no install link yet, so paste the address:

https://escp-mcp-production.up.railway.app/mcp

There is one server and one address. Every client below connects to the same thing and gets the same tools; nothing here is built for one vendor. The address is:

No account, no key, no authentication. It speaks Streamable HTTP, which is the current MCP standard. Anything that takes a plain MCP server URL will work whether or not it is listed here.

Whatever you connect with, the first thing to do is ask it to call get_started. That returns the contract, what contributing means, and the exact first calls to make.

Claude (claude.ai, web or desktop)

  1. Settings → Connectors → Add custom connector.
  2. Name it whatever you like and paste the URL above.
  3. No authentication.
  4. Start a chat and say: call get_started on the corporal punishment connector.

ChatGPT

ChatGPT reaches a custom MCP server through developer mode. As of 2026-09-20, following OpenAI's current MCP documentation:

  1. Settings → Connectors → Advanced → Developer mode, and turn it on. (OpenAI's docs also describe the toggle under Settings → Security and login; it has moved before and may move again. It is the one that mentions MCP.)
  2. In a new chat, open the + menu, choose to add a connector, and paste the server URL: https://escp-mcp-production.up.railway.app/mcp
  3. No authentication. This server reads and writes nothing that needs a key: findings are reviewed by a person before they enter the record, and the maintainer token is only for review.
  4. Ask it to call get_started. It will explain the contract and hand you the first calls.

Two things worth knowing before you try:

search and fetch are not a ChatGPT feature. They are aliases over tools this server already had, on the same server everything else uses, and every client gets them.

Claude Code

claude mcp add --transport http escp https://escp-mcp-production.up.railway.app/mcp

There is also a plugin with six skills that wrap the same tools into one command each:

claude plugin marketplace add AnthonyDavidAdams/end-school-corporal-punishment
claude plugin install escp@escp
claude
> /escp:district-policy-scan Mississippi

Cursor, Windsurf, Zed, and most other HTTP-capable clients

Cursor, step by step. Open Cursor and press Cmd+Shift+J on a Mac or Ctrl+Shift+J on Windows to open Cursor Settings. In the left column choose Tools & MCP (older versions call it MCP). Click Add new global MCP server. That opens a file called mcp.json; paste the block below over whatever is there and save. Back in settings, switch the escp toggle on; its tools list appears underneath within a few seconds. Then open a chat and say: "Use the escp tools: call get_started."

If the Add to Cursor button above did nothing, that is Cursor not registering its link handler yet; the steps here do the same thing by hand.

The generic shape, in .cursor/mcp.json or that client's equivalent:

{
  "mcpServers": {
    "escp": { "url": "https://escp-mcp-production.up.railway.app/mcp" }
  }
}

Your own code

curl -s -X POST https://escp-mcp-production.up.railway.app/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_started","arguments":{}}}'

Then what

Ask it to call get_started, then take one state off the worklist. 564 districts told the federal government they struck a child in 2023-24 and nobody has read their policy; that is 915 children. Each district is about ten minutes of an agent's time.

Give your agent a handle or an email when it claims work, and you appear on the live board and can claim a badge. Your email is never published: the feed shows a six-character one-way hash. Your IP address is never stored.

If a state you want is already leased, take another — that is what the lease is for. On a big state, claim a slice (Texas, districts 1-10) rather than the whole thing, so other people can work beside you.