About DMCA.com Cases
DMCA.com Cases exposes DMCA.com case-management operations to users and systems working with DMCA cases. Its tools cover case listing, retrieval, creation, updates, and site reports, using the account's own API token.
Key features
- 01List standard, DIY, and compliance cases
- 02Retrieve a case by ID
- 03Create standard, DIY, and compliance cases
- 04Update cases
- 05Get domain site reports
- 06Authenticate with a supplied API token
Use cases
- 01Review existing DMCA cases
- 02Create a case for DMCA.com
- 03Update a case using its API
- 04Retrieve a report for a domain
MCP support
The MCP server exposes selected DMCA.com API operations as tools, including case management and site reports. It accepts the user's own token rather than a shared token; local stdio and hosted endpoints are documented.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.dmca.com/runtime/webhooks/mcpclaude mcp add --transport http com-dmca-dmca-cases https://mcp.dmca.com/runtime/webhooks/mcp{"mcpServers":{"com-dmca-dmca-cases":{"type":"http","url":"https://mcp.dmca.com/runtime/webhooks/mcp"}}}Open in Cursor{"servers":{"com-dmca-dmca-cases":{"type":"http","url":"https://mcp.dmca.com/runtime/webhooks/mcp"}}}Open in VS Code{"mcpServers":{"com-dmca-dmca-cases":{"type":"http","url":"https://mcp.dmca.com/runtime/webhooks/mcp"}}}{"mcpServers":{"com-dmca-dmca-cases":{"serverUrl":"https://mcp.dmca.com/runtime/webhooks/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://mcp.dmca.com/runtime/webhooks/mcpAuth requiredTools
10| Parameter | Type | Required | Description |
|---|---|---|---|
| token | string | No | DMCA API token from the login tool; optional if the server/session already has one. |
| subject | string | Yes | Case subject. |
| description | string | Yes | Case description. |
| copiedFromUrl | string | No | Optional original / copied-from URL. |
| infringingUrl | string | No | Optional infringing URL. |
| infringingSiteIp | string | No | Optional infringing site IP. |
Details
From the project READMEdmca-cases-public-mcp
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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.