dmca-cases-public-mcp

MCP serverDev tools

DMCA.com cases. Your own token via Authorization: Bearer. No function key, no shared token.

Use dmca-cases-public-mcp in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add dmca-cases-public-mcp and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the createCase tool from dmca-cases-public-mcp

Details

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

dmca-cases-public-mcpStart free

Install dmca-cases-public-mcp

The server’s own address, for the clients that take one directly. Or connect ahel once and every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user dmca-cases-public-mcp 'https://mcp.dmca.com/runtime/webhooks/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.dmca.com/runtime/webhooks/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=dmca-cases-public-mcp&config=eyJ1cmwiOiJodHRwczovL21jcC5kbWNhLmNvbS9ydW50aW1lL3dlYmhvb2tzL21jcCJ9

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.dmca.com/runtime/webhooks/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add dmca-cases-public-mcp --url 'https://mcp.dmca.com/runtime/webhooks/mcp'

    Run it once, then sign in with codex mcp login dmca-cases-public-mcp if the server asks for an account.

From the project's README

As published by netrodev/dmca-cases-public-mcp in README.md.

Public MCP for DMCA.com cases (company of record: DMCA.com).

Maintained as DMCA MCP Cases.

Tools

ToolUpstream
loginPOST https://api.dmca.com/login
listCasesGET https://api.dmca.com/listCases
listDIYCasesGET https://api.dmca.com/listDIYCases
listComplianceCasesGET https://api.dmca.com/listComplianceCases
getCaseByIdGET https://api.dmca.com/getCaseById?id=
createCasePOST https://api.dmca.com/createCase
createDIYCasePOST https://api.dmca.com/createDIYCase
createComplianceCasePOST https://api.dmca.com/createComplianceCase
updateCasePOST https://api.dmca.com/updateCase
getSiteReportGET https://api.dmca.com/getSiteReport/{domain}

Not exposed: register, badge/protected-item APIs, XARF.

Auth: env DMCA_API_TOKEN (or DMCA_TOKEN) sent as HTTP header Token. login can mint a token. Never logged. Response bodies are returned as upstream JSON — no invented schemas or status enums.

createCase, createDIYCase, createComplianceCase, and updateCase require a valid Token (DMCA_API_TOKEN). getSiteReport also sends Token.

Canonical docs: www.dmca.com/api · OpenAPI 2.1.2 · host https://api.dmca.com.

A) npm / stdio (local clients)

cd packages/mcp-stdio
npm install
npm run build
DMCA_API_TOKEN=your_token node dist/index.js

Cursor / Claude Desktop:

{
  "mcpServers": {
    "dmca-cases": {
      "command": "npx",
      "args": ["-y", "dmca-cases-mcp"],
      "env": { "DMCA_API_TOKEN": "YOUR_TOKEN" }
    }
  }
}

Package name: dmca-cases-mcp · registry mcpName: com.dmca/dmca-cases.

B) Azure Functions (.NET Isolated)

Canonical public host:

https://mcp.dmca.com

Default Azure hostname (fallback, serves the same app):

https://dmca-cases-public-mcp-afdcard8bbdtd4e3.westus3-01.azurewebsites.net

Cover: / (root) and /cover (alias) · Project: azure/DmcaCasesMcp.Functions (.NET 8 Isolated, code deploy — not container).

  • MCP (Functions MCP extension): /runtime/webhooks/mcp (and SSE sibling /runtime/webhooks/mcp/sse). The protocol endpoint is fixed by the Microsoft MCP extension; / is the HTML cover, not the MCP endpoint. Requests need an x-functions-key header (the mcp_extension system key, issued by DMCA.com on request).
  • Info pointer: GET /api/mcp
  • HTTP mirrors: /api/listCases, /api/listDIYCases, /api/listComplianceCases, /api/getCaseById, /api/login, /api/createCase, /api/updateCase, /api/createDIYCase, /api/createComplianceCase, /api/getSiteReport?domain= (upstream path /getSiteReport/{domain})

App setting: DMCA_API_TOKEN.

Deploy (after dotnet + Azure Functions Core Tools are available):

cd azure/DmcaCasesMcp.Functions
func azure functionapp publish dmca-cases-public-mcp --dotnet-isolated

(Use the exact Function App resource name in your subscription if it differs.)

Prefer Flex Consumption.

Registry metadata

See server.json for official MCP Registry (packages + Azure remotes).

Cursor plugin scaffolding

See mcp.json and .cursor-plugin/plugin.json for a future Marketplace submit.

Auto-deploy (GitHub Actions → Azure)

Workflow: .github/workflows/azure-functions-deploy.yml

On push to main (paths under azure/DmcaCasesMcp.Functions/**), GitHub Actions builds the .NET 8 Isolated project and deploys to Function App dmca-cases-public-mcp.

Required repo secret:

  1. Azure Portal → Function App dmca-cases-public-mcp → Get publish profile
  2. GitHub → Settings → Secrets and variables → Actions → AZURE_FUNCTIONAPP_PUBLISH_PROFILE

Also set Function App setting DMCA_API_TOKEN in Azure (not in GitHub) for live API calls.

Tools it offers (10)

What this server listed when ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • createCase
  • createComplianceCase
  • createDIYCase
  • getCaseById
  • getSiteReport
  • listCases
  • listComplianceCases
  • listDIYCases
  • login
  • updateCase

Signals

Last commit
Oct 2026
Advanced
Delivery
dmca-cases MCP server → your ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
com-dmca-dmca-cases
Source
github.com/netrodev/dmca-cases-public-mcp
Hosted endpoint
https://mcp.dmca.com/runtime/webhooks/mcp