Resemble AI

io.github.resemble-aiPublished by GitHub account resemble-aiv1.4.0Updated Oct 30, 2026

Resemble AI: deepfake, AI-text, and site agent detection, Detect Agents, intelligence, watermarks.

VerifiedStreamable HTTPWeb executableSecurity & MonitoringData & AnalyticsMedia & Design

Overview

AI-generated overview

Resemble AI's remote MCP server for deepfake and AI-text detection, media intelligence, watermarking, and website agent detection.

What you can do
  • Detect deepfakes in audio, image or video at a public HTTPS URL, and fetch or question completed detection results
  • Detect AI-written text of 25+ words and retrieve text detection results
  • Analyze media for transcription, translation, speakers, emotion, scene description and misinformation
  • Check, apply and trace provenance: watermark checks, watermark embedding, audio source tracing
  • Run managed Detect Agent investigations (insurance claim, breaking news, ID, document, evidence, social content) and read their transcripts
  • Manage Agent Detection sites and read visitor analytics, sessions and per-visit evidence
When to use it
Useful when you need to check whether media or text is AI-generated, add or verify provenance watermarks, or see how much of a website's traffic comes from AI agents rather than people.
Requirements
A remote streamable HTTP endpoint; no local install. Every request needs a Resemble API key sent as a Bearer token. Media must be reachable at a public HTTPS URL; text is sent inline and needs at least 25 words. Detect Agent runs are limited by the team's run allowance.
Before you install
Requires your Resemble API key, which grants access to your team's account and run allowances. Media URLs and text you submit are sent to Resemble's service. Agent Detection tools create and modify website integrations and publishable keys, and watermarking writes new media. Detection verdicts are model outputs and should be reported with their scores, not as definitive proof.

Installation

In SourceWeft

  1. Open Resemble AI in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.resemble-ai%2Fresemble-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "resemble-ai": {
      "type": "http",
      "url": "https://mcp.resemble.ai/mcp"
    }
  }
}

README

Resemble AI MCP Server

[License: MIT] [Python 3.10+] [MCP]

Official MCP server exposing Resemble AI documentation as resources and tools. Connect to Cursor, Claude Code, or any MCP-compatible client to enable your coding assistant to access Resemble AI docs during development.

Overview

This is the official Resemble AI MCP server. It implements the Model Context Protocol (stdio transport) to serve documentation from docs/pages/ as queryable resources. The server aggregates docs by topic and provides full-text search across all MDX files.

What it provides:

  • Topic-based documentation aggregation (13 topics: voice-cloning, text-to-speech, agents, etc.)
  • Full-text search across all MDX documentation pages
  • OpenAPI 3.0 spec with exact request/response schemas for code generation
  • Direct page and endpoint access

Once connected, your coding assistant can query Resemble AI documentation programmatically. You can vibe code complete applications—your assistant has instant access to guides, tutorials, and exact API schemas for accurate code generation.

Quick Start

1. Clone & Install

bash
git clone https://github.com/resemble-ai/resemble-mcp.gitcd resemble-mcp
# Create virtual environmentpython3 -m venv venvsource venv/bin/activate  # Windows: venv\Scripts\activate
# Install dependenciespip install -r requirements.txt

2. Configure MCP Client

Cursor: Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "resemble-ai-docs": {      "command": "/path/to/resemble-mcp/venv/bin/python",      "args": ["/path/to/resemble-mcp/server.py"]    }  }}

Claude Code / Claude Desktop: Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or equivalent location for your OS:

json
{  "mcpServers": {    "resemble-ai-docs": {      "command": "/path/to/resemble-mcp/venv/bin/python",      "args": ["/path/to/resemble-mcp/server.py"]    }  }}

Note: Use absolute paths. Replace /path/to/resemble-mcp with your actual path.

3. Restart Client

Restart your MCP client to load the server. Tools will be available after restart.

Available Tools

resemble_docs_lookup

Returns aggregated documentation for a topic. Accepts topic ID and returns all related pages concatenated.

Parameters:

  • topic (string, required): One of: voice-cloning, text-to-speech, speech-to-speech, speech-to-text, getting-started, voice-design, streaming, detect, agents, sdks, projects-clips, audio-tools, ssml

Returns: Markdown content with all pages for the topic.

resemble_search

Full-text search across all documentation pages. Returns matching pages with snippets.

Parameters:

  • query (string, required): Search query
  • limit (integer, optional): Max results (default: 5)

Returns: List of matching pages with titles, paths, and content snippets.

resemble_get_page

Retrieves a specific documentation page by path.

Parameters:

  • path (string, required): Page path relative to docs/pages/ (e.g., getting-started/quickstart)

Returns: Full page content in Markdown.

resemble_list_topics

Lists all available topic IDs with descriptions.

