DMCA.com cases. Your own token via Authorization: Bearer. No function key, no shared token.
One address for any MCP client. No sign-in needed on this server.
5 read4 act1 other
Grouped by tool name. At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Public MCP for DMCA.com cases (company of record: DMCA.com).
Maintained as DMCA MCP Cases.
| 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.
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.
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).
/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).GET /api/mcp/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.
See server.json for official MCP Registry (packages + Azure remotes).
See mcp.json and .cursor-plugin/plugin.json for a future Marketplace submit.
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:
dmca-cases-public-mcp → Get publish profileAZURE_FUNCTIONAPP_PUBLISH_PROFILEAlso set Function App setting DMCA_API_TOKEN in Azure (not in GitHub) for live API calls.