Back to Directory/Security & Auth

DMCA.com Cases

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

Security & AuthC#v1.2.1

dmca-cases-public-mcp

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.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y dmca-cases-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "com-dmca-dmca-cases": {
      "command": "npx",
      "args": [
        "-y",
        "dmca-cases-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

dmca-cases-mcpnpm

Compatible MCP Clients

DMCA.com Cases works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More