resemble-mcp
This server is an MCP connector for Resemble AI media authenticity, letting assistants investigate URLs or files for deepfakes, manage Detect Agents, and ask questions about detection reports.
List managed Resemble Detect Agents (social, news, documents, evidence, ID, web).
Run an investigation on a public URL or local file and get a verdict + run ID.
List recent investigation runs for an agent.
Fetch persisted investigation run details by run ID.
Create deepfake detection jobs for audio, image, or video, with optional watermark detection, source tracing, intelligence, reverse search, and zero-retention mode.
Poll/get deepfake detection results by UUID, optionally including expert results.
Ask natural-language follow-up questions about a completed Detect report.
Poll answers to Detect Intelligence questions.
Securely upload private media to Resemble for Detect, returning a short-lived token.
Sanity-check the API key via the account profile.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@resemble-mcprun a deepfake investigation on https://example.com/video.mp4"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
resemble-ai-connector
Agent Plugin + MCP server for Resemble AI media authenticity. Works with Grok Bot (Cursor Agent Plugins) and Muse (stdio MCP).
Use case
Give an assistant a complete authenticity workflow:
List managed Detect Agents (social, news, documents, evidence, ID, web).
Run an investigation against a public URL (SSE stream → verdict +
run_id).Optionally submit a deepfake Detect job for audio/image/video scores, watermark, source tracing, or intelligence.
Ask follow-up questions on a Detect report.
Docs: docs.resemble.ai · Auth: Authorization: Bearer <API_KEY> against https://app.resemble.ai/api/v2.
Related MCP server: Reality Defender MCP Server
Tools
Tool | Purpose |
| List Detect Agents |
| Run agent on |
| Recent runs for an agent |
| Persisted run detail |
| Deepfake Detect job |
| Poll Detect result |
| Detect Intelligence Q&A |
| Poll Intelligence answer |
| API key sanity check |
One-line install (Grok Bot)
Ask any Grok Bot:
Add Resemble MCP so that you can investigate media authenticity by following https://github.com/obaid/resemble-ai-connector/blob/main/instructions.md
That file is written for the bot: it adds MCP via uvx from this repo, smoke-checks, then does the job you named. Full steps: instructions.md.
Install (local)
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
export RESEMBLE_API_KEY=...
resemble-mcp # stdio MCPSmoke test (no MCP host required):
python scripts/smoke_test.pyMCP transports
Host | Recommended config |
Grok Bot |
|
Muse / local | Install this package and use |
This repo’s stdio server implements the Trust authenticity workflow (Detect Agents + Detect + secure upload) against the public REST API. Grok Bot can also use Resemble’s hosted action MCP at the same API key.
Grok Bot
This repo is an Agent Plugins package (plugin.json + mcp.json + skills/).
Set
RESEMBLE_API_KEYunder Plugins → Configure (or pass env when adding a custom server).Install from marketplace after publish, or ask Grok Bot to add a custom stdio server using
mcp.json.Submit path for marketplace: https://cursor.com/marketplace/publish
localhost URLs on your laptop are not reachable from Grok Bot. Prefer uvx --from git+… resemble-mcp or install on the bot computer.
Muse
pip install -e .into Muse’s environment.Wire stdio MCP from
muse/mcp.stdio.example.json.Append
muse/AGENTS.md.snippetto agent instructions.Restart Muse / host and call
resemble_list_detect_agents.
Security
Never commit
.envor real keys.Prefer public HTTPS media URLs; use
zero_retention_modewhen Detect must not retain uploads.
License
MIT
Available Tools
10 toolsresemble_accountA
Sanity-check the API key by fetching the Resemble account profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It indicates a read operation via 'fetch', but doesn't explicitly state that it's non-destructive or describe error behavior (e.g., what happens if the key is invalid). Some inference is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence with no filler. It front-loads the purpose and avoids redundant explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description fully covers the purpose. The output schema handles return value details, and the tool's simplicity means nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, there is nothing to document. The description adds no parameter details, but none are needed. Baseline for 0 params is 4, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('fetch') and resource ('Resemble account profile'), with a clear purpose (sanity-checking the API key). This unambiguously distinguishes it from the sibling tools, which all deal with detections or investigations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (verifying API key validity) and, given the sibling context, it's obvious this tool is not for detection workflows. It doesn't explicitly mention alternatives, but the context makes the distinction clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_ask_detection_questionC
Ask a natural-language question about a completed Detect report (Detect Intelligence).
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | ||
| detect_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool asks a question about a 'completed' report, which implies the report must exist and be finalized. However, it does not disclose any behavioral traits such as whether it only supports certain types of questions, whether it consumes tokens, or whether it can handle ambiguity. The description is minimal and does not go beyond the obvious purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action. It is efficient with no wasted words. However, it lacks structure such as headers or examples, but for a simple tool this is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (which may describe the answer structure), the description does not need to explain return values. However, the tool has only 2 parameters and no annotations, so the description should provide more context on when to use it (e.g., after a Detect report is complete) and what constitutes a good 'question'. The description is too sparse to fully enable an agent to use it correctly, especially with low parameter coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description adds the only semantic meaning for the parameters. The description mentions 'natural-language question' which hints at the 'question' parameter, but it does not clarify the format of 'detect_uuid' (e.g., it's a UUID string) or how to phrase the question effectively. There is no mention that 'detect_uuid' should correspond to a completed report. This is insufficient given that the schema provides only parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a clear verb and resource: 'ask a natural-language question' about a 'Detect report'. It is distinct from siblings like resemble_get_detection, which likely retrieves the report itself, and resemble_get_detection_answer, which may return a specific answer. While it doesn't explicitly name these siblings, it clearly indicates a Q&A interaction with a completed Detect report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that it should be used when you have a completed Detect report and need to ask a question. However, it does not explicitly state when NOT to use this tool or mention alternatives. For example, it doesn't say 'use resemble_get_detection_answer for retrieving a specific answer' or 'use resemble_run_investigation for deeper analysis'. The context is clear but lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_create_detectionA
Submit a deepfake detection job for audio, image, or video.
Provide exactly one of url (public HTTPS) or file_path. wait=True sends Prefer: wait so the response includes a completed verdict when possible. Optional intelligence / watermark / source-tracing / reverse-search flags map to the Detect API.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| wait | No | ||
| signal | No | ||
| modality | No | ||
| face_only | No | ||
| file_path | No | ||
| intelligence | No | ||
| detect_watermark | No | ||
| use_reverse_search | No | ||
| zero_retention_mode | No | ||
| audio_source_tracing | No | ||
| infer_from_intelligence | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the behavioral disclosure. It mentions the wait flag's effect ('response includes a completed verdict when possible') and that Optional flags map to the Detect API, but it fails to disclose other behavioral aspects such as async processing, file retention, rate limits, or error handling. It covers only a subset of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, with the purpose front-loaded in the first sentence and the essential usage details in the second. There is no redundant information or filler. It is appropriately concise for a tool of this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, 0% schema coverage, no annotations), the description is incomplete. It covers the primary usage (submitting a URL or file path, wait behavior, and mapping of some flags) but omits explanations for several parameters (modality, signal, face_only, zero_retention_mode, infer_from_intelligence) and does not mention prerequisites like authentication. An agent would struggle to correctly invoke this tool for all intended use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the relationship between url and file_path, and it maps some optional flags (intelligence, watermark, source-tracing, reverse-search) to the Detect API, but it does not explain the other six parameters (signal, modality, face_only, zero_retention_mode, infer_from_intelligence). With 12 parameters and no schema descriptions, the explanation is insufficient for an agent to understand all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Submit a deepfake detection job for audio, image, or video.' This is a specific verb (submit) with a clear resource (deepfake detection job) and modality. It effectively distinguishes from siblings like resemble_get_detection, which imply retrieval rather than creation. The description leaves no ambiguity about the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical parameter-level guidance, such as 'Provide exactly one of url or file_path' and the effect of wait=True on the response. However, it does not explicitly state when to prefer this tool over alternatives (e.g., resemble_secure_upload for uploading files) or give any exclusions. The usage context is implied but not directly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_get_detectionA
Get a deepfake detection result by UUID. Set experts=true for all completed Intelligence results.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | ||
| experts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' clearly signals a read operation, and the experts flag hints at scope behavior, but it does not disclose side effects, errors, or whether the return is a single object versus a list. This is adequate but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and identifier, followed by the one parameter nuance worth calling out. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity getter with an output schema, this description is close to sufficient, but it leaves the relationship to siblings and the exact meaning of 'all completed Intelligence results' implicit. An agent can call it correctly but may not know when it is the right tool without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: 'by UUID' gives meaning to uuid, and the experts clause explains a real behavioral condition for that boolean. It could be more precise about the default behavior when experts is false, but both parameters have enough semantic grounding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('deepfake detection result') and retrieval key ('UUID'). This distinguishes it from sibling tools like resemble_create_detection and resemble_get_detection_answer without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via 'by UUID' and gives one concrete condition ('Set experts=true for all completed Intelligence results'). However, it does not explicitly state when to prefer this tool over siblings such as resemble_get_detection_answer or how the returned result relates to a prior create/run operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_get_detection_answerC
Poll the answer for a Detect Intelligence question.
| Name | Required | Description | Default |
|---|---|---|---|
| detect_uuid | Yes | ||
| question_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Poll' suggests a repeated, non-blocking retrieval pattern, but the description does not disclose whether the answer may be pending, whether the call is safe to repeat, what states/errors are possible, or what prerequisites exist. The behavioral detail is limited to the single verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with a clear verb-first structure and no filler. It is economical, although it is terse enough that it leaves important usage context unaddressed; it is still appropriately compact for what it does say.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, 0% schema coverage, and the presence of sibling tools for asking questions and getting detections, the description does not provide enough context. It omits the prerequisite relationship with 'resemble_ask_detection_question', the need to poll repeatedly, and where the UUIDs come from. The output schema helps with return value shape but not with invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not compensate for the two parameters. 'detect_uuid' and 'question_uuid' are only named in the schema with no explanation of their roles or how they relate to each other. The description mentions a 'Detect Intelligence question' but does not clarify which UUID identifies the detection vs. the question.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('poll') and names the resource ('the answer for a Detect Intelligence question'), which is clear enough to distinguish it from the sibling 'resemble_ask_detection_question'. However, it does not explicitly contrast itself with 'resemble_get_detection' or explain the relationship between these tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its siblings. The word 'poll' implies repeated checking, but the description never states that a question must first be asked via 'resemble_ask_detection_question', nor does it say when to prefer this over other detection-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_get_investigation_runB
Fetch a persisted Detect Agent investigation run by run_id.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| agent_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. 'Fetch' implies a read-only operation, but it does not disclose potential errors (e.g., missing run), permission requirements, or any side effects. For a simple getter, this is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero wasted words. It states the core action and target clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since an output schema exists, return values are not needed. However, the description omits any explanation of the agent_uuid parameter and doesn't clarify that this fetches a single persisted run as opposed to a list. For a simple getter, this is borderline adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description is the only source of parameter meaning. It mentions run_id but does not explain agent_uuid, its purpose, or any format constraints. This is insufficient for a tool with two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'fetch' and the resource 'persisted Detect Agent investigation run', which distinguishes it from listing runs or getting detections. However, it doesn't explicitly contrast with sibling tools like resemble_list_investigation_runs, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that this fetches a single run by ID, while resemble_list_investigation_runs lists runs, or that this is for retrieving a persisted run rather than creating one. The description is purely definitional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_list_detect_agentsA
List Resemble Detect Agents available to this API key (managed authenticity investigators).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the list is scoped to the API key and describes the resource as 'managed authenticity investigators', which adds some context. It does not mention pagination, ordering, or whether the list is cached or live, but for a simple list operation this is a reasonable baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the action, resource, and scope efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with an output schema present, the description is largely complete. It could mention whether the list is paginated or what the output shape is, but the output schema likely covers the return structure. The main gap is lack of explicit sibling differentiation, but the description is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics burden on the description. The description correctly indicates the scope ('available to this API key'), which is the only relevant semantic context. Baseline 4 for zero-parameter tools is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('Resemble Detect Agents'), and clarifies the scope ('available to this API key') with a parenthetical gloss ('managed authenticity investigators'). It is clear about what the tool does, though it does not explicitly differentiate from siblings like resemble_list_investigation_runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by noting the agents are 'available to this API key', which suggests it is for enumerating accessible agents. However, it does not explicitly state when to use this tool versus alternatives such as resemble_list_investigation_runs or resemble_get_detection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_list_investigation_runsB
List recent investigation runs for a Detect Agent.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the operation is a read/list and scoped to an agent, but does not mention pagination, ordering, recency limits, or whether the list includes failed/in-progress runs. For a list tool, these are meaningful behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence that is front-loaded with the action and resource. It is concise and readable, though it could add a bit more context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single required parameter and an output schema, so the description does not need to explain return values. However, with no annotations and no parameter guidance, the description is only minimally complete for an agent to call it correctly. It lacks guidance on how to find agent_uuid and what 'recent' means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only mentions 'agent_uuid' implicitly via 'for a Detect Agent'. It does not explain the format of agent_uuid, how to obtain it, or any constraints. The description adds minimal meaning beyond the schema's bare property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('recent investigation runs') scoped to a Detect Agent. It distinguishes from siblings like resemble_get_investigation_run (which fetches a single run) and resemble_run_investigation (which starts one), though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: listing recent runs for a specific agent. It does not explicitly state when to use this tool versus resemble_get_investigation_run or resemble_run_investigation, but the verb 'List' and 'recent' convey a browsing/history use case. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_run_investigationB
Run a Detect Agent investigation on a public media/page URL or local file.
Prefer url. agent_uuid comes from resemble_list_detect_agents (e.g. investigate_social_content, verify_breaking_news, verify_document, website_check). Optional query is the investigation objective. Consumes the SSE stream and returns run_id, final verdict/intelligence, and a transcript excerpt.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| query | No | ||
| file_path | No | ||
| agent_uuid | Yes | ||
| check_urls | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool 'Consumes the SSE stream' and returns run_id, final verdict/intelligence, and a transcript excerpt. This is useful behavioral context beyond the schema. However, with no annotations provided, the description carries the full burden for safety and side-effect disclosure, and it doesn't mention whether this is a long-running operation, whether it mutates state, or what happens if the SSE stream fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main action. The first sentence states the purpose, and the following sentences add routing and behavioral details. It earns its place, though the parameter semantics gap means it could have used one more sentence to clarify check_urls.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main workflow, the source of agent_uuid, and the return values. However, with no annotations, no parameter descriptions in the schema, and an output schema present, the description should have explained the remaining parameters (especially check_urls) and any prerequisites or side effects. It's adequate for a simple call but incomplete for a 5-parameter tool with zero schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. The description explains agent_uuid and query, and implies url/file_path usage, but it doesn't explain check_urls at all, nor does it clarify the relationship between url, file_path, and check_urls. With 5 parameters and zero schema descriptions, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run a Detect Agent investigation') and a clear resource (public media/page URL or local file), and it distinguishes itself from siblings by naming resemble_list_detect_agents as the source for agent_uuid. It could be slightly clearer about how it differs from resemble_create_detection, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: 'Prefer url', explains where agent_uuid comes from, and notes that query is optional. It doesn't explicitly say when to use this tool versus resemble_create_detection or resemble_get_investigation_run, but the context signals and sibling names make the intended workflow reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resemble_secure_uploadB
Upload private media to Resemble and return a short-lived media_token (1 hour) for Detect.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the token is short-lived (1 hour) and that the media is private, but it omits other important behaviors like authentication requirements, file size/type limits, upload side effects, and failure handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and result. Every phrase adds value with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists and the description mentions the media_token, this is a mutation tool with no annotations. The description does not cover operational requirements like authentication, file access, size limits, or error conditions, and it leaves the lone parameter under-explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions file_path, which is the only required parameter. It leaves the agent without guidance on what the path should reference, what formats are supported, or how the file is resolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Upload'), a resource ('private media to Resemble'), and an outcome ('return a short-lived media_token (1 hour) for Detect'). This clearly differentiates it from all sibling tools, which are about detection queries, investigations, and account details, not media upload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for Detect' implies this tool is a precursor to using detection tools, but the description does not explicitly say when to use it vs alternatives, nor does it name exclusions or alternative tools. It provides context but no direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.0- First observed
resemble_account - First observed
resemble_ask_detection_question - First observed
resemble_create_detection - First observed
resemble_get_detection - First observed
resemble_get_detection_answer - First observed
resemble_get_investigation_run - First observed
resemble_list_detect_agents - First observed
resemble_list_investigation_runs - First observed
resemble_run_investigation - First observed
resemble_secure_upload
TDQS
Scored across 10 tools
Each tool maps to a distinct phase of the Detect workflow: account check, upload, detection submission/retrieval, intelligence Q&A, and agent investigations. Even the paired ask/get answer tools are clearly separated by their roles. No two tools appear to do the same thing.
Most tools follow a clear resemble_verb_noun pattern, such as resemble_list_detect_agents and resemble_get_investigation_run. A few exceptions like resemble_account and resemble_secure_upload break the verb-first convention, but overall the naming remains predictable and readable.
Ten tools is a well-scoped size for a deepfake detection server. Each tool covers a necessary capability without redundancy, and the count fits comfortably within the ideal range for a focused MCP server.
The surface covers account verification, secure uploads, detection submission and retrieval, intelligence Q&A, and the full investigation run lifecycle. The only notable gap is the lack of a way to list all detection jobs, which agents can work around by tracking UUIDs themselves.
Maintenance
Related MCP Connectors
Authenticated public evidence search, verification, research jobs, exports, and webhooks.
Tamper-evident proof creation and verification for AI agents via MCP, A2A, and REST.
KYC, KYB, AML, wallet screening, transaction monitoring, and fraud workflows for AI agents.
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to protect media from AI training and detect AI-generated content using the Sidearm REST API. It provides tools for running protection algorithms, identifying copyright infringement, and managing digital media assets.1635 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to analyze images, videos, audio, and text files for AI-generated content using the Reality Defender API, with support for user file uploads and direct URL analysis.1Apache 2.0
- AlicenseAqualityDmaintenanceEnables detection of AI-generated content in images, videos, audio, and text via the AI or Not API. Supports media analysis tools for deepfakes, synthetic voices, and AI-written text.21MIT
- FlicenseAqualityCmaintenanceEnables AI agents to detect AI-generated music, images, and video by analyzing files through SongCheck's ensemble detector, providing verdicts and confidence scores.41-