The Scribble Thing MCP
An official MCP server provided by Boring Stuff Club that enables AI agents to programmatically generate hand-drawn scribe animations from line-art images. It supports creating, monitoring, unlocking, downloading, and deleting MP4 animations via streamable HTTP tools.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://scribble.boringstuff.club/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Can change data (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to boringstuff.club ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Convert PNG or JPEG line-art images into scribe animation MP4s
- Monitor the status of ongoing animation generation tasks
- Unlock watermark-free versions of generated animations
- Download or delete completed animation files
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- the-scribble-thing 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 6 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
get_scribble_service_info
Get current limits, terms, retention, pricing, and integration URLs.
{
"type": "object",
"title": "get_scribble_service_infoArguments",
"properties": {}
}{
"type": "object",
"title": "MCPServiceInfo",
"required": [
"service",
"website_url",
"mcp_url",
"rest_documentation_url",
"skill_url",
"current_terms_version",
"terms_url",
"privacy_url",
"retention_hours",
"max_upload_bytes",
"max_image_dimension",
"accepted_image_types",
"watermarked_preview_price",
"clean_video_unlock_price",
"purchase_url"
],
"properties": {
"mcp_url": {
"type": "string",
"title": "Mcp Url"
},
"service": {
"type": "string",
"title": "Service"
},
"skill_url": {
"type": "string",
"title": "Skill Url"
},
"terms_url": {
"type": "string",
"title": "Terms Url"
},
"privacy_url": {
"type": "string",
"title": "Privacy Url"
},
"website_url": {
"type": "string",
"title": "Website Url"
},
"purchase_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Purchase Url"
},
"retention_hours": {
"type": "integer",
"title": "Retention Hours"
},
"max_upload_bytes": {
"type": "integer",
"title": "Max Upload Bytes"
},
"max_image_dimension": {
"type": "integer",
"title": "Max Image Dimension"
},
"accepted_image_types": {
"type": "array",
"items": {
"type": "string"
},
"title": "Accepted Image Types"
},
"current_terms_version": {
"type": "string",
"title": "Current Terms Version"
},
"rest_documentation_url": {
"type": "string",
"title": "Rest Documentation Url"
},
"clean_video_unlock_price": {
"type": "string",
"title": "Clean Video Unlock Price"
},
"watermarked_preview_price": {
"type": "string",
"title": "Watermarked Preview Price"
}
}
}{
"title": "Get Scribble service information",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}create_scribe_animation
Create an asynchronous animation from a base64-encoded line-art image.
{
"type": "object",
"title": "create_scribe_animationArguments",
"required": [
"image_base64",
"image_mime_type",
"idempotency_key",
"accepted_terms_version",
"accept_terms",
"accept_retention"
],
"properties": {
"speed": {
"enum": [
"slow",
"normal",
"fast"
],
"type": "string",
"title": "Speed",
"default": "normal"
},
"show_hand": {
"type": "boolean",
"title": "Show Hand",
"default": false
},
"order_text": {
"type": "string",
"title": "Order Text",
"default": "",
"maxLength": 2000
},
"accept_terms": {
"type": "boolean",
"title": "Accept Terms"
},
"image_base64": {
"type": "string",
"title": "Image Base64",
"maxLength": 14000000,
"minLength": 4,
"description": "Raw base64 PNG or JPEG bytes; do not include a data-URL prefix."
},
"idempotency_key": {
"type": "string",
"title": "Idempotency Key",
"maxLength": 200,
"minLength": 8
},
"image_mime_type": {
"enum": [
"image/png",
"image/jpeg"
],
"type": "string",
"title": "Image Mime Type"
},
"installation_id": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 8
},
{
"type": "null"
}
],
"title": "Installation Id",
"default": null
},
"accept_retention": {
"type": "boolean",
"title": "Accept Retention"
},
"accepted_terms_version": {
"type": "string",
"title": "Accepted Terms Version",
"maxLength": 40,
"minLength": 1
}
}
}{
"type": "object",
"$defs": {
"AgentUnlockDetails": {
"type": "object",
"title": "AgentUnlockDetails",
"required": [
"state",
"instructions",
"endpoint",
"purchase_url"
],
"properties": {
"state": {
"enum": [
"watermarked",
"unlocked"
],
"type": "string",
"title": "State"
},
"endpoint": {
"type": "string",
"title": "Endpoint"
},
"instructions": {
"type": "string",
"title": "Instructions"
},
"purchase_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Purchase Url"
}
}
}
},
"title": "AgentCreateResponse",
"required": [
"animation_id",
"status",
"stage",
"progress",
"error",
"created_at",
"expires_at",
"seconds_remaining",
"retention_hours",
"terms_version",
"unlocked",
"preview_download_available",
"clean_download_available",
"status_url",
"preview_url",
"clean_url",
"manage_url",
"purchase_url",
"unlock",
"access_token",
"token_type",
"idempotent_replay"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Error"
},
"stage": {
"type": "string",
"title": "Stage",
"description": "Short user-facing description of current work."
},
"status": {
"enum": [
"queued",
"running",
"completed",
"failed"
],
"type": "string",
"title": "Status",
"description": "Current asynchronous job state."
},
"unlock": {
"$ref": "#/$defs/AgentUnlockDetails"
},
"progress": {
"type": "integer",
"title": "Progress",
"maximum": 100,
"minimum": 0,
"description": "Approximate percent complete."
},
"unlocked": {
"type": "boolean",
"title": "Unlocked"
},
"clean_url": {
"type": "string",
"title": "Clean Url"
},
"created_at": {
"type": "string",
"title": "Created At"
},
"expires_at": {
"type": "string",
"title": "Expires At"
},
"manage_url": {
"type": "string",
"title": "Manage Url",
"description": "Private browser handoff URL for user review and unlock."
},
"status_url": {
"type": "string",
"title": "Status Url"
},
"token_type": {
"type": "string",
"const": "Bearer",
"title": "Token Type"
},
"preview_url": {
"type": "string",
"title": "Preview Url"
},
"access_token": {
"type": "string",
"title": "Access Token",
"description": "Secret bearer capability scoped to this animation only."
},
"animation_id": {
"type": "string",
"title": "Animation Id",
"description": "Canonical UUID for this animation."
},
"purchase_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Purchase Url"
},
"terms_version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Terms Version"
},
"retention_hours": {
"type": "integer",
"title": "Retention Hours"
},
"idempotent_replay": {
"type": "boolean",
"title": "Idempotent Replay"
},
"seconds_remaining": {
"type": "integer",
"title": "Seconds Remaining"
},
"clean_download_available": {
"type": "boolean",
"title": "Clean Download Available"
},
"preview_download_available": {
"type": "boolean",
"title": "Preview Download Available"
}
}
}{
"title": "Create a scribe animation",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_scribe_animation
Poll one private animation until it completes or fails.
{
"type": "object",
"title": "get_scribe_animationArguments",
"required": [
"animation_id",
"access_token"
],
"properties": {
"access_token": {
"type": "string",
"title": "Access Token",
"maxLength": 128,
"minLength": 32
},
"animation_id": {
"type": "string",
"title": "Animation Id"
}
}
}{
"type": "object",
"$defs": {
"AgentUnlockDetails": {
"type": "object",
"title": "AgentUnlockDetails",
"required": [
"state",
"instructions",
"endpoint",
"purchase_url"
],
"properties": {
"state": {
"enum": [
"watermarked",
"unlocked"
],
"type": "string",
"title": "State"
},
"endpoint": {
"type": "string",
"title": "Endpoint"
},
"instructions": {
"type": "string",
"title": "Instructions"
},
"purchase_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Purchase Url"
}
}
}
},
"title": "AgentAnimationResponse",
"required": [
"animation_id",
"status",
"stage",
"progress",
"error",
"created_at",
"expires_at",
"seconds_remaining",
"retention_hours",
"terms_version",
"unlocked",
"preview_download_available",
"clean_download_available",
"status_url",
"preview_url",
"clean_url",
"manage_url",
"purchase_url",
"unlock"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Error"
},
"stage": {
"type": "string",
"title": "Stage",
"description": "Short user-facing description of current work."
},
"status": {
"enum": [
"queued",
"running",
"completed",
"failed"
],
"type": "string",
"title": "Status",
"description": "Current asynchronous job state."
},
"unlock": {
"$ref": "#/$defs/AgentUnlockDetails"
},
"progress": {
"type": "integer",
"title": "Progress",
"maximum": 100,
"minimum": 0,
"description": "Approximate percent complete."
},
"unlocked": {
"type": "boolean",
"title": "Unlocked"
},
"clean_url": {
"type": "string",
"title": "Clean Url"
},
"created_at": {
"type": "string",
"title": "Created At"
},
"expires_at": {
"type": "string",
"title": "Expires At"
},
"manage_url": {
"type": "string",
"title": "Manage Url",
"description": "Private browser handoff URL for user review and unlock."
},
"status_url": {
"type": "string",
"title": "Status Url"
},
"preview_url": {
"type": "string",
"title": "Preview Url"
},
"animation_id": {
"type": "string",
"title": "Animation Id",
"description": "Canonical UUID for this animation."
},
"purchase_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Purchase Url"
},
"terms_version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Terms Version"
},
"retention_hours": {
"type": "integer",
"title": "Retention Hours"
},
"seconds_remaining": {
"type": "integer",
"title": "Seconds Remaining"
},
"clean_download_available": {
"type": "boolean",
"title": "Clean Download Available"
},
"preview_download_available": {
"type": "boolean",
"title": "Preview Download Available"
}
}
}{
"title": "Get scribe animation status",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_scribe_animation_download
Create a short-lived download URL for a completed preview or clean video.
{
"type": "object",
"title": "get_scribe_animation_downloadArguments",
"required": [
"animation_id",
"access_token",
"kind"
],
"properties": {
"kind": {
"enum": [
"preview",
"clean"
],
"type": "string",
"title": "Kind"
},
"access_token": {
"type": "string",
"title": "Access Token",
"maxLength": 128,
"minLength": 32
},
"animation_id": {
"type": "string",
"title": "Animation Id"
}
}
}{
"type": "object",
"title": "MCPDownloadResponse",
"required": [
"animation_id",
"kind",
"available",
"download_url",
"bearer_required",
"expires_in_seconds",
"manage_url",
"message"
],
"properties": {
"kind": {
"enum": [
"preview",
"clean"
],
"type": "string",
"title": "Kind"
},
"message": {
"type": "string",
"title": "Message"
},
"available": {
"type": "boolean",
"title": "Available"
},
"manage_url": {
"type": "string",
"title": "Manage Url"
},
"animation_id": {
"type": "string",
"title": "Animation Id"
},
"download_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Download Url"
},
"bearer_required": {
"type": "boolean",
"title": "Bearer Required"
},
"expires_in_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Expires In Seconds"
}
}
}{
"title": "Get an animation download URL",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}redeem_scribe_unlock_code
Consume a user-supplied single-use code to unlock one clean video.
{
"type": "object",
"title": "redeem_scribe_unlock_codeArguments",
"required": [
"animation_id",
"access_token",
"unlock_code"
],
"properties": {
"unlock_code": {
"type": "string",
"title": "Unlock Code",
"maxLength": 100,
"minLength": 1
},
"access_token": {
"type": "string",
"title": "Access Token",
"maxLength": 128,
"minLength": 32
},
"animation_id": {
"type": "string",
"title": "Animation Id"
}
}
}{
"type": "object",
"$defs": {
"AgentUnlockDetails": {
"type": "object",
"title": "AgentUnlockDetails",
"required": [
"state",
"instructions",
"endpoint",
"purchase_url"
],
"properties": {
"state": {
"enum": [
"watermarked",
"unlocked"
],
"type": "string",
"title": "State"
},
"endpoint": {
"type": "string",
"title": "Endpoint"
},
"instructions": {
"type": "string",
"title": "Instructions"
},
"purchase_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Purchase Url"
}
}
}
},
"title": "AgentAnimationResponse",
"required": [
"animation_id",
"status",
"stage",
"progress",
"error",
"created_at",
"expires_at",
"seconds_remaining",
"retention_hours",
"terms_version",
"unlocked",
"preview_download_available",
"clean_download_available",
"status_url",
"preview_url",
"clean_url",
"manage_url",
"purchase_url",
"unlock"
],
"properties": {
"error": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Error"
},
"stage": {
"type": "string",
"title": "Stage",
"description": "Short user-facing description of current work."
},
"status": {
"enum": [
"queued",
"running",
"completed",
"failed"
],
"type": "string",
"title": "Status",
"description": "Current asynchronous job state."
},
"unlock": {
"$ref": "#/$defs/AgentUnlockDetails"
},
"progress": {
"type": "integer",
"title": "Progress",
"maximum": 100,
"minimum": 0,
"description": "Approximate percent complete."
},
"unlocked": {
"type": "boolean",
"title": "Unlocked"
},
"clean_url": {
"type": "string",
"title": "Clean Url"
},
"created_at": {
"type": "string",
"title": "Created At"
},
"expires_at": {
"type": "string",
"title": "Expires At"
},
"manage_url": {
"type": "string",
"title": "Manage Url",
"description": "Private browser handoff URL for user review and unlock."
},
"status_url": {
"type": "string",
"title": "Status Url"
},
"preview_url": {
"type": "string",
"title": "Preview Url"
},
"animation_id": {
"type": "string",
"title": "Animation Id",
"description": "Canonical UUID for this animation."
},
"purchase_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Purchase Url"
},
"terms_version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Terms Version"
},
"retention_hours": {
"type": "integer",
"title": "Retention Hours"
},
"seconds_remaining": {
"type": "integer",
"title": "Seconds Remaining"
},
"clean_download_available": {
"type": "boolean",
"title": "Clean Download Available"
},
"preview_download_available": {
"type": "boolean",
"title": "Preview Download Available"
}
}
}{
"title": "Redeem a Scribble unlock code",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}delete_scribe_animation
Immediately delete one animation session and all of its stored files.
{
"type": "object",
"title": "delete_scribe_animationArguments",
"required": [
"animation_id",
"access_token"
],
"properties": {
"access_token": {
"type": "string",
"title": "Access Token",
"maxLength": 128,
"minLength": 32
},
"animation_id": {
"type": "string",
"title": "Animation Id"
}
}
}{
"type": "object",
"title": "MCPDeleteResponse",
"required": [
"animation_id",
"deleted"
],
"properties": {
"deleted": {
"type": "boolean",
"title": "Deleted"
},
"animation_id": {
"type": "string",
"title": "Animation Id"
}
}
}{
"title": "Delete a scribe animation",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}Prompts
0 advertised
Resources
0 advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-09: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 698 ms
- 95th percentile latency
- 698 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 698 ms · metadata changed · 6 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http the-scribble-thing-mcp https://scribble.boringstuff.club/mcpCodex
codex mcp add the-scribble-thing-mcp --url https://scribble.boringstuff.club/mcpCursor
{
"mcpServers": {
"the-scribble-thing-mcp": {
"url": "https://scribble.boringstuff.club/mcp"
}
}
}Cline
{
"mcpServers": {
"the-scribble-thing-mcp": {
"type": "streamableHttp",
"url": "https://scribble.boringstuff.club/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"the-scribble-thing-mcp": {
"type": "http",
"url": "https://scribble.boringstuff.club/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http the-scribble-thing-mcp https://scribble.boringstuff.club/mcpClaude Desktop
https://scribble.boringstuff.club/mcpWindsurf
{
"mcpServers": {
"the-scribble-thing-mcp": {
"serverUrl": "https://scribble.boringstuff.club/mcp"
}
}
}Let your agent find its tools
Find servers like The Scribble Thing MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other design servers
Do you run The Scribble Thing MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.