Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": true,
"confirmation_signals": [],
"safeguard_count": 0,
"summary": {
"bulk_access_tools": 0,
"capability_distribution": {},
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 0,
"high_risk_tools": 0,
"risk_distribution": {
"critical": 0,
"high": 0,
"low": 0,
"medium": 0
},
"secret_tools": 0,
"tool_count": 0
}
},
"latency_ms": null,
"status": "ok"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": true,
"elicitation": false,
"prompts": false,
"resource_links": true,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [
"completions",
"resource_links",
"resources"
],
"enabled_count": 3,
"initialize_capability_keys": []
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"initialize",
"tools_list",
"protocol_version",
"transport_compliance",
"tool_surface",
"auth_flow"
],
"criteria": {
"action_safety": true,
"auth_flow": false,
"connector_replay": true,
"initialize": false,
"protocol_version": false,
"remote_transport": true,
"request_association": true,
"server_card": true,
"session_resume": true,
"step_up_auth": true,
"tool_surface": false,
"tools_list": false,
"transport_compliance": false
},
"high_risk_tools": 0,
"tool_count": 0,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "error"
},
"connector_replay_probe": {
"details": {
"reason": "no_tools"
},
"latency_ms": null,
"status": "missing"
},
"determinism_probe": {
"details": {
"reason": "tools_list_unavailable"
},
"latency_ms": null,
"status": "missing"
},
"initialize": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.doomscrollr.com'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=utf-8"
},
"http_status": 404,
"payload": {},
"url": "https://mcp.doomscrollr.com"
},
"latency_ms": 177.59,
"status": "error"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": true,
"prompt_available": false,
"risk_hits": [],
"safe_hits": [
"oauth",
"browser"
]
},
"latency_ms": null,
"status": "ok"
},
"oauth_authorization_server": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"authorization_endpoint": "https://mcp.doomscrollr.com/oauth/authorize",
"code_challenge_methods_supported": [
"S256",
"plain"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"issuer": "https://mcp.doomscrollr.com",
"registration_endpoint": "https://mcp.doomscrollr.com/oauth/register",
"response_types_supported": [
"code"
],
"scopes_supported": [
"mcp"
],
"service_documentation": "https://mcp.doomscrollr.com",
"token_endpoint": "https://mcp.doomscrollr.com/oauth/token",
"token_endpoint_auth_methods_supported": [
"none"
]
},
"url": "https://mcp.doomscrollr.com/.well-known/oauth-authorization-server"
},
"latency_ms": 182.77,
"status": "ok"
},
"oauth_protected_resource": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"authorization_servers": [
"https://mcp.doomscrollr.com"
],
"bearer_methods_supported": [
"header"
],
"resource": "https://mcp.doomscrollr.com/mcp",
"resource_documentation": "https://mcp.doomscrollr.com"
},
"url": "https://mcp.doomscrollr.com/.well-known/oauth-protected-resource"
},
"latency_ms": 181.09,
"status": "ok"
},
"official_registry_probe": {
"details": {
"direct_match": false,
"official_identifiers": [
"io.github.neverinfamous/sqlite-mcp-server",
"io.github.M-China-Official/mcd-mcp",
"io.github.instagitai/instagit",
"ai.smithery/Aman-Amith-Shastry-scientific_computation_mcp",
"dev.codepathfinder/pathfinder",
"io.github.chris-schra/mcp-funnel",
"io.github.Vitexus/abraflexi",
"io.github.kyrylopr/lenspr",
"io.github.humanjesse/textarttools-mcp",
"ai.smithery/arjunkmrm-ts-test-2"
],
"official_peer_count": 10,
"registry_source": "github_topic_registry"
},
"latency_ms": null,
"status": "warning"
},
"openid_configuration": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"authorization_endpoint": "https://mcp.doomscrollr.com/oauth/authorize",
"code_challenge_methods_supported": [
"S256",
"plain"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"issuer": "https://mcp.doomscrollr.com",
"registration_endpoint": "https://mcp.doomscrollr.com/oauth/register",
"response_types_supported": [
"code"
],
"scopes_supported": [
"mcp"
],
"service_documentation": "https://mcp.doomscrollr.com",
"token_endpoint": "https://mcp.doomscrollr.com/oauth/token",
"token_endpoint_auth_methods_supported": [
"none"
]
},
"url": "https://mcp.doomscrollr.com/.well-known/openid-configuration"
},
"latency_ms": 211.31,
"status": "ok"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain"
},
"http_status": 200,
"url": "https://mcp.doomscrollr.com/robots.txt"
},
"latency_ms": 42.12,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.doomscrollr.com'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=utf-8"
},
"http_status": 404,
"payload": {},
"reason": "not_supported",
"url": "https://mcp.doomscrollr.com"
},
"latency_ms": 178.98,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"latest_known_version": "2025-11-25",
"reason": "no_protocol_version",
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "missing"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": false,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": "doomscrollr",
"server_card_version": "1.0.24"
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "no_resource_uri"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.doomscrollr.com'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=utf-8"
},
"http_status": 404,
"payload": {},
"url": "https://mcp.doomscrollr.com"
},
"latency_ms": 173.37,
"status": "error"
},
"server_card": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"authentication": {
"required": true,
"schemes": [
"oauth2",
"bearer"
]
},
"icon": "https://doomscrollr.com/share.png",
"logo": "https://doomscrollr.com/share.png",
"metadata": {
"description": "Build owned-audience websites: pages, posts, products, subscribers, capture, RSS/Pinterest, ShopMy/Shopify imports, tickets, memberships, and analytics from any MCP client.",
"docs": "https://mcp.doomscrollr.com",
"homepage": "https://mcp.doomscrollr.com",
"icon": "https://doomscrollr.com/share.png",
"iconUrl": "https://doomscrollr.com/share.png",
"logo": "https://doomscrollr.com/share.png",
"logoUrl": "https://doomscrollr.com/share.png",
"repository": "https://github.com/DOOMSCROLLR/mcp",
"title": "DOOMSCROLLR",
"vendor": "DOOMSCROLLR"
},
"prompts": [],
"resources": [
{
"description": "Pinterest search results card with imageable pins ready to draft.",
"mimeType": "text/html;profile=mcp-app",
"name": "doomscrollr-pinterest-widget",
"uri": "ui://doomscrollr/widgets/pinterest-v1.html"
},
{
"description": "Product / Shopify import card with title, price, image, and CTA.",
"mimeType": "text/html;profile=mcp-app",
"name": "doomscrollr-product-widget",
"uri": "ui://doomscrollr/widgets/product-v1.html"
},
{
"description": "Style preset preview card showing applied brand styling.",
"mimeType": "text/html;profile=mcp-app",
"name": "doomscrollr-style-widget",
"uri": "ui://doomscrollr/widgets/style-v1.html"
},
{
"description": "Top-liked posts analytics card for the last N days.",
"mimeType": "text/html;profile=mcp-app",
"name": "doomscrollr-analytics-widget",
"uri": "ui://doomscrollr/widgets/analytics-v1.html"
}
],
"serverInfo": {
"name": "doomscrollr",
"version": "1.0.24"
},
"tools": [
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Add Subscriber"
},
"description": "Add an audience member to your DOOMSCROLLR. Captures email or email_md5, profile/contact fields, tags, and UTM attribution.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bio": {
"description": "Audience bio / biography",
"type": "string"
},
"city": {
"description": "City",
"type": "string"
},
"country": {
"description": "Country",
"type": "string"
},
"email": {
"description": "Subscriber email address. Optional if email_md5 is supplied.",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"email_md5": {
"description": "MD5 hash of the lowercase trimmed email when raw email is unavailable",
"pattern": "^[a-f0-9]{32}$",
"type": "string"
},
"first_name": {
"description": "First name",
"type": "string"
},
"followers": {
"description": "Follower count",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"gender": {
"description": "Gender marker, if provided",
"type": "string"
},
"last_name": {
"description": "Last name",
"type": "string"
},
"phone": {
"description": "Phone number",
"type": "string"
},
"source": {
"description": "Acquisition source (e.g., email_signup, website, api, embed)",
"type": "string"
},
"state": {
"description": "State/region",
"type": "string"
},
"tags": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"description": "Comma-separated tags or an array of tags"
},
"username": {
"description": "Social/account username",
"type": "string"
},
"utm_campaign": {
"description": "UTM campaign",
"type": "string"
},
"utm_content": {
"description": "UTM content",
"type": "string"
},
"utm_medium": {
"description": "UTM medium",
"type": "string"
},
"utm_source": {
"description": "UTM source",
"type": "string"
},
"utm_term": {
"description": "UTM term",
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_add_subscriber"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Apply Style Preset"
},
"description": "Apply a recognizable visual direction to DOOMSCROLLR settings. Use this for prompts like 'Update the styling of my DOOMSCROLLR to look like Skims.' Currently supports skims, brutalist, editorial, and minimal presets using existing editable settings.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cta_bar_text": {
"description": "Optional CTA bar text",
"maxLength": 500,
"type": "string"
},
"cta_bar_url": {
"description": "Optional CTA destination",
"format": "uri",
"type": "string"
},
"preset": {
"description": "Style direction to apply",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
}
},
"required": [
"preset"
],
"type": "object"
},
"name": "doomscrollr_apply_style_preset"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Ecommerce"
},
"description": "Use this when the user asks to build an ecommerce site/store. Creates an owned storefront on DOOMSCROLLR with optional products and buyer/audience graph next steps.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links for Linktree/Komi/contact-page flows",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_build_ecommerce"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Komi"
},
"description": "Use this when the user asks to build a Komi. Creates the owned DOOMSCROLLR equivalent: a creator links/contact page on the user's own site with first-party audience capture.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links to include",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"required": [
"links"
],
"type": "object"
},
"name": "doomscrollr_build_komi"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Linktree"
},
"description": "Use this when the user asks to build a Linktree. Creates the owned DOOMSCROLLR equivalent: an owned contact/link page on the user's own site with navigation and audience-capture next steps.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links to include",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"required": [
"links"
],
"type": "object"
},
"name": "doomscrollr_build_linktree"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Membership"
},
"description": "Use this when the user asks to build an OnlyFans, Patreon, paid membership, or subscription site. Creates the owned membership equivalent on DOOMSCROLLR.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links for Linktree/Komi/contact-page flows",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_build_membership"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Newsletter"
},
"description": "Use this when the user asks to build a newsletter. Creates an owned newsletter website with first-party subscriber capture.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links for Linktree/Komi/contact-page flows",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_build_newsletter"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Shopify"
},
"description": "Use this when the user asks to build a Shopify store. Creates the owned DOOMSCROLLR storefront equivalent with optional products, customer-data capture, and commerce next steps.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links for Linktree/Komi/contact-page flows",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_build_shopify"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Social Feed"
},
"description": "Use this when the user asks to build their own Instagram, Tumblr, Myspace, or visual social feed. Creates or seeds an owned visual feed on DOOMSCROLLR.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links for Linktree/Komi/contact-page flows",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_build_social_feed"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Substack"
},
"description": "Use this when the user asks to build a Substack. Creates the owned newsletter/publishing equivalent on DOOMSCROLLR with subscriber capture and optional RSS next steps.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links for Linktree/Komi/contact-page flows",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_build_substack"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Build Website"
},
"description": "Use this when the user asks to build a website, Wix, Squarespace, or WordPress site. Creates owned pages/navigation/styling on DOOMSCROLLR.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add generated pages to navigation",
"type": "boolean"
},
"cover_photo_url": {
"description": "Cover image URL",
"format": "uri",
"type": "string"
},
"feed_url": {
"description": "RSS feed URL for Substack/newsletter flows",
"format": "uri",
"type": "string"
},
"intro": {
"description": "Short positioning or intro copy",
"maxLength": 2000,
"type": "string"
},
"limit": {
"description": "Number of seed posts to create for social-feed flows",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"links": {
"description": "Links for Linktree/Komi/contact-page flows",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"type": "array"
},
"navigation_label": {
"description": "Navigation label",
"maxLength": 255,
"type": "string"
},
"pages": {
"description": "Pages for website flows",
"items": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"type": "array"
},
"price": {
"description": "Membership/subscription price",
"minimum": 0,
"type": "number"
},
"products": {
"description": "Products for Shopify/ecommerce flows",
"items": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"format": "uri",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"title": {
"type": "string"
},
"type": {
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"required": [
"title",
"price"
],
"type": "object"
},
"type": "array"
},
"source_query": {
"description": "Pinterest/search query for social-feed flows",
"maxLength": 255,
"type": "string"
},
"style_preset": {
"description": "Optional visual direction",
"enum": [
"skims",
"brutalist",
"editorial",
"minimal"
],
"type": "string"
},
"title": {
"description": "Title/name for the owned-audience website or page",
"maxLength": 255,
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_build_website"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Bulk Delete Posts"
},
"description": "Bulk delete up to 100 posts by id. Irreversible; use doomscrollr_list_posts first.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ids": {
"description": "Post ids to delete",
"items": {
"type": "number"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "doomscrollr_bulk_delete_posts"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Bulk Delete Products"
},
"description": "Bulk delete up to 100 products by id. Irreversible; linked posts are preserved but unlinked from deleted products.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ids": {
"description": "Product ids to delete",
"items": {
"type": "number"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "doomscrollr_bulk_delete_products"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Bulk Delete Subscribers"
},
"description": "Bulk delete up to 500 audience members by id. Irreversible; use doomscrollr_list_subscribers first.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ids": {
"description": "Subscriber ids to delete",
"items": {
"type": "number"
},
"maxItems": 500,
"minItems": 1,
"type": "array"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "doomscrollr_bulk_delete_subscribers"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Bulk Update Posts"
},
"description": "Bulk update up to 100 posts by id. Supports status/scheduling, feed flags, tag replace/append/remove, and shoppable buy-button state.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"description": {
"description": "Shared replacement description for all selected posts",
"type": "string"
},
"hide_main_feed": {
"description": "Hide/show all selected posts on main feed",
"type": "boolean"
},
"ids": {
"description": "Post ids from doomscrollr_list_posts",
"items": {
"type": "number"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"publish_at": {
"description": "Future ISO 8601 datetime to schedule all selected posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shoppable": {
"description": "Set true to show the buy button on all selected posts, false to hide it.",
"type": "boolean"
},
"status": {
"description": "Set all selected posts to this status",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"subscription_only": {
"description": "Make all selected posts subscriber-only or public",
"type": "boolean"
},
"tag_mode": {
"description": "How to apply tags; default replace",
"enum": [
"replace",
"append",
"remove"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags",
"type": "string"
},
"title": {
"description": "Shared replacement title for all selected posts",
"type": "string"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "doomscrollr_bulk_update_posts"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Bulk Update Products"
},
"description": "Bulk update up to 100 products by id. Supports simple maintenance fields: price, inventory, shipping, and cover image.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"description": "Shared replacement cover image URL",
"format": "uri",
"type": "string"
},
"ids": {
"description": "Product ids from doomscrollr_list_products",
"items": {
"type": "number"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"inventory_count": {
"description": "Shared replacement inventory count",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"price": {
"description": "Shared replacement price",
"minimum": 0,
"type": "number"
},
"shipping_cost": {
"description": "Shared replacement shipping cost",
"minimum": 0,
"type": "number"
},
"shipping_required": {
"description": "Set shipping required",
"type": "boolean"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "doomscrollr_bulk_update_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Bulk Update Subscribers"
},
"description": "Bulk update up to 500 audience members by id. Supports bounced/unsubscribed/spam flags and tag replace/append/remove.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bounced": {
"description": "Set bounced flag",
"type": "boolean"
},
"ids": {
"description": "Subscriber ids from doomscrollr_list_subscribers",
"items": {
"type": "number"
},
"maxItems": 500,
"minItems": 1,
"type": "array"
},
"spam": {
"description": "Set spam flag",
"type": "boolean"
},
"tag_mode": {
"description": "How to apply tags; default replace",
"enum": [
"replace",
"append",
"remove"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags",
"type": "string"
},
"unsubscribed": {
"description": "Set unsubscribed flag",
"type": "boolean"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "doomscrollr_bulk_update_subscribers"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Buy Domain"
},
"description": "Purchase a domain through DOOMSCROLLR. Creates a Stripe payment intent and returns a checkout URL the user opens in a browser. After payment, the domain auto-registers via OpenSRS and connects to the user's DOOMSCROLLR (including Cloudflare setup) in about 60 seconds.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"domain": {
"description": "Full domain to purchase, e.g. 'fridasfriends.com'",
"minLength": 1,
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "doomscrollr_buy_domain"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Connect Domain"
},
"description": "Connect a custom domain to your DOOMSCROLLR. Returns DNS records to configure. For purchased domains, guides user to the dashboard.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"domain": {
"description": "Full domain to connect (e.g., 'mybrand.com')",
"minLength": 1,
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "doomscrollr_connect_domain"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Connect Instagram"
},
"description": "Set up auto-cross-posting from an Instagram Business or Creator account to DOOMSCROLLR. Returns a Zapier setup URL the user MUST open in a browser to finish OAuth \u2014 this tool does not complete the connection on its own. After the user authorizes in Zapier, every new Instagram post will become a post in this DOOMSCROLLR. Tell the user to open the returned `setup_url` to finish.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_connect_instagram"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Connect Pinterest"
},
"description": "Auto-post a public Pinterest board to this DOOMSCROLLR. Pass the board URL (like 'https://www.pinterest.com/user/my-board/'). Pins get imported within 15 minutes and new pins auto-post going forward. No OAuth or API keys needed \u2014 just needs the board to be public.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"board_url": {
"description": "Public Pinterest board URL, e.g. 'https://www.pinterest.com/fridasfriends/english-cocker-spaniels/'",
"type": "string"
}
},
"required": [
"board_url"
],
"type": "object"
},
"name": "doomscrollr_connect_pinterest"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Connect Rss"
},
"description": "Connect native RSS polling. Works with Substack, Medium, WordPress, YouTube channels, podcast feeds, or any public RSS/Atom source. New items auto-post within about 15 minutes \u2014 no Zapier required.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"feed_url": {
"description": "RSS or Atom feed URL",
"format": "uri",
"maxLength": 500,
"type": "string"
}
},
"required": [
"feed_url"
],
"type": "object"
},
"name": "doomscrollr_connect_rss"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Create Contact Page"
},
"description": "Create a LinkTree-style contact/links page and link to it in navigation. Use this for prompts like 'Create a LinkTree like Contact page and link to it in my navigation.'",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Defaults true",
"type": "boolean"
},
"intro": {
"description": "Short intro text",
"maxLength": 1000,
"type": "string"
},
"links": {
"description": "Links to place on the contact page",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"description": "Visible link label",
"type": "string"
},
"url": {
"description": "Destination URL, e.g. https://instagram.com/brand or mailto:hello@example.com",
"type": "string"
}
},
"required": [
"label",
"url"
],
"type": "object"
},
"maxItems": 25,
"minItems": 1,
"type": "array"
},
"navigation_label": {
"description": "Navigation label, default Contact",
"maxLength": 255,
"type": "string"
},
"title": {
"description": "Page title, default Contact",
"maxLength": 255,
"type": "string"
}
},
"required": [
"links"
],
"type": "object"
},
"name": "doomscrollr_create_contact_page"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Create Page"
},
"description": "Create or update a standalone DOOMSCROLLR page and optionally add it to navigation.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_to_navigation": {
"description": "Whether to add/update a nav link for this page",
"type": "boolean"
},
"content": {
"description": "Page body as simple HTML or plain text",
"maxLength": 50000,
"minLength": 1,
"type": "string"
},
"navigation_label": {
"description": "Navigation label; defaults to title",
"maxLength": 255,
"type": "string"
},
"title": {
"description": "Page title",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"title",
"content"
],
"type": "object"
},
"name": "doomscrollr_create_page"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Create Product"
},
"description": "Create a product for sale on your DOOMSCROLLR \u2014 physical goods, digital downloads, event tickets, or subscriptions.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"description": "Cover image/photo URL supplied by the user or ChatGPT, e.g. for 'Create a $50 product from this photo and name it Tie Dye Pants'",
"format": "uri",
"type": "string"
},
"description": {
"description": "Product description",
"type": "string"
},
"inventory_count": {
"description": "Stock quantity for non-variant physical products",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"price": {
"description": "Price in dollars (e.g., 29.99)",
"minimum": 0,
"type": "number"
},
"shipping_cost": {
"description": "Shipping cost in dollars",
"minimum": 0,
"type": "number"
},
"shipping_required": {
"description": "Whether shipping is required; physical products usually true",
"type": "boolean"
},
"title": {
"description": "Product name",
"type": "string"
},
"type": {
"description": "Product type",
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
},
"url": {
"description": "External URL (for digital products)",
"format": "uri",
"type": "string"
},
"variant_options": {
"description": "Variant option definitions for physical products, e.g. Color and Size",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Option name, e.g. Color or Size",
"type": "string"
},
"values": {
"description": "Allowed values for this option",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"values"
],
"type": "object"
},
"type": "array"
},
"variants": {
"description": "Every sellable variant with per-variant price and inventory",
"items": {
"additionalProperties": false,
"properties": {
"inventory_count": {
"description": "Stock for this exact variant",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"price": {
"description": "Variant price in dollars",
"minimum": 0,
"type": "number"
},
"sku": {
"description": "Optional SKU",
"type": "string"
},
"variant_data": {
"additionalProperties": {
"type": "string"
},
"description": "Map of option name to selected value, e.g. {Color:'Rose', Size:'2T'}",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"variant_data",
"price",
"inventory_count"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"title",
"price",
"type"
],
"type": "object"
},
"name": "doomscrollr_create_product"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Create World"
},
"description": "Create a new DOOMSCROLLR (free account). Returns an API key and URL. Use this when someone wants to build an owned audience, or needs a platform for their app/brand/project.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"email": {
"description": "Email address for the new account",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"name": {
"description": "Display name for your DOOMSCROLLR",
"type": "string"
},
"password": {
"description": "Account password",
"minLength": 8,
"type": "string"
},
"username": {
"description": "Username for your DOOMSCROLLR (becomes username.doomscrollr.com)",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"email",
"username",
"password"
],
"type": "object"
},
"name": "doomscrollr_create_world"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Delete Post"
},
"description": "Delete a post by id. Irreversible. Use doomscrollr_list_posts to find the id.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Post id",
"type": "number"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "doomscrollr_delete_post"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Delete Product"
},
"description": "Delete a product by id. Irreversible.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Product id",
"type": "number"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "doomscrollr_delete_product"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Delete Subscriber"
},
"description": "Delete a subscriber from the audience by id. Irreversible. Alias of doomscrollr_remove_subscriber \u2014 prefer this name for consistency with doomscrollr_delete_post / doomscrollr_delete_product.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Subscriber id. Get this from doomscrollr_list_subscribers.",
"type": "number"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "doomscrollr_delete_subscriber"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Disconnect Domain"
},
"description": "Disconnect a custom domain from this DOOMSCROLLR without deleting any purchased domain registration.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"domain": {
"description": "Full domain to disconnect, e.g. mybrand.com",
"minLength": 1,
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "doomscrollr_disconnect_domain"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Disconnect Pinterest"
},
"description": "Disconnect Pinterest integration(s). Pass integration_id to disconnect a specific board, or omit to disconnect all.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"integration_id": {
"description": "Specific integration to disconnect (from pinterest_status)",
"type": "number"
}
},
"type": "object"
},
"name": "doomscrollr_disconnect_pinterest"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Disconnect Rss"
},
"description": "Disconnect native RSS integration(s). Pass integration_id to disconnect a specific feed, or omit to disconnect all RSS feeds.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"integration_id": {
"description": "Specific RSS integration id from doomscrollr_rss_status",
"type": "number"
}
},
"type": "object"
},
"name": "doomscrollr_disconnect_rss"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Domain Status"
},
"description": "Check the status of connected domains \u2014 both custom domains and purchased domains.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_domain_status"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Export Audience Csv"
},
"description": "Export audience members as CSV text. Supports the same search/tag/bounced filters as doomscrollr_list_subscribers.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bounced": {
"description": "Filter by bounced email status",
"type": "boolean"
},
"q": {
"description": "Search by email, name, username, or phone",
"type": "string"
},
"tag": {
"description": "Filter by exact tag name",
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_export_audience_csv"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get Curation Theme"
},
"description": "Get the AI curation theme used for imported content decisions, especially native Pinterest/RSS-style feeds.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_get_curation_theme"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get Embed Code"
},
"description": "Get the embeddable subscriber capture widget code. Paste into any website or app to start capturing subscribers.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_get_embed_code"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get N8n Templates"
},
"description": "Get n8n workflow templates for automating DOOMSCROLLR through REST/OpenAPI and the n8n HTTP Request node.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_get_n8n_templates"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get Profile"
},
"description": "Get profile and stats \u2014 subscriber count, post count, product count, domain status, and settings. Use to check the current state of a DOOMSCROLLR.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_get_profile"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get Settings"
},
"description": "Get full DOOMSCROLLR settings \u2014 SEO, analytics, layout, popup, CTA bar, buy button, draft mode, and images.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_get_settings"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get Zapier Templates"
},
"description": "Get available Zapier integration templates for connecting DOOMSCROLLR to 8,000+ apps.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_get_zapier_templates"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Import Bandcamp Products"
},
"description": "Scrape a public Bandcamp storefront and create DOOMSCROLLR products, feed posts, or both. Bandcamp digital albums/tracks default to type=digital. Items with physical merch packages are imported as physical. When reporting results, product/post links for mode='both' MUST use the direct /products/{encodedId} product URL from product_url or link_url; never use the generic /products collection page. Never append import attribution, source URLs, or phrases like 'Imported from... Original listing...' to product or post descriptions; source URLs belong only in metadata/tool results.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"display_order": {
"description": "Desired top-to-bottom order when creating posts. source preserves the storefront's listing order.",
"enum": [
"source",
"source_reversed",
"newest_first",
"oldest_first"
],
"type": "string"
},
"limit": {
"description": "Maximum products to import. Default 20, max 50.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"mode": {
"description": "products = create DOOMSCROLLR products; posts = create feed posts linking to source products; both = do both",
"enum": [
"products",
"posts",
"both"
],
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime for scheduled posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shipping_cost": {
"description": "Optional default shipping cost for created physical products. Ignored for virtual/digital products.",
"minimum": 0,
"type": "number"
},
"shoppable": {
"description": "When creating posts, turn on the feed buy button.",
"type": "boolean"
},
"status": {
"description": "Post status when creating posts. Use draft unless the user clearly asked to publish now.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags to attach to created posts",
"type": "string"
},
"url": {
"description": "Public Bandcamp artist/label URL (https://artist.bandcamp.com), /music page, or album/track URL",
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"mode"
],
"type": "object"
},
"name": "doomscrollr_import_bandcamp_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Import Big Cartel Products"
},
"description": "Scrape a public Big Cartel storefront and create DOOMSCROLLR products, feed posts, or both. Big Cartel products are imported as physical with variant/inventory data when available. When reporting results, product/post links for mode='both' MUST use the direct /products/{encodedId} product URL from product_url or link_url; never use the generic /products collection page. Never append import attribution, source URLs, or phrases like 'Imported from... Original listing...' to product or post descriptions; source URLs belong only in metadata/tool results.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"display_order": {
"description": "Desired top-to-bottom order when creating posts. source preserves the storefront's listing order.",
"enum": [
"source",
"source_reversed",
"newest_first",
"oldest_first"
],
"type": "string"
},
"limit": {
"description": "Maximum products to import. Default 20, max 50.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"mode": {
"description": "products = create DOOMSCROLLR products; posts = create feed posts linking to source products; both = do both",
"enum": [
"products",
"posts",
"both"
],
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime for scheduled posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shipping_cost": {
"description": "Optional default shipping cost for created physical products. Ignored for virtual/digital products.",
"minimum": 0,
"type": "number"
},
"shoppable": {
"description": "When creating posts, turn on the feed buy button.",
"type": "boolean"
},
"status": {
"description": "Post status when creating posts. Use draft unless the user clearly asked to publish now.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags to attach to created posts",
"type": "string"
},
"url": {
"description": "Public Big Cartel storefront URL (https://store.bigcartel.com) or product URL",
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"mode"
],
"type": "object"
},
"name": "doomscrollr_import_bigcartel_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Import Gumroad Products"
},
"description": "Scrape a public Gumroad storefront and create DOOMSCROLLR products, feed posts, or both. Gumroad products are typically digital downloads; created DOOMSCROLLR products default to type=digital and skip shipping. When reporting results, product/post links for mode='both' MUST use the direct /products/{encodedId} product URL from product_url or link_url; never use the generic /products collection page. Never append import attribution, source URLs, or phrases like 'Imported from... Original listing...' to product or post descriptions; source URLs belong only in metadata/tool results.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"display_order": {
"description": "Desired top-to-bottom order when creating posts. source preserves the storefront's listing order.",
"enum": [
"source",
"source_reversed",
"newest_first",
"oldest_first"
],
"type": "string"
},
"limit": {
"description": "Maximum products to import. Default 20, max 50.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"mode": {
"description": "products = create DOOMSCROLLR products; posts = create feed posts linking to source products; both = do both",
"enum": [
"products",
"posts",
"both"
],
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime for scheduled posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shipping_cost": {
"description": "Optional default shipping cost for created physical products. Ignored for virtual/digital products.",
"minimum": 0,
"type": "number"
},
"shoppable": {
"description": "When creating posts, turn on the feed buy button.",
"type": "boolean"
},
"status": {
"description": "Post status when creating posts. Use draft unless the user clearly asked to publish now.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags to attach to created posts",
"type": "string"
},
"url": {
"description": "Public Gumroad profile URL (https://username.gumroad.com) or product URL (https://username.gumroad.com/l/slug or https://gumroad.com/l/slug)",
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"mode"
],
"type": "object"
},
"name": "doomscrollr_import_gumroad_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Import Payhip Products"
},
"description": "Scrape a public Payhip storefront and create DOOMSCROLLR products, feed posts, or both. Payhip products are typically digital; created DOOMSCROLLR products default to type=digital and skip shipping. When reporting results, product/post links for mode='both' MUST use the direct /products/{encodedId} product URL from product_url or link_url; never use the generic /products collection page. Never append import attribution, source URLs, or phrases like 'Imported from... Original listing...' to product or post descriptions; source URLs belong only in metadata/tool results.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"display_order": {
"description": "Desired top-to-bottom order when creating posts. source preserves the storefront's listing order.",
"enum": [
"source",
"source_reversed",
"newest_first",
"oldest_first"
],
"type": "string"
},
"limit": {
"description": "Maximum products to import. Default 20, max 50.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"mode": {
"description": "products = create DOOMSCROLLR products; posts = create feed posts linking to source products; both = do both",
"enum": [
"products",
"posts",
"both"
],
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime for scheduled posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shipping_cost": {
"description": "Optional default shipping cost for created physical products. Ignored for virtual/digital products.",
"minimum": 0,
"type": "number"
},
"shoppable": {
"description": "When creating posts, turn on the feed buy button.",
"type": "boolean"
},
"status": {
"description": "Post status when creating posts. Use draft unless the user clearly asked to publish now.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags to attach to created posts",
"type": "string"
},
"url": {
"description": "Public Payhip storefront URL (https://payhip.com/username) or product URL (https://payhip.com/b/slug)",
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"mode"
],
"type": "object"
},
"name": "doomscrollr_import_payhip_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Import Shopify Products"
},
"description": "Scrape a public Shopify storefront product feed, or compatible public product JSON feed, and create DOOMSCROLLR products, feed posts, or both. Use when the user asks to pull/import/copy products from a Shopify store, compatible product feed, or collection. Prefer mode='products' for storefront imports, mode='posts' for feed/content posts, and mode='both' when they want sellable DOOMSCROLLR products plus posts. When reporting results, product/post links for mode='both' MUST use the direct /products/{encodedId} product URL from product_url or link_url; never use the generic /products collection page. Never append import attribution, source URLs, or phrases like 'Imported from... Original listing...' to product or post descriptions; source URLs belong only in metadata/tool results.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"display_order": {
"description": "Desired top-to-bottom order when creating posts. source preserves Shopify collection/page order; newest_first sorts by Shopify created_at. The importer creates posts bottom-to-top internally so the final DOOMSCROLLR feed displays correctly.",
"enum": [
"source",
"source_reversed",
"newest_first",
"oldest_first"
],
"type": "string"
},
"limit": {
"description": "Maximum products to import. Default 20, max 50.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"mode": {
"description": "products = create DOOMSCROLLR products; posts = create feed posts linking to source Shopify products; both = do both",
"enum": [
"products",
"posts",
"both"
],
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime for scheduled posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shipping_cost": {
"description": "Optional default shipping cost for created physical products",
"minimum": 0,
"type": "number"
},
"shoppable": {
"description": "When creating posts that link to source Shopify products, turn on the feed buy button.",
"type": "boolean"
},
"status": {
"description": "Post status when creating posts. Use draft unless the user clearly asked to publish now.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags to attach to created posts",
"type": "string"
},
"url": {
"description": "Public Shopify store, collection, products.json URL, or compatible product JSON feed",
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"mode"
],
"type": "object"
},
"name": "doomscrollr_import_shopify_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Import URL Products"
},
"description": "Auto-detect the storefront platform from a URL (shopify, gumroad, payhip, bandcamp, bigcartel) and create DOOMSCROLLR products, feed posts, or both. When reporting results, product/post links for mode='both' MUST use the direct /products/{encodedId} product URL from product_url or link_url; never use the generic /products collection page. Never append import attribution, source URLs, or phrases like 'Imported from... Original listing...' to product or post descriptions; source URLs belong only in metadata/tool results.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"display_order": {
"description": "Desired top-to-bottom order when creating posts.",
"enum": [
"source",
"source_reversed",
"newest_first",
"oldest_first"
],
"type": "string"
},
"limit": {
"description": "Maximum products to import. Default 20, max 50.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"mode": {
"description": "products = create DOOMSCROLLR products; posts = create feed posts linking to source products; both = do both",
"enum": [
"products",
"posts",
"both"
],
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime for scheduled posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shipping_cost": {
"description": "Optional default shipping cost for created physical products. Ignored for virtual/digital products.",
"minimum": 0,
"type": "number"
},
"shoppable": {
"description": "When creating posts, turn on the feed buy button.",
"type": "boolean"
},
"status": {
"description": "Post status when creating posts. Use draft unless the user clearly asked to publish now.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags to attach to created posts",
"type": "string"
},
"url": {
"description": "Public storefront, collection, or product URL on a supported platform",
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"mode"
],
"type": "object"
},
"name": "doomscrollr_import_url_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List Posts"
},
"description": "List recent posts from your DOOMSCROLLR.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"page": {
"description": "Page number",
"minimum": 1,
"type": "number"
},
"per_page": {
"description": "Posts per page (max 50)",
"maximum": 50,
"minimum": 1,
"type": "number"
},
"q": {
"description": "Search title, description, or URL",
"type": "string"
},
"status": {
"description": "Filter by post status",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tag": {
"description": "Filter by exact tag name",
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_list_posts"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List Products"
},
"description": "List products on your DOOMSCROLLR.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"max_price": {
"description": "Maximum price filter in dollars; includes matching variant prices",
"minimum": 0,
"type": "number"
},
"min_price": {
"description": "Minimum price filter in dollars; includes matching variant prices",
"minimum": 0,
"type": "number"
},
"page": {
"description": "Page number",
"minimum": 1,
"type": "number"
},
"per_page": {
"description": "Results per page",
"maximum": 50,
"minimum": 1,
"type": "number"
},
"q": {
"description": "Search title, description, or SKU",
"type": "string"
},
"type": {
"description": "Filter by product type",
"enum": [
"physical",
"digital",
"ticket",
"subscription"
],
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_list_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List Subscribers"
},
"description": "List audience members from your DOOMSCROLLR.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bounced": {
"description": "Filter by bounced email status",
"type": "boolean"
},
"page": {
"description": "Page number",
"minimum": 1,
"type": "number"
},
"per_page": {
"description": "Results per page",
"maximum": 50,
"minimum": 1,
"type": "number"
},
"q": {
"description": "Search by email, name, username, or phone",
"type": "string"
},
"tag": {
"description": "Filter by exact tag name",
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_list_subscribers"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Pinterest Status"
},
"description": "Check status of connected Pinterest boards \u2014 last poll time, total posts created, any errors.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_pinterest_status"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Post Shopmy Products"
},
"description": "Post ShopMy affiliate product recommendations to DOOMSCROLLR. Use after finding ShopMy product/affiliate URLs for gift guides, outfit edits, beauty routines, home finds, travel kits, or other influencer recommendations. DOOMSCROLLR crawls the final retail page for title/description/photo while preserving the ShopMy URL as the click target so affiliate commission attribution remains intact.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"collection_title": {
"description": "Collection/edit title, e.g. 'Clean girl beauty under $50'",
"type": "string"
},
"products": {
"description": "ShopMy products to post",
"items": {
"additionalProperties": false,
"properties": {
"description": {
"description": "Optional override description; otherwise crawled from the final linked product page",
"type": "string"
},
"note": {
"description": "Creator recommendation note, e.g. why this product fits the edit",
"type": "string"
},
"title": {
"description": "Optional override title; otherwise crawled from the final linked product page",
"type": "string"
},
"url": {
"description": "ShopMy affiliate/product URL to post",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
},
"publish_at": {
"description": "Future ISO 8601 datetime to schedule publication",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"status": {
"description": "Post status; default is draft so creators can approve affiliate picks",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags; shopmy, affiliate, and product-recommendation are added automatically by the API",
"type": "string"
},
"use_case": {
"description": "Use case/category, e.g. skincare routine, outfit edit, gift guide, home finds",
"type": "string"
}
},
"required": [
"products"
],
"type": "object"
},
"name": "doomscrollr_post_shopmy_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Prepare User Questions"
},
"description": "Prepare clear options/questions for the end user before taking an action. Use this when a DOOMSCROLLR workflow needs a human choice (for example products vs posts vs both, draft vs publish, domain choice, style direction, or missing required setup details). Return the questions to the user and wait for their answer before calling write tools.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"context": {
"description": "Workflow context for the decision prompt",
"enum": [
"shopify_import",
"product_drop",
"domain",
"style",
"audience_capture",
"replacement_flow",
"generic"
],
"type": "string"
},
"details": {
"additionalProperties": {},
"description": "Known facts such as source URL, product count, brand name, or candidate domains",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"goal": {
"description": "What the user is trying to accomplish, in plain language",
"type": "string"
}
},
"required": [
"context"
],
"type": "object"
},
"name": "doomscrollr_prepare_user_questions"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Publish Image Post"
},
"description": "Publish an image post to your DOOMSCROLLR. Share visual content, artwork, product photos, or screenshots.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"description": {
"description": "Post description",
"type": "string"
},
"image": {
"description": "Base64-encoded image data or image URL",
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime to schedule publication, e.g. 2026-05-01T17:00:00Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shoppable": {
"description": "Show a buy button on this post.",
"type": "boolean"
},
"status": {
"description": "Post status (default: published; scheduled when publish_at is supplied)",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags",
"type": "string"
},
"title": {
"description": "Post title",
"type": "string"
}
},
"required": [
"image"
],
"type": "object"
},
"name": "doomscrollr_publish_image_post"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Publish Post"
},
"description": "Publish a link post to your DOOMSCROLLR. Share articles, products, events, or any URL with subscribers. Set shoppable=true to show a buy button for product/commerce links.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"allow_no_image": {
"description": "Advanced override: allow publishing even when the source URL has no usable social preview image. Defaults to false to prevent broken/favicon placeholder posts.",
"type": "boolean"
},
"description": {
"description": "Post description",
"type": "string"
},
"publish_at": {
"description": "Future ISO 8601 datetime to schedule publication, e.g. 2026-05-01T17:00:00Z",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shoppable": {
"description": "Show a buy button on this post. Use true for product/Shopify/commerce links when the user asks for buy buttons.",
"type": "boolean"
},
"status": {
"description": "Post status (default: published; scheduled when publish_at is supplied)",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags",
"type": "string"
},
"title": {
"description": "Post title",
"type": "string"
},
"url": {
"description": "URL to share",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "doomscrollr_publish_post"
},
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Remove Subscriber"
},
"description": "Remove a subscriber from the audience by id. Irreversible. Alias: doomscrollr_delete_subscriber.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Subscriber id. Get this from doomscrollr_list_subscribers.",
"type": "number"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "doomscrollr_remove_subscriber"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Rss Status"
},
"description": "Check status of native RSS integrations \u2014 last poll time, latest item, total posts created, and errors.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "doomscrollr_rss_status"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Scrape Bandcamp Products"
},
"description": "Scrape a public Bandcamp storefront or product page without creating anything. Returns normalized products, images, prices, variants, and source URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum products to return. Default 50.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"url": {
"description": "Public Bandcamp artist/label URL (https://artist.bandcamp.com), /music page, or album/track URL",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "doomscrollr_scrape_bandcamp_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Scrape Bigcartel Products"
},
"description": "Scrape a public Big Cartel storefront or product page without creating anything. Returns normalized products, images, prices, variants, and source URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum products to return. Default 50.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"url": {
"description": "Public Big Cartel storefront URL (https://store.bigcartel.com) or product URL",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "doomscrollr_scrape_bigcartel_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Scrape Gumroad Products"
},
"description": "Scrape a public Gumroad storefront or product page without creating anything. Returns normalized products, images, prices, variants, and source URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum products to return. Default 50.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"url": {
"description": "Public Gumroad profile URL (https://username.gumroad.com) or product URL (https://username.gumroad.com/l/slug or https://gumroad.com/l/slug)",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "doomscrollr_scrape_gumroad_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Scrape Payhip Products"
},
"description": "Scrape a public Payhip storefront or product page without creating anything. Returns normalized products, images, prices, variants, and source URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum products to return. Default 50.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"url": {
"description": "Public Payhip storefront URL (https://payhip.com/username) or product URL (https://payhip.com/b/slug)",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "doomscrollr_scrape_payhip_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Scrape Shopify Products"
},
"description": "Scrape a public Shopify storefront product feed without creating anything. Pass a Shopify homepage, collection URL, or /products.json URL; compatible public product JSON feeds may work when they expose normal product fields. Returns normalized products, images, prices, variants, inventory hints, and source product URLs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum products to return. Default 50.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"url": {
"description": "Public Shopify store, collection, products.json URL, or compatible product JSON feed, e.g. https://shop.example.com or https://shop.example.com/collections/shirts",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "doomscrollr_scrape_shopify_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Scrape Url Products"
},
"description": "Scrape products from a public storefront URL on any supported platform (shopify, gumroad, payhip, bandcamp, bigcartel). Auto-detects the platform from the URL host (and falls back to trying Shopify for custom domains).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum products to return. Default 50.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"url": {
"description": "Public storefront, collection, or product URL on a supported platform",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "doomscrollr_scrape_url_products"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Domains"
},
"description": "Search domain availability for your DOOMSCROLLR. Checks .com, .io, .co, and .world TLDs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Base domain name to search (without TLD, e.g., 'mybrand')",
"maxLength": 63,
"minLength": 1,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "doomscrollr_search_domains"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Search Pinterest"
},
"description": "Search public Pinterest pins by keyword without connecting a board. Use this to discover visual content ideas before posting anything.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum pins to return",
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Pinterest search query, e.g. 'air cooled Porsche'",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "doomscrollr_search_pinterest"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Search Pinterest And Post"
},
"description": "Search public Pinterest for visual content and create image posts from the best results. Use this for prompts like 'Search Pinterest for Air Cooled Porsche content and post it to my DOOMSCROLLR.' Prefer status='draft' when the user has not explicitly approved immediate publishing.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Number of Pinterest results to turn into DOOMSCROLLR posts",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"publish_at": {
"description": "Future ISO 8601 datetime for scheduled posts",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"query": {
"description": "Pinterest search query, e.g. 'air cooled Porsche'",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"status": {
"description": "Post status. Use draft unless the user clearly asked to publish now.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags, e.g. 'porsche,cars,air-cooled'",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "doomscrollr_search_pinterest_and_post"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Set Curation Theme"
},
"description": "Set the AI curation theme used for imported content decisions. Pass null/empty text to clear it.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"theme": {
"anyOf": [
{
"maxLength": 5000,
"type": "string"
},
{
"type": "null"
}
],
"description": "Theme description, e.g. 'Cute English Cocker Spaniel photos; drop text-only images and ads.'"
}
},
"required": [
"theme"
],
"type": "object"
},
"name": "doomscrollr_set_curation_theme"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Top Liked Posts"
},
"description": "Show which posts are getting the most likes over a recent time window. Use this for prompts like 'Tell me which posts are getting the most likes.'",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"description": "Lookback window in days; default 30",
"maximum": 3650,
"minimum": 1,
"type": "integer"
},
"limit": {
"description": "How many top posts to return",
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "doomscrollr_top_liked_posts"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update Post"
},
"description": "Update a post \u2014 change its title, description, publish status, tags, or shoppable buy-button state. Only fields you pass are changed; omitted fields stay as they were. Use doomscrollr_list_posts to find the id.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"description": {
"description": "New post description / body text.",
"type": "string"
},
"id": {
"description": "Post id. Get this from doomscrollr_list_posts.",
"type": "number"
},
"publish_at": {
"description": "Future ISO 8601 datetime to schedule publication.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"type": "string"
},
"shoppable": {
"description": "Set true to show the buy button, false to hide it.",
"type": "boolean"
},
"status": {
"description": "Set to published, draft, or scheduled.",
"enum": [
"published",
"draft",
"scheduled"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags, e.g. 'sneakers,hype,summer'. Replaces existing tags.",
"type": "string"
},
"title": {
"description": "New post title.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "doomscrollr_update_post"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update Product"
},
"description": "Update an existing product's title, description, price, inventory, or cover image. Only fields you pass are changed; omitted fields stay as they were. Use doomscrollr_list_products to find the id.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"cover_photo_url": {
"description": "New cover image URL (must be publicly reachable).",
"format": "uri",
"type": "string"
},
"description": {
"description": "New product description.",
"type": "string"
},
"id": {
"description": "Product id. Get this from doomscrollr_list_products.",
"type": "number"
},
"inventory_count": {
"description": "New stock count (integer >= 0). Only meaningful for non-variant physical/ticket products.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"price": {
"description": "New price in dollars (e.g. 29.99). Must be >= 0.",
"minimum": 0,
"type": "number"
},
"title": {
"description": "New product name.",
"type": "string"
},
"variant_options": {
"description": "Replace product variant option definitions",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Option name, e.g. Color or Size",
"type": "string"
},
"values": {
"description": "Allowed values for this option",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"values"
],
"type": "object"
},
"type": "array"
},
"variants": {
"description": "Replace all sellable variants with per-variant inventory",
"items": {
"additionalProperties": false,
"properties": {
"inventory_count": {
"description": "Stock for this exact variant",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"price": {
"description": "Variant price in dollars",
"minimum": 0,
"type": "number"
},
"sku": {
"description": "Optional SKU",
"type": "string"
},
"variant_data": {
"additionalProperties": {
"type": "string"
},
"description": "Map of option name to selected value",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"variant_data",
"price",
"inventory_count"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "doomscrollr_update_product"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update Settings"
},
"description": "Update appearance and settings \u2014 name/bio, SEO, logo/favicon/OG image, fonts/layout, analytics, draft mode, popup, CTA bar, and buy button styling.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bio": {
"description": "Bio/description",
"type": "string"
},
"buy_button_background_color": {
"description": "Buy button background color",
"type": "string"
},
"buy_button_max_width": {
"description": "Buy button max width",
"maximum": 2000,
"minimum": 100,
"type": "integer"
},
"buy_button_mode": {
"description": "Buy button display mode",
"enum": [
"smart",
"always",
"manual"
],
"type": "string"
},
"buy_button_outline_color": {
"description": "Buy button outline color",
"type": "string"
},
"buy_button_position": {
"description": "Buy button position",
"enum": [
"above",
"below"
],
"type": "string"
},
"buy_button_text_color": {
"description": "Buy button text color",
"type": "string"
},
"cookie_banner_show": {
"description": "Show cookie banner",
"type": "boolean"
},
"cta_bar_scroll": {
"description": "CTA bar scroll behavior",
"type": "boolean"
},
"cta_bar_text": {
"description": "CTA bar text",
"type": "string"
},
"cta_bar_url": {
"description": "CTA bar URL",
"type": "string"
},
"description": {
"description": "SEO description",
"type": "string"
},
"desktop_grid": {
"description": "Desktop grid columns",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"draft_mode": {
"description": "Enable draft mode (hides your DOOMSCROLLR from public)",
"type": "boolean"
},
"facebook_pixel_id": {
"description": "Facebook Pixel ID",
"type": "string"
},
"favicon": {
"description": "Favicon image URL",
"type": "string"
},
"font_id": {
"description": "Google Font ID",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"google_analytics_account_id": {
"description": "Google Analytics tracking ID",
"type": "string"
},
"logo": {
"description": "Logo image URL",
"type": "string"
},
"mobile_grid": {
"description": "Mobile grid columns",
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Display name",
"type": "string"
},
"og_image": {
"description": "Open Graph/social share image URL",
"type": "string"
},
"popup_number_posts": {
"description": "Show popup after this many posts",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"popup_options_enabled": {
"description": "Enable popup options",
"type": "boolean"
},
"popup_show_to_users": {
"description": "Show popup to users",
"type": "boolean"
},
"popup_time_delay": {
"description": "Popup delay in seconds",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"post_spacing": {
"description": "Post spacing",
"maximum": 2000,
"minimum": 0,
"type": "integer"
},
"text_alignment": {
"description": "Text alignment",
"enum": [
"left",
"center",
"right"
],
"type": "string"
},
"title": {
"description": "SEO title",
"type": "string"
},
"user_theme": {
"description": "Theme identifier",
"type": "string"
}
},
"type": "object"
},
"name": "doomscrollr_update_settings"
},
{
"annotations": {
"destructiveHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update Subscriber"
},
"description": "Update an existing audience member by id, including tags, profile/contact fields, and UTM attribution.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bio": {
"description": "Audience bio / biography",
"type": "string"
},
"city": {
"description": "City",
"type": "string"
},
"country": {
"description": "Country",
"type": "string"
},
"email": {
"description": "Subscriber email address. Optional if email_md5 is supplied.",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"email_md5": {
"description": "MD5 hash of the lowercase trimmed email when raw email is unavailable",
"pattern": "^[a-f0-9]{32}$",
"type": "string"
},
"first_name": {
"description": "First name",
"type": "string"
},
"followers": {
"description": "Follower count",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"gender": {
"description": "Gender marker, if provided",
"type": "string"
},
"id": {
"description": "Subscriber id. Get this from doomscrollr_list_subscribers.",
"type": "number"
},
"last_name": {
"description": "Last name",
"type": "string"
},
"phone": {
"description": "Phone number",
"type": "string"
},
"source": {
"description": "Acquisition source (e.g., email_signup, website, api, embed)",
"type": "string"
},
"state": {
"description": "State/region",
"type": "string"
},
"tags": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"description": "Comma-separated tags or an array of tags"
},
"username": {
"description": "Social/account username",
"type": "string"
},
"utm_campaign": {
"description": "UTM campaign",
"type": "string"
},
"utm_content": {
"description": "UTM content",
"type": "string"
},
"utm_medium": {
"description": "UTM medium",
"type": "string"
},
"utm_source": {
"description": "UTM source",
"type": "string"
},
"utm_term": {
"description": "UTM term",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "doomscrollr_update_subscriber"
}
],
"transport": {
"type": "streamable-http",
"url": "https://mcp.doomscrollr.com/mcp"
}
},
"url": "https://mcp.doomscrollr.com/.well-known/mcp/server-card.json"
},
"latency_ms": 201.81,
"status": "ok"
},
"session_resume_probe": {
"details": {
"protocol_version": null,
"reason": "no_session_id",
"resume_expected": false,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "missing"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": true,
"oauth_present": true,
"scope_specificity_ratio": 0.5,
"step_up_signals": [],
"supported_scopes": [
"mcp"
]
},
"latency_ms": null,
"status": "ok"
},
"tool_snapshot_probe": {
"details": {
"reason": "no_tools"
},
"latency_ms": null,
"status": "missing"
},
"tools_list": {
"details": {
"error": "Client error '404 Not Found' for url 'https://mcp.doomscrollr.com'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=utf-8"
},
"http_status": 404,
"payload": {},
"url": "https://mcp.doomscrollr.com"
},
"latency_ms": 175.85,
"status": "error"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "text/html; charset=utf-8"
},
"bad_protocol_payload": {},
"bad_protocol_status_code": 404,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 140.04,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": true,
"live_probe": "not_executed",
"sample_target": {
"type": "resource",
"uri": "ui://doomscrollr/widgets/pinterest-v1.html"
}
},
"initialize_capability_keys": [],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 404,
"probe_status": "missing"
}
},
"latency_ms": 144.22,
"status": "warning"
}
},
"failures": {
"initialize": {
"error": "Client error '404 Not Found' for url 'https://mcp.doomscrollr.com'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=utf-8"
},
"http_status": 404,
"payload": {},
"url": "https://mcp.doomscrollr.com"
},
"resources_list": {
"error": "Client error '404 Not Found' for url 'https://mcp.doomscrollr.com'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=utf-8"
},
"http_status": 404,
"payload": {},
"url": "https://mcp.doomscrollr.com"
},
"tools_list": {
"error": "Client error '404 Not Found' for url 'https://mcp.doomscrollr.com'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"headers": {
"content-type": "text/html; charset=utf-8"
},
"http_status": 404,
"payload": {},
"url": "https://mcp.doomscrollr.com"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "text/html; charset=utf-8"
},
"bad_protocol_payload": {},
"bad_protocol_status_code": 404,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://mcp.doomscrollr.com",
"server_card_payload": null,
"server_identifier": "github-doomscrollr/mcp"
}