CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Sidearm

sidearmdrm/mcp-server
19 toolsauthSTDIOregistry active
Summary

Connects Claude and other MCP clients to the Sidearm API for content protection and AI detection. Exposes 27 tools covering media registration, running protection algorithms like Nightshade and Glaze, detecting AI-generated content across images/video/audio/text, membership inference testing to check if your work trained a model, and fingerprint-based search for stolen content. Handles async job polling, C2PA provenance chains, and account management. Useful when you're building workflows around protecting creative work from scraping, verifying content authenticity, or tracking unauthorized use. Requires a Sidearm API key and runs via npx in Cursor, Claude Desktop, or Windsurf configurations.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

19 tools
list_algorithmsList available algorithms for media protection, watermarking, and AI content disruption. Returns algorithm IDs, names, supported media types, and descriptions. Use this to discover valid algorithm IDs before calling run_algorithm. Filter by category (open = research algorithms...2 params

List available algorithms for media protection, watermarking, and AI content disruption. Returns algorithm IDs, names, supported media types, and descriptions. Use this to discover valid algorithm IDs before calling run_algorithm. Filter by category (open = research algorithms...

Parameters* required
categorystring
Filter by algorithm categoryone of open · proprietary
media_typestring
Filter by supported media typeone of image · video · audio · text · pdf · gif
run_algorithmRun one or more named algorithms on media. Provide algorithm IDs (from list_algorithms) and either a public media_url or base64-encoded media content. For text, use the text param. Returns a job_id for async processing — use check_job to poll for results. Requires credits.9 params

Run one or more named algorithms on media. Provide algorithm IDs (from list_algorithms) and either a public media_url or base64-encoded media content. For text, use the text param. Returns a job_id for async processing — use check_job to poll for results. Requires credits.

Parameters* required
mimestring
MIME type of the media (e.g. image/png, audio/wav)
tagsarray
Tags for organizing and filtering
textstring
Plain text content (for text algorithms like spectra, textmark)
mediastring
Base64-encoded media content (alternative to media_url)
filenamestring
Original filename for human-readable output naming
c2pa_wrapboolean
Wrap output in C2PA provenance signing (default: true)
media_urlstring
Public URL of the media file to process
algorithmsarray
Algorithm IDs to run (e.g. ['nightshade', 'glaze']). Use list_algorithms to discover IDs.
webhook_urlstring
URL to receive a POST when the job completes
protect_mediaProtect media using a curated preset level. Automatically selects the best combination of algorithms for the given media type. Simpler than run_algorithm — just specify standard or maximum protection. Provide either a public media_url, base64 media, or text content. Returns a...8 params

Protect media using a curated preset level. Automatically selects the best combination of algorithms for the given media type. Simpler than run_algorithm — just specify standard or maximum protection. Provide either a public media_url, base64 media, or text content. Returns a...

Parameters* required
mimestring
MIME type (e.g. image/png, audio/wav, text/plain)
tagsarray
Tags for organizing and filtering
textstring
Plain text content to protect
levelstring
Protection level: standard (fast, good protection) or maximum (slower, strongest). Default: standardone of standard · maximum
mediastring
Base64-encoded media content (alternative to media_url)
filenamestring
Original filename for human-readable output naming
media_urlstring
Public URL of the media file to protect
webhook_urlstring
URL to receive a POST when the job completes
check_jobCheck the status of an asynchronous job (from run_algorithm, protect_media, or detect_ai). Returns status (queued, processing, completed, failed), progress percentage, and result data including download URLs when complete.1 params

Check the status of an asynchronous job (from run_algorithm, protect_media, or detect_ai). Returns status (queued, processing, completed, failed), progress percentage, and result data including download URLs when complete.

Parameters* required
job_idstring
The job ID returned by a previous tool call
search_mediaSearch for similar or matching media across the indexed library. Provide a media_url or base64 media to find matches. Tiers: exact (hash match), quick (perceptual hash), perceptual (visual similarity), compositional (scene structure), full (all tiers). Returns results immediat...5 params

Search for similar or matching media across the indexed library. Provide a media_url or base64 media to find matches. Tiers: exact (hash match), quick (perceptual hash), perceptual (visual similarity), compositional (scene structure), full (all tiers). Returns results immediat...

Parameters* required
tagsarray
Restrict search to media with these tags
typestring
Search tier — controls depth vs speed tradeoff. Default: perceptualone of exact · quick · perceptual · compositional · full
limitinteger
Maximum results to return (1-100, default: 20)
mediastring
Base64-encoded media content to search for
media_urlstring
Public URL of the media to search for
list_searchesList previous similarity searches performed on your account. Returns a paginated list of past search queries with timestamps and result counts.2 params

List previous similarity searches performed on your account. Returns a paginated list of past search queries with timestamps and result counts.

Parameters* required
limitinteger
Results per page (1-100, default: 20)
cursorstring
Pagination cursor from a previous response
detect_aiDetect whether media content was generated by AI. Supports images, video, audio, and text/PDF. Runs multiple specialized detection models in parallel for the given media type. Returns a job_id — use check_job to poll for results.5 params

Detect whether media content was generated by AI. Supports images, video, audio, and text/PDF. Runs multiple specialized detection models in parallel for the given media type. Returns a job_id — use check_job to poll for results.

Parameters* required
mimestring
MIME type of the media (e.g. image/png, audio/wav, text/plain)
tagsarray
Tags for organizing and filtering
textstring
Plain text content to analyze for AI generation
mediastring
Base64-encoded media content to analyze
media_urlstring
Public URL of the media to analyze
detect_fingerprintDetect whether media has been previously registered or seen, using fingerprint matching. Compares against your indexed library at varying depth. Tiers: exact (hash match), quick (perceptual hash), perceptual (visual similarity), compositional (scene structure), full (all tiers...4 params

Detect whether media has been previously registered or seen, using fingerprint matching. Compares against your indexed library at varying depth. Tiers: exact (hash match), quick (perceptual hash), perceptual (visual similarity), compositional (scene structure), full (all tiers...

Parameters* required
tagsarray
Tags to scope the detection to
tierstring
Detection depth — controls thoroughness vs speed. Default: quickone of exact · quick · perceptual · compositional · full
mediastring
Base64-encoded media content to check
media_urlstring
Public URL of the media to check
detect_membershipRun membership inference to determine whether your protected content was used to train a suspect AI model. Provide content IDs (from your registered media) and the model to test. Methods: pattern (watermark detection), statistical (distribution analysis), combined (both). Retu...4 params

Run membership inference to determine whether your protected content was used to train a suspect AI model. Provide content IDs (from your registered media) and the model to test. Methods: pattern (watermark detection), statistical (distribution analysis), combined (both). Retu...

Parameters* required
tagsarray
Tags for organizing and filtering
methodstring
Inference method. Default: combinedone of pattern · statistical · combined
content_idsarray
UUIDs of your registered media to test against the suspect model
suspect_modelstring
Identifier or name of the AI model suspected of training on your content
register_mediaRegister and protect media on the Sidearm platform. Modes: register (provenance signing only), search_ready (register + vector indexing), standard (search_ready + watermarks + AI-training poison), maximum (standard + style cloaking + adversarial hardening). Returns the created...5 params

Register and protect media on the Sidearm platform. Modes: register (provenance signing only), search_ready (register + vector indexing), standard (search_ready + watermarks + AI-training poison), maximum (standard + style cloaking + adversarial hardening). Returns the created...

Parameters* required
modestring
Protection level. Default: standardone of register · search_ready · standard · maximum
tagsarray
Tags for organizing and filtering
mediastring
Base64-encoded media content to register
media_urlstring
Public URL of the media to register
expires_atstring
ISO 8601 datetime when this registration expires
list_mediaList media assets registered to your account. Returns a paginated list with media IDs, types, status, tags, and protection details. Use cursor-based pagination for large libraries.2 params

List media assets registered to your account. Returns a paginated list with media IDs, types, status, tags, and protection details. Use cursor-based pagination for large libraries.

Parameters* required
limitinteger
Results per page (1-100, default: 20)
cursorstring
Pagination cursor from a previous response
get_mediaGet details of a specific registered media asset by ID. Returns metadata, protection status, applied algorithms, tags, and storage information.1 params

Get details of a specific registered media asset by ID. Returns metadata, protection status, applied algorithms, tags, and storage information.

Parameters* required
media_idstring
UUID of the media asset
update_mediaUpdate a registered media asset. Currently supports updating the original media URL (e.g., after re-hosting the original file).2 params

Update a registered media asset. Currently supports updating the original media URL (e.g., after re-hosting the original file).

Parameters* required
media_idstring
UUID of the media asset to update
original_media_urlstring
New URL for the original (unprotected) media file
delete_mediaPermanently delete a registered media asset. Removes storage files, vector embeddings, and all associated metadata. This action cannot be undone.1 params

Permanently delete a registered media asset. Removes storage files, vector embeddings, and all associated metadata. This action cannot be undone.

Parameters* required
media_idstring
UUID of the media asset to delete
get_rightsGet rights and licensing information for a registered media asset. Returns C2PA content credentials, Schema.org structured data, IPTC rights metadata, and TDM-AI protocol declarations. Useful for verifying provenance and license terms.1 params

Get rights and licensing information for a registered media asset. Returns C2PA content credentials, Schema.org structured data, IPTC rights metadata, and TDM-AI protocol declarations. Useful for verifying provenance and license terms.

Parameters* required
media_idstring
UUID of the media asset
get_billingGet billing, usage summary, storage stats, and algorithm breakdown for your account. Returns credit balance, protection/storage cost breakdown, per-algorithm usage, billing events, and a link to the Stripe customer portal. Filter by date range, event type, tags, or API token.6 params

Get billing, usage summary, storage stats, and algorithm breakdown for your account. Returns credit balance, protection/storage cost breakdown, per-algorithm usage, billing events, and a link to the Stripe customer portal. Filter by date range, event type, tags, or API token.

Parameters* required
tagsstring
Comma-separated tags to filter by
typestring
Filter by event type
end_datestring
Filter events until this ISO 8601 date (inclusive)
token_idstring
Filter events to a specific API token UUID
account_idstring
Your account UUID
start_datestring
Filter events from this ISO 8601 date (inclusive)
get_provenanceGet the full provenance chain for a media asset. Returns every protection algorithm applied (with versions, timings, and metadata), the C2PA manifest, any AI training membership inference results, and every search where this media appeared as a match. Use this to audit the com...1 params

Get the full provenance chain for a media asset. Returns every protection algorithm applied (with versions, timings, and metadata), the C2PA manifest, any AI training membership inference results, and every search where this media appeared as a match. Use this to audit the com...

Parameters* required
media_idstring
UUID of the media asset
search_docsSearch the Sidearm API documentation. Returns relevant sections from the full developer reference covering endpoints, request/response formats, authentication, SDKs, algorithms, and usage examples. Use this to look up how to call an endpoint, understand a concept, or find exam...1 params

Search the Sidearm API documentation. Returns relevant sections from the full developer reference covering endpoints, request/response formats, authentication, SDKs, algorithms, and usage examples. Use this to look up how to call an endpoint, understand a concept, or find exam...

Parameters* required
querystring
What to look for — e.g. 'authenticate', 'protect media', 'detect AI', 'Node SDK', 'watermark'
navigate_uiLook up how to perform an action in the Sidearm dashboard UI. Returns step-by-step instructions for dashboard operations such as uploading media, running searches, managing API keys, reviewing deals, buying credits, and more. Use this when the user asks how to do something in...1 params

Look up how to perform an action in the Sidearm dashboard UI. Returns step-by-step instructions for dashboard operations such as uploading media, running searches, managing API keys, reviewing deals, buying credits, and more. Use this when the user asks how to do something in...

Parameters* required
querystring
What the user wants to do — e.g. 'upload files', 'create API key', 'buy credits', 'accept a deal', 'check usage'

@sidearmdrm/mcp

MCP server for the Sidearm API — protect media from AI training, detect AI-generated content, and search for stolen work.

This package exposes the Sidearm REST API as Model Context Protocol (MCP) tools that AI agents (Cursor, Claude Desktop, Windsurf, etc.) can call directly.

Quick Start

1. Get an API key

Sign up at sdrm.io and create an API key at sdrm.io/api-keys.

2. Configure your agent

Add to your MCP configuration file:

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "sdrm": {
      "command": "npx",
      "args": ["-y", "@sidearmdrm/mcp"],
      "env": {
        "SDRM_API_KEY": "sk_live_..."
      }
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "sdrm": {
      "command": "npx",
      "args": ["-y", "@sidearmdrm/mcp"],
      "env": {
        "SDRM_API_KEY": "sk_live_..."
      }
    }
  }
}

Windsurf (~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "sdrm": {
      "command": "npx",
      "args": ["-y", "@sidearmdrm/mcp"],
      "env": {
        "SDRM_API_KEY": "sk_live_..."
      }
    }
  }
}

That's it. Your agent can now call Sidearm tools.

Tools (27)

Discovery

ToolDescription
list_algorithmsBrowse available protection algorithms. Filter by category or media type.

Protection & Extraction

ToolDescription
run_algorithmRun specific algorithms on media by ID. Returns a job for async processing.
protect_mediaProtect media with a preset level (standard/maximum). Auto-selects algorithms.
extract_embeddingsExtract raw embedding vectors from media for downstream similarity search or ML pipelines.

Jobs

ToolDescription
check_jobPoll async job status. Returns progress and results when complete.

Detection

ToolDescription
detect_aiDetect whether media was AI-generated. Supports image, video, audio, text.
detect_fingerprintCheck if media has been previously registered using fingerprint matching.
detect_membershipTest whether your content was used to train a suspect AI model.

Search

ToolDescription
search_mediaSearch for similar media across your indexed library.
list_searchesList previous searches on your account.

Media Management

ToolDescription
register_mediaRegister and index media with optional protection mode (register, search_ready, standard, maximum).
list_mediaList media assets in your library (paginated, filterable).
get_mediaGet details of a specific media asset including protection status and algorithms applied.
update_mediaUpdate media metadata (e.g., original URL).
delete_mediaPermanently delete a media asset and all associated data.

Account, Rights & Billing

ToolDescription
get_accountGet your account details — ID, name, email, credit balance, and plan info.
get_rightsGet C2PA, IPTC, and rights information for a media asset.
get_billingView credit balance, usage breakdown, per-algorithm costs, and billing portal link.

Provenance & Identification

ToolDescription
get_provenanceGet the full provenance chain for an asset — algorithms, C2PA manifest, membership results.
identify_mediaIdentify media by its embedded Sidearm fingerprint and extract its C2PA provenance chain.

Shares

ToolDescription
create_shareCreate a shareable link for a detection, search, or provenance result (starts private).
get_shareGet a shared result by its share ID.
publish_shareMake a shared result publicly accessible.

Deletion Records

ToolDescription
list_deletionsList deletion records documenting permanently deleted assets.
get_deletionGet details of a specific deletion record including purged algorithms and storage status.

Documentation

ToolDescription
search_docsSearch the Sidearm API documentation. Returns relevant sections from the full developer reference.
navigate_uiLook up how to perform actions in the Sidearm dashboard. Returns step-by-step instructions.

Example Agent Conversations

"Protect this image from AI training"

Agent calls protect_media with the image URL, then check_job to get the protected file.

"What algorithms are available for audio?"

Agent calls list_algorithms with media_type: "audio".

"Run Nightshade and Glaze on my artwork"

Agent calls run_algorithm with algorithms: ["nightshade", "glaze"].

"Is this photo AI-generated?"

Agent calls detect_ai with the image, then check_job for results.

"Was my artwork used to train Stable Diffusion?"

Agent calls detect_membership with your media IDs and the model name.

"How do I upload files in the dashboard?"

Agent calls navigate_ui with query: "upload files" for step-by-step instructions.

Environment Variables

VariableRequiredDescription
SDRM_API_KEYYesYour Sidearm API key (sk_live_... or sk_test_...)
SDRM_BASE_URLNoOverride the API base URL (default: https://api.sdrm.io)

Development

git clone https://github.com/sidearmDRM/mcp-server.git
cd mcp-server
npm install
npm run build

Test locally with the MCP Inspector:

SDRM_API_KEY=sk_test_... npx @modelcontextprotocol/inspector node dist/index.js

License

MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

SDRM_API_KEYsecret

Your Sidearm API key (sk_live_... or sk_test_...). Optional — documentation tools work without it.

SDRM_BASE_URL

Override the API base URL (default: https://api.sdrm.io)

Registryactive
Package@sidearmdrm/mcp
TransportSTDIO
AuthRequired
UpdatedMar 11, 2026
View on GitHub