Returns: Markdown list of topics.

resemble_api_endpoint

Get detailed OpenAPI specification for a specific API endpoint. Returns exact request/response schemas, parameters, and types.

Parameters:

  • method (string, required): HTTP method (GET, POST, PUT, PATCH, DELETE)
  • path (string, required): API endpoint path (e.g., /synthesize, /voices)

Returns: Endpoint specification with schemas, parameters, and response formats.

resemble_api_search

Search the OpenAPI spec for endpoints matching a query.

Parameters:

  • query (string, required): Search query (e.g., voice, streaming, agent)

Returns: List of matching endpoints with methods, paths, and summaries.

Usage

Once configured, your coding assistant (Cursor, Claude Code, etc.) can call these tools directly. Example use cases:

Building a voice cloning app:

json
{  "name": "resemble_docs_lookup",  "arguments": { "topic": "voice-cloning" }}

Searching for streaming implementation:

json
{  "name": "resemble_search",  "arguments": { "query": "websocket streaming", "limit": 5 }}

Getting exact API schema for implementation:

json
{  "name": "resemble_api_endpoint",  "arguments": { "method": "POST", "path": "/synthesize" }}

Finding all voice-related API endpoints:

json
{  "name": "resemble_api_search",  "arguments": { "query": "voice" }}

Your assistant uses these tools automatically when you ask it to build features. For example, "build me a TTS streaming service" triggers resemble_docs_lookup for the text-to-speech topic, and may use resemble_api_endpoint to get exact request schemas for accurate implementation.

Project Structure

resemble-mcp/├── server.py               # MCP server implementation├── docs/│   └── pages/              # MDX documentation files│       ├── getting-started/    # Auth, quickstart, basics│       ├── voice-generation/   # TTS, STT, S2S│       ├── voice-creation/     # Voice cloning, recordings│       ├── agents/             # AI agents│       ├── detect/             # Deepfake detection│       └── guides/             # Step-by-step tutorials└── openapi/    └── openapi.yml         # OpenAPI 3.0 specification

Supported MCP Clients

Works with any client implementing the Model Context Protocol:

Development

The server uses stdio transport (reads from stdin, writes to stdout) as per MCP specification.

bash
# Run server directly (for testing/debugging)python server.py

Architecture:

  • Server implementation: server.py
  • Documentation source: docs/pages/ (MDX files)
  • API specification: openapi/openapi.yml (OpenAPI 3.0)
  • Topic definitions: Hardcoded in TOPICS dict
  • Search: Full-text search with scoring across docs and OpenAPI endpoints

Troubleshooting

Server not loading:

  • Verify absolute paths in MCP config
  • Ensure virtual environment is activated
  • Check mcp package is installed: pip show mcp

Tools not appearing:

  • Restart MCP client
  • Check client logs for initialization errors
  • Verify server starts without errors: python server.py

Search returns no results:

  • Use resemble_docs_lookup with topic ID for guaranteed results
  • Try broader search terms
  • Check topic list: resemble_list_topics

License

MIT License - see LICENSE for details.

Links

Source: README.md at commit 372ac08

Tools

18

detect_deepfake

Detect whether media (audio, image, or video) at a public HTTPS URL is a deepfake / AI-generated. Polls to completion and returns the verdict label, confidence score, and full result. Optional flags add media intelligence, audio source tracing, visualization, reverse image search (images), out-of-distribution detection, and zero-retention (auto-delete media after analysis). model_type: auto | image | talking_head.

Parametersurlrequiredvisualizemodel_typemax_wait_secondsrun_intelligenceuse_ood_detectoruse_reverse_searchzero_retention_modeaudio_source_tracing

get_detection

Fetch a detection by UUID, polling until it completes (bounded). Use after detect_deepfake when a long job exceeded its wait budget.

Parametersuuidrequiredmax_wait_seconds

detect_ai_text

Detect whether TEXT (an essay, email, post, review, comment, article) was written by an AI language model. Needs at least 25 words: shorter text comes back as prediction 'uncertain' with no model call - concatenate several messages from the same author to reach the minimum. Returns prediction ('ai' | 'human'), confidence (how sure the model is of that prediction; it is NOT an AI probability, so 'human' at 0.95 means strongly human), and the full result. Only the first ~400 words are read; chunk longer documents. A result can take several minutes when the model is cold or jobs are queued - if status is still 'processing' when the wait budget ends, resume with get_text_detection(uuid). Detection is probabilistic, not proof of authorship.

Parameterstextrequiredthresholdmax_wait_secondszero_retention_mode

get_text_detection

Fetch a text detection by UUID, polling until it completes (bounded). Use after detect_ai_text returned status 'processing' - typically a cold start.

Parametersuuidrequiredmax_wait_seconds

