dmca-cases-public-mcp
MCP serverDev toolsDMCA.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
Needs your own account with this service. Keys stay in your vault.
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.
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/mcpAdd 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=eyJ1cmwiOiJodHRwczovL21jcC5kbWNhLmNvbS9ydW50aW1lL3dlYmhvb2tzL21jcCJ9Open the link and Cursor adds the server at that address.
ChatGPT
https://mcp.dmca.com/runtime/webhooks/mcpIn 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
| Tool | Upstream |
|---|---|
login | POST https://api.dmca.com/login |
listCases | GET https://api.dmca.com/listCases |
listDIYCases | GET https://api.dmca.com/listDIYCases |
listComplianceCases | GET https://api.dmca.com/listComplianceCases |
getCaseById | GET https://api.dmca.com/getCaseById?id= |
createCase | POST https://api.dmca.com/createCase |
createDIYCase | POST https://api.dmca.com/createDIYCase |
createComplianceCase | POST https://api.dmca.com/createComplianceCase |
updateCase | POST https://api.dmca.com/updateCase |
getSiteReport | GET 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 anx-functions-keyheader (themcp_extensionsystem 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:
- Azure Portal → Function App
dmca-cases-public-mcp→ Get publish profile - 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.
createCasecreateComplianceCasecreateDIYCasegetCaseByIdgetSiteReportlistCaseslistComplianceCaseslistDIYCasesloginupdateCase
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
github.com/netrodev/dmca-cases-public-mcp