Index / MCP servers / Hermoso

Hermoso MCP server

Hermoso is an MCP server with 309 tools an agent can call, among them analyze_video, answer_google_business_question, append_to_doc. It answers at https://app.hermoso.ai/mcp?src=registry over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 9 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.

Status
Answering
Tools
309
Reliability
9 of 10 checks
Response time
285 ms
Transport
streamable HTTP
Last checked
18 October 2026

Marketing on autopilot from your agent. 841 tools, usable alone. Publishing and ads cost no credits.

Description as the publisher wrote it.

The 309 tools Hermoso offers

ToolWhat it does
analyze_videoBreak a video ad down into its structure: the verbatim transcript (voiceover + on-screen text) with a beat list, plus duration and sampled frame timestamps. Use to study a reference/competitor ad before remixing its structure. Costs ~a tran
Inputs: url
answer_google_business_questionPost the business’s answer to a public question on the brand’s Google Business Profile listing, or delete the answer already there. THIS IS AN UPSERT — one answer per account, so answering again REPLACES the previous one rather than adding
Inputs: questionId, text, locationId, delete, confirm
append_to_docAppend text to the end of a Google Doc Hermoso can reach — one it created (pass the documentId from create_doc) or one the user handed over with the Google file picker in the app (find its id with list_drive_files).
Inputs: documentId, text
append_to_sheetAppend rows to a Google Sheet Hermoso can reach — one it created (pass the spreadsheetId from create_sheet) or one the user handed over with the Google file picker in the app (find its id with list_drive_files). rows = array of row arrays.
Inputs: spreadsheetId, rows, range
backfill_postsImport this brand's PAST posts from a channel into the performance record, so 'which hook works' can draw on history rather than only on what was published since Hermoso started recording. Supports facebook, instagram, threads, youtube, tik
Inputs: channel, confirm, limit, cursor, accountRef
billing_statusShow this account's billing at a glance: current plan (id + label + the price it is ACTUALLY billed — quote plan.priceUsd per plan.period, not plan.monthlyUsd), credit balance, whether auto-reload is on, whether a card is on file, and wheth
bluesky_post_metricsRead live engagement for up to 25 of the connected account’s Bluesky posts — likes, reposts, replies, quotes and bookmarks. Address a post by its AT-URI (the `at://…` value post_to_bluesky returns), not its web URL. Bluesky publishes NO imp
Inputs: uris
buy_creditsOut of credits? Top up with a credit PACK. Call with no argument to list the available packs (id · credits · price). If the account has a saved card and you have billing-admin rights, calling with `pack` quotes the exact charge and calling
Inputs: pack, confirm, quote_token
cancel_scheduledRemove a queued post before it goes out. Get the id from list_scheduled. Only works while it is still queued — something already published cannot be unsent (use manage_meta_post to delete a Facebook/Instagram post after the fact).
Inputs: id
change_voiceSwap the narration of a finished video into a different voice — keeps the performance, lip-sync, and background sound. Use when the user likes the video but wants a different narrator voice; use dub_video only for language translation. Paid
Inputs: video, voice
check_ad_policyPre-flight ad copy against Meta's REAL, live Advertising Standards before you run it — a flat 1-credit check. Pulls Meta's actual policy pages and returns a verdict (pass / fix / block) where every flagged issue QUOTES Meta's own policy tex
Inputs: copy, claims, category, imageDescription
clear_sheet_rangeEmpty a range of cells in a Google Sheet, leaving the rows themselves in place. DESTRUCTIVE: call it WITHOUT confirm first and nothing is cleared — you get back the real number of filled cells in that exact range. Show the user that number,
Inputs: spreadsheetId, sheetUrl, range, confirm, confirmCells
clip_videoCut ONE long video into several RANKED, ready-to-post short clips (podcast, webinar, interview, conference talk, long ad cut → Reels/Shorts/TikTok). Transcribes the source with timestamps, picks the strongest SELF-CONTAINED moments, then cu
Inputs: video, count, aspectRatio, captions
collect_post_metricsFetch fresh performance numbers for this brand's recorded posts and store them as a time-series. Metrics ACCRUE, so a post is read at ~24 hours and again at ~7 days; this collects whichever readings are due and skips the ones already taken.
Inputs: includeMetered, max
comment_on_meta_postLeave a NEW top-level comment on one of the brand’s own Facebook Page posts, as the brand. This is the "link in the first comment" tactic — Facebook suppresses reach on a post with an outbound link in the body, so brands put the link undern
Inputs: postId, message, attachmentUrl, pageId
comment_on_tiktok_videoWrite a NEW top-level comment on a TikTok post the authorized account owns. Text (≤1,200 characters, UTF-8) or an image, and TikTok requires at least one of the two. AN IMAGE HERE MUST BE UPLOADED FIRST — a raw URL is refused on a new comme
Inputs: videoId, text, imageUri, imageWidth, imageHeight
competitor_teardownTear a competitor's ad strategy down into an actionable playbook: their opening-hook MIX, longest-running campaign THEMES, the WHITE SPACE nobody in their set runs, 2-3 render-ready COUNTER-PLAYS, and the territories they own that you shoul
Inputs: competitor, ads, language
convert_onedrive_fileTurn a file already in the user’s OneDrive into a PDF or a JPG — Microsoft does the conversion on its own servers, so nothing is re-encoded here and nothing is lost in a screenshot. It reads about 130 source formats, which is the point: Pow
Inputs: fileId, format, width, height
create_brandAdd a NEW brand workspace (a separate brand/client on this account) and switch to it. Each workspace has its OWN brand profile, memory, swipefile, Library, avatars, skills, playbooks and connectors — nothing leaks between them. Use this for
Inputs: name, activate
create_docCreate a new Google Doc in the user’s Drive with a title + optional body text — e.g. export ad copy, a creative brief, or a report. Returns the document id + URL. Needs Google Drive connected (Settings ▸ Connectors ▸ Google Drive — one conn
Inputs: title, text
create_drive_folderCreate a folder in the user’s Google Drive (optionally nested under parentId) to organize saved files. Returns the folder id + webViewLink. Use that ID as update_drive_file’s moveToFolderId or as parentId for a nested folder. NOTE: save_to_
Inputs: name, parentId
create_meta_catalogCreate a NEW product catalog on one of the merchant’s Meta business portfolios. A catalog is the input to Advantage+ catalog ads (dynamic product ads) — build it first, then fill it from the merchant’s feed or Shopify, then point a campaign
Inputs: businessId, businessName, name, vertical, allowDuplicateName
create_onedrive_folderCreate a folder in the user’s OneDrive (optionally nested under parentId) to organize saved files. Returns the folder id + webViewLink. Use that id as update_onedrive_file’s moveToFolderId or as parentId for a nested folder. NOTE: save_to_o
Inputs: name, parentId
create_pinterest_boardCreate a board on the connected Pinterest account. Needed because a Pin cannot exist without a board, and a NEW Pinterest business account has none — if list_pinterest_boards comes back empty, make one here rather than telling the user you
Inputs: name, description, privacy
create_sheetCreate a new Google Spreadsheet in the user’s Drive and optionally fill it with rows — e.g. export a swipefile, ad list, or performance report. Pass rows as an array of row arrays (first row = headers). Returns the spreadsheet id + URL. Nee
Inputs: title, rows
create_whatsapp_templateSubmit a new WhatsApp message template for Meta’s review. This is the ONLY way a business can start a WhatsApp conversation: outside the 24-hour window that opens when a customer messages first, WhatsApp accepts approved templates and nothi
Inputs: wabaId, name, language, category, components, parameterFormat
delete_bluesky_postPERMANENTLY delete one of the connected Bluesky account's OWN posts. IRREVERSIBLE — the AT Protocol removes the record from the account's repo, there is no trash and no undelete, and the post's likes, reposts, replies and quotes go with it.
Inputs: uri, confirm, confirmText
delete_brandPERMANENTLY delete a brand workspace and EVERYTHING in it — brand profile, memory, swipefile, Library creations, generated assets, avatars, skills, playbooks, chats — and disconnect its connected accounts. Irreversible, and it applies to ev
Inputs: brand, confirm, confirmName, confirmConnectors
delete_creatorRemove a saved creator from this workspace’s cast by id (from list_creators). Records a cross-device delete so they don’t reappear on the user’s other devices. It only drops the roster entry — ads already rendered with that person are untou
Inputs: id
delete_drive_fileDelete a Drive file. By default it goes to Trash (recoverable); pass permanent:true to delete it forever. Pass fileId (from list_drive_files) + confirm:true. Irreversible when permanent — confirm with the user first.
Inputs: fileId, permanent, confirm
delete_google_business_postRemove a Post from the brand’s Google Business Profile listing. This takes it off Google Search and Maps immediately and CANNOT be undone — confirm with the user first. Pass the full post name from list_google_business_posts. Needs Google B
Inputs: postId
delete_linkedin_commentRemove a comment from one of your LinkedIn company Page's posts — your own Page's comment, or somebody else's on your Page. Community Management surface, same separate connection. CONFIRM-GATED: call once without `confirm` to be refused and
Inputs: postUrn, commentId, organizationId, confirm
delete_meta_catalogPERMANENTLY delete a product catalog. Meta does not let a catalog be removed from a business portfolio and then restored, and it cannot be transferred to another portfolio — there is no archive and no undo, and its product sets go with it,
Inputs: catalogId, confirm, confirmName, confirmChildren, allowDeleteWithLiveProductSet
delete_onedrive_fileDelete a OneDrive item — it moves to the OneDrive recycle bin (recoverable there). Pass fileId (from list_onedrive_files) + confirm:true. Confirm the exact file with the user first.
Inputs: fileId, confirm
delete_pinterest_boardPERMANENTLY delete a board AND EVERY PIN ON IT. This is the heaviest thing that can be done to a Pinterest account and there is no undelete. Call it WITHOUT confirm first: nothing is deleted, and it answers with the board’s real name, how m
Inputs: boardId, confirm, confirmName, confirmChildren
delete_pinterest_pinPERMANENTLY delete a Pin. Pinterest has no undelete and no archive for one. Call it WITHOUT confirm first: nothing is deleted, and it answers with the Pin’s real title, its lifetime saves and impressions, and whether it HAS BEEN PROMOTED in
Inputs: pinId, confirm, confirmName
delete_playbookDelete a saved playbook by id (from list_playbooks). Records a cross-device delete so it does not come back on the next sync. Minor + re-creatable, so no confirm needed.
Inputs: id
delete_reddit_postPERMANENTLY delete one of the connected account’s Reddit posts. Reddit has no undelete. Call it WITHOUT confirm first: nothing is deleted, and it answers with the post’s real title, subreddit, score and comment count read back from Reddit.
Inputs: postId, confirm, confirmName
delete_skillDelete one of the workspace’s CUSTOM skills by id (from list_skills). Built-in skills/recipes can’t be deleted. Minor + re-creatable, so no confirm needed.
Inputs: id
delete_telegram_messagePERMANENTLY delete one message the bot posted to a Telegram chat. Call it WITHOUT confirm first: nothing is deleted and you get a sentence to show the user. There is deliberately NO preview of the message — the Bot API has no method that re
Inputs: chatId, messageId, confirm
269 more tools

delete_thread, delete_tiktok_post_ad_authorization, delete_whatsapp_template, delete_x_post, delete_youtube_report_job, delete_youtube_video, diagnose_posts, disconnect_connector, draft_brand, dub_video, duplicate_scheduled, edit_reddit_post, edit_video, edit_x_post, enable_tools, error_detail, export_swipefile_deck, extend_tiktok_post_ad_authorization, fetch_app_screens, fetch_asset, fetch_social_data, find_competitors, finish_video, fix_beat, forget, format_sheet, generate_avatar, generate_image, generate_text, generate_video, generate_voice, get_brand, get_business_location, get_drive_file, get_job, get_onedrive_file, get_post_refill, get_settings, get_skill, get_tiktok_mention, get_tiktok_post_ad_authorization, google_business_account, google_business_insights, google_business_search_keywords, hermoso_capabilities, hermoso_credits, hide_thread_reply, instagram_collaborators, instagram_insights, instagram_profile, invite_member, leave_connector, linkedin_page_analytics, list_bluesky_convos, list_bluesky_posts, list_brands, list_business_locations, list_connector_accounts, list_connectors, list_creators, list_drive_files, list_errors, list_google_business_posts, list_google_business_questions, list_google_business_reviews, list_hooks, list_inbox, list_instagram_media, list_instagram_shopping_catalogs, list_jobs, list_library, list_linkedin_comments, list_linkedin_pages, list_memory, list_meta_catalog_products, list_meta_catalogs, list_meta_comments, list_meta_conversations, list_meta_pages, list_meta_partnership_creators, list_meta_posts, list_meta_product_sets, list_meta_webhook_events, list_onedrive_files, list_pinterest_boards, list_pinterest_pins, list_playbooks, list_product_photos, list_published_posts, list_reddit_comments, list_reddit_posts, list_scheduled, list_sheet_tabs, list_shopify_products, list_skills, list_swipefile, list_team, list_telegram_chats, list_telegram_dms, list_threads_mentions, list_threads_posts, list_threads_profile_posts, list_threads_replies, list_tiktok_brand_hashtag_posts, list_tiktok_brand_hashtags, list_tiktok_comment_replies, list_tiktok_comments, list_tiktok_mention_comments, list_tiktok_mentions, list_tiktok_videos, list_watch_findings, list_whatsapp_accounts, list_whatsapp_templates, list_x_dms, list_youtube_captions, list_youtube_categories, list_youtube_comments, list_youtube_playlists, list_youtube_report_jobs, list_youtube_video_stats, list_youtube_videos, make_explainer, make_template_ad, make_thumbnail, manage_bluesky_convo, manage_instagram_product_tags, manage_linkedin_post, manage_meta_partnership_creator, manage_meta_post, manage_sheet_tabs, manage_tiktok_brand_hashtags, manage_youtube_caption, manage_youtube_channel_section, manage_youtube_playlist, manage_youtube_playlist_image, manage_youtube_playlist_items, mark_bluesky_convo_read, meta_catalog_blast_radius, meta_page_insights, meta_post_insights, meta_webhook_status, mine_angles, moderate_meta_comment, moderate_tiktok_comment, moderate_youtube_comment, pinterest_ads_async_report, pinterest_analytics, pinterest_audience_insights, pinterest_targeting_analytics, plan_ad, plan_variations, post_edit, post_performance, post_to_bluesky, post_to_google_business, post_to_linkedin, post_to_linkedin_page, post_to_meta, post_to_pinterest, post_to_reddit, post_to_telegram, post_to_tiktok, post_to_x, post_to_youtube, post_x_article, product_sizzle, publish_to_shopify_product, pull_competitor_ads, react_to_bluesky_dm, read_bluesky_dm, read_doc, read_meta_conversation, read_sheet, recast_motion, reddit_post_stats, reframe_video, remember, remix_static, remove_member, render_ad, reply_to_google_business_review, reply_to_inbox_item, reply_to_linkedin_comment, reply_to_meta_comment, reply_to_meta_message, reply_to_reddit_comment, reply_to_thread, reply_to_tiktok_comment, reply_to_youtube_comment, report_bug, repost_thread, request_feature, reschedule_post, research_ads, retry_scheduled, run_post_refill, save_creator, save_pinterest_pin, save_playbook, save_skill, save_to_drive, save_to_onedrive, save_to_swipefile, schedule_post, score_ad, search_google_ads, search_instagram, search_instagram_hashtag, search_instagram_shopping_products, search_linkedin_ads, search_meta_ads, search_pinterest_ads_targeting, search_reddit, search_threads, search_threads_keyword, search_threads_locations, search_tiktok, search_youtube, send_bluesky_dm, send_whatsapp_broadcast, send_whatsapp_message, send_x_dm, set_auto_reload, set_competitor_watch, set_connector_accounts, set_post_refill, set_product_image, set_role, set_tiktok_post_ad_authorization, set_youtube_thumbnail, set_youtube_watermark, stitch_video, store_get, subscribe_meta_webhooks, threads_insights, threads_profile, threads_publishing_limit, tiktok_account, tiktok_account_insights, tiktok_account_status, tiktok_category_benchmark, tiktok_creator_info, tiktok_mention_top_terms, unsubscribe_meta_webhooks, update_brand, update_business_location, update_doc, update_drive_file, update_meta_catalog, update_onedrive_file, update_pinterest_board, update_pinterest_pin, update_settings, update_sheet, update_youtube_channel, update_youtube_video, upgrade_plan, upload_file, upload_tiktok_comment_image, upscale_video, use_brand, x_mentions, x_post_insights, x_post_insights_historical, x_post_metrics, youtube_bulk_report, youtube_channel, youtube_channel_report, youtube_video_insights

Add Hermoso to your AI client

Every block below points at https://app.hermoso.ai/mcp?src=registry. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http hermoso https://app.hermoso.ai/mcp?src=registry
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "hermoso": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://app.hermoso.ai/mcp?src=registry"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "hermoso": {
      "url": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "hermoso": {
      "type": "http",
      "url": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "hermoso": {
      "url": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "hermoso": {
      "serverUrl": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "hermoso": {
      "url": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: Hermoso
version: 0.0.1
schema: v1
mcpServers:
  - name: Hermoso
    type: streamable-http
    url: https://app.hermoso.ai/mcp?src=registry
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "hermoso": {
      "httpUrl": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "hermoso": {
      "type": "http",
      "url": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "hermoso": {
      "url": "https://app.hermoso.ai/mcp?src=registry"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fapp.hermoso.ai%2Fmcp%3Fsrc%3Dregistry&type=streamable_http&id=hermoso&name=Hermoso

Is Hermoso up right now?

It answered our last check on 18 October 2026 in 285 ms. Over 10 checks since 5 September 2026 it answered 9. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to Hermoso

Questions about Hermoso

How many tools does Hermoso have?

309, as returned by the server's own tools/list on 31 August 2026: analyze_video, answer_google_business_question, append_to_doc, append_to_sheet, backfill_posts, billing_status, bluesky_post_metrics, buy_credits, and 301 more.

Is Hermoso down?

It answered our last check on 18 October 2026 in 285 ms. Over 10 checks since 5 September 2026 it answered 9.

How do I add Hermoso to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://app.hermoso.ai/mcp?src=registry. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does Hermoso need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: io.github.hermoso-ai. Endpoint host: app.hermoso.ai. ARD identifier: urn:air:io.github.hermoso-ai:mcp:hermoso. First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.