analyze_media

Analyze media for structured intelligence: transcription, translation, language, speaker info, emotion, scene description, abnormalities, and misinformation analysis. media_type: auto | audio | video | image.

Parametersurlrequiredmedia_typestructured_jsonmax_wait_seconds

ask_about_detection

Ask a natural-language question about a COMPLETED detection (e.g. 'how confident is the model that this is fake?'). Returns the grounded answer.

Parametersqueryrequireddetect_uuidrequiredmax_wait_seconds

detect_watermark

Check whether media at a public HTTPS URL carries a Resemble invisible watermark (audio-first; per-channel verdict for audio).

Parametersurlrequired

apply_watermark

Embed an invisible Resemble provenance watermark into media (audio-first) and return the watermarked media URL. strength 0.0-1.0 (image/video only).

Parametersurlrequiredstrengthcustom_messagemax_wait_seconds

trace_audio_source

Get the audio source-tracing report for a detection (which AI platform generated the fake audio). Only available when detection ran with audio_source_tracing and labeled the audio fake.

Parametersuuidrequired

list_detect_agents

List the managed Detect Agents — investigators that wrap detection in a multi-step workflow ending in a written assessment. Returns each agent's preset_id plus this team's run allowance (free_runs_remaining, entitled), which is worth checking before starting a run.

Takes no parameters.

run_detect_agent_investigation

Run a managed Detect Agent investigation against media at a public HTTPS URL and return its verdict. preset_id is one of: investigate_social_content, review_insurance_claim, verify_breaking_news, verify_document, verify_evidence, verify_id (confirm with list_detect_agents). query states the investigation objective; check_urls adds URLs for the agent to check. Consumes a run of the team's allowance. `label`/`score` are the Detect evidence and are the only basis for an authenticity claim; `verdict` is the agent's written assessment. If timed_out is true the investigation is still running server-side — retrieve it later with get_detect_agent_run.

Parametersurlrequiredquerypreset_idrequiredcheck_urlsmax_wait_seconds

get_detect_agent_run

Fetch a persisted Detect Agent investigation by run_id, including its full event transcript. Use after run_detect_agent_investigation reported timed_out, or to re-read an earlier investigation.

Parametersrun_idrequiredpreset_idrequired

agent_detection_list_sites

List this team's Agent Detection integrations. Agent Detection tells a website whether each visitor is a person or an AI agent (for example a personal assistant browsing on someone's behalf). Each integration is one website, with the domains its publishable key works on and the one-line script snippet to paste into the site's <head>.

Takes no parameters.

agent_detection_create_site

Create an Agent Detection integration for a website and return its publishable key (pk_live_...) and the script snippet to install. domain is the site's domain, e.g. example.com. If the team already has an integration for that domain, the existing one is returned instead of a duplicate. The publishable key is safe to put in a public web page: it only sends telemetry, only from the listed domains. Never put the Resemble API key in a page. Paste the snippet into the <head> of every page to cover; the page can then listen for the 'resemble:verdict' event or call ResembleAgentDetection.onVerdict().

Parametersnamedomainrequired

agent_detection_update_site

Replace the list of domains an Agent Detection integration's publishable key is valid on (for example to add a staging or www host), and optionally rename it. domains replaces the whole list, so include every domain to keep; at least one is required.

Parametersnamedomainsrequiredsite_idrequired

agent_detection_get_analytics

Summarise who is visiting a website: people vs AI agents. Returns totals (visits, decided, agents, people, agent_share, gated), counts per visitor class (human, computer_use_agent, browser_automation, scripted_client), and breakdowns by page, day, and network. Use this to show how much traffic comes from agents and which pages they use, so the site can be made easier for helpful agents and protected from harmful ones. Filters are optional: site_id (one integration), settled ('human' or 'agent'), page_path, and since/until as ISO 8601 times. agent_share is agents / decided visits, or null when nothing is decided yet.

Parameterssinceuntilsettledsite_idpage_path

agent_detection_list_sessions

List individual website visits, newest first, each with its verdict (settled: human, agent, or null while still open), visitor_class, p_person, the page, referrer, user agent, and duration. Same filters as agent_detection_get_analytics plus a free-text search. per_page max 100.

Parameterspagesinceuntilsearchsettledsite_idper_pagepage_path

agent_detection_get_session

Get one website visit and the evidence behind its verdict: the feature vector it was decided from, plain-language observations, and each model read. When the visit was recorded, the raw event stream is available; it is omitted unless include_events is true, and then capped at the first 200 events. The verdict is advisory: it comes from browser signals, which a determined attacker can fake.

Parameterssession_idrequiredinclude_events

Version history

2
  1. v1.4.0LatestOct 29, 2026
  2. v1.1.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts