# Hermoso — MCP & CLI

> Machine-readable twin of https://hermoso.ai/mcp/. Generated from the shipped page — do not edit by hand.
> Full agent guide: https://hermoso.ai/llms.txt · MCP: https://app.hermoso.ai/mcp

Developers

# Run all your marketing from your agent

Hermoso ships an open-source MCP server, a CLI and installable Claude skills, so the assistant you already use can run your whole ad function: research the ads winning in your market, create finished image & video ads, publish them, and build and read the paid campaigns behind them. **681+ tools over one OAuth&rsquo;d endpoint**, 50+ image, video, voice and writing models on a single credit meter, and exact per-render costs published before anything spends.

Last updated 1 August 2026

**ClaudeChatGPTClaude CodeCursorCodexOpenClawHermesAny MCP clientTerminal

Why agents (and their humans) pick Hermoso:** one connector is a **one-stop shop for 50+ image and video models** — Seedance, Veo, Kling, Sora and Gemini Omni for video; Nano Banana, Imagen, Flux, Seedream and GPT Image for stills; plus premium voices and Claude-, Gemini- and GPT-class writing models — on a single credit meter, with no per-vendor API keys or accounts to hold. And beyond raw models, the same connector covers the **entire ad workflow**: competitor research across the Meta, Google and LinkedIn ad libraries, creative planning, finished branded renders, post-production, scoring, publishing and campaign management. Exact per-render credit costs are published in `hermoso_capabilities`, so a well-behaved agent can quote you a number before it spends anything.

Hermoso is [the marketing MCP](https://hermoso.ai/marketing-mcp/) that runs the whole ad loop — most marketing MCPs only manage campaigns, but Hermoso also **creates and publishes** the ad. Connect it to your agent and research, create, publish and manage **finished ads** straight from your prompts — 681+ tools, your saved brand context, your credits. Install from [npm](https://www.npmjs.com/package/hermoso) (`npm install -g hermoso`) — open source at [github.com/hermoso-ai/hermoso](https://github.com/hermoso-ai/hermoso).

**One-click connect:** [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=hermoso&config=eyJ1cmwiOiAiaHR0cHM6Ly9hcHAuaGVybW9zby5haS9tY3AifQ==) · [Install in VS Code](vscode:mcp/install?%7B%22name%22%3A%22hermoso%22%2C%22url%22%3A%22https%3A%2F%2Fapp.hermoso.ai%2Fmcp%22%7D) · Claude Code: `npm install -g hermoso && hermoso auth login && claude mcp add hermoso -- npx -y hermoso mcp` · Claude.ai: paste `https://app.hermoso.ai/mcp` under Settings → Connectors. Agents can auto-discover the server card at [/.well-known/mcp.json](https://app.hermoso.ai/.well-known/mcp.json). Also listed in the [official MCP registry](https://registry.modelcontextprotocol.io/v0/servers?search=hermoso) (`io.github.hermoso-ai/hermoso`), on [Smithery](https://smithery.ai/servers/hermoso/hermoso) and on [Glama](https://glama.ai/mcp/connectors/io.github.hermoso-ai/hermoso).

Prefer the studio? Everything the tools do lives in the web app too — [app.hermoso.ai](https://app.hermoso.ai).

## Three things to type once it&rsquo;s connected

These are ordinary sentences, not a DSL. The agent picks the tools; you approve the spend.

- **Research.** &ldquo;Who are `oatly.com`&rsquo;s three closest competitors, and what are their longest-running Meta ads? Tell me which hook keeps repeating.&rdquo; — walks `find_competitors` → `pull_competitor_ads` → `mine_angles`.

- **Create.** &ldquo;Make me a 9:16 UGC video ad for my brand using that hook, with my real product photo and captions burned in.&rdquo; — walks `get_brand` → `plan_ad` → `render_ad`, and hands back the finished mp4 URL.

- **Ship.** &ldquo;Schedule it to Instagram and TikTok for Tuesday 9am, and build a paused Meta campaign around it targeting the US at $30/day.&rdquo; — walks `schedule_post` → `create_meta_campaign` → `create_meta_ad`. The campaign is created paused ; nothing spends until you say so.

## The tools, by job

All **681+ tools** over one OAuth&rsquo;d server — call any of them from Claude, Claude Code, Claude Desktop, Codex, Cursor, Cline, OpenClaw, Hermes or any other MCP client. Each returns a durable asset URL or a structured result, not prose the model has to re-parse.

**Looking for the complete roster?** It is at [the tool reference](https://hermoso.ai/docs/reference/) — every tool with its real parameter schema, and [machine-readable JSON](https://hermoso.ai/docs/reference/tools.json) beside it. That reference is generated : it is built by running the shipping MCP server and reading `tools/list` back over a real transport, so it is the exact surface your client receives. **The categories below are a hand-written tour, not the inventory** — they name the tools worth knowing by name, and the reference is what to trust when the two disagree. Full developer documentation: [hermoso.ai/docs](https://hermoso.ai/docs/).

**Research & ad spy —** `find_competitors`, `competitor_teardown`, `pull_competitor_ads`, `research_ads`, `mine_angles`, `score_ad`, `check_ad_policy`, `analyze_video`; ad libraries `search_meta_ads`, `search_google_ads`, `search_linkedin_ads`; organic social `search_tiktok`, `search_instagram`, `search_youtube`, `search_reddit`, `search_threads`, `search_threads_keyword`; `scrapecreators_fetch`; creative playbooks `list_skills`, `get_skill`, `save_skill`.

**Create finished ads —** brand `draft_brand`, `get_brand`, `update_brand`, `use_brand`, `list_brands`; plan `plan_ad`, `plan_variations`; render `render_ad`, `generate_image`, `generate_video`, `generate_avatar`, `generate_voice`, `generate_text`, `make_template_ad` (native HTML ad formats rendered directly, so the type is pixel-exact), `make_explainer`, `product_sizzle`, `make_thumbnail`; edit & finish `remix_static`, `recast_motion`, `reframe_video`, `upscale_video`, `dub_video`, `change_voice`, `finish_video`, `fix_beat`, `post_edit`, `stitch_video`, `clip_video`; assets `list_product_photos`, `set_product_image`, `list_library`, `fetch_asset`, `upload_file`.

**Publish & schedule to your channels —** `post_to_meta` (Facebook / Instagram / Threads), `post_to_tiktok`, `post_to_youtube`, `schedule_post` (one queue across Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest and Bluesky), `list_scheduled`, `cancel_scheduled`, `manage_meta_post`, `update_youtube_video`, `upload_meta_asset`, `list_meta_pages`, `youtube_channel`, `tiktok_account`, `list_tiktok_videos`. YouTube goes past the upload: `list_youtube_videos`, `update_youtube_video`, `set_youtube_thumbnail` (put a Hermoso thumbnail on an upload — the single biggest lever on click-through, and YouTube otherwise picks a frame at random) and `youtube_video_insights` (views, watch time, average view percentage, subscribers gained). Engagement: `list_meta_comments`, `reply_to_meta_comment`, `moderate_meta_comment`, `list_threads_replies`, `reply_to_thread`, `list_youtube_comments`, `reply_to_youtube_comment`. X / Twitter: `post_to_x` (text, image, video, replies and whole threads), `delete_x_post`, `x_post_metrics` and `x_post_insights` (impressions, likes, reposts, replies, quotes, bookmarks), `x_post_insights_historical` (the same advertiser numbers over any date range — `x_post_insights` only sees the last 28 hours), `x_mentions` — **X is the one connector that bills credits per API call**, because X charges us per request, and a post containing a link costs roughly **13×** one without; your agent is quoted the price before it posts. LinkedIn: `list_linkedin_pages`, `post_to_linkedin_page`, `post_to_linkedin`, `manage_linkedin_post`, `linkedin_page_analytics` (organic Page performance — followers and follower gains, Page views, and post impressions, clicks and engagement, for the Page total or per post) — **LinkedIn publishing targets the company Pages you tick** — your personal profile is available too, but stays off until you explicitly share it. Pinterest: `list_pinterest_boards`, `create_pinterest_board`, `post_to_pinterest`, `post_to_bluesky` (image or video Pins on a board you pick). Threads goes further than publishing: `list_threads_posts`, `list_threads_replies`, `reply_to_thread`, `hide_thread_reply`, `delete_thread`, `list_threads_mentions`, `threads_insights`.

**One content calendar across every channel —** `schedule_post` queues a finished render to one or several channels at a chosen time with per-channel captions; `list_scheduled` reads what is queued and what already fired, with per-channel outcomes; `cancel_scheduled` pulls a post back before it goes out. In the studio the same queue is a real calendar — month, week and list views, drag a post to reschedule it, edit or duplicate any entry, and standing time-slots you can drop work into. Hermoso publishes at the appointed time; nothing has to stay open.

**Run Meta ad campaigns —** `create_meta_campaign`, `create_meta_adset`, `create_meta_ad`, `find_meta_audiences`, `list_meta_ads`, `meta_insights`, `meta_page_insights`, `meta_post_insights`, `update_meta_object`, `set_meta_campaign_status`, `delete_meta_object` — objects are created **paused**, and every spend and delete is confirm-gated. Before a budget is committed: `preview_meta_ad` renders the real ad per placement as a link you can look at, and `estimate_meta_reach` says how many people a targeting spec actually reaches. Audiences: `list_meta_audiences` and `create_meta_audience` build website-pixel retargeting, Page and Instagram engagement audiences, and lookalikes — creating one spends nothing. `meta_insights` breaks performance down by age, gender, placement and country.

**Run Google Ads campaigns —** `create_google_ads_campaign`, `create_google_ads_ad_group`, `create_google_ads_ad`, `add_google_ads_keywords`, `set_google_ads_budget`, `set_google_ads_bidding`, `set_google_ads_targeting`, `set_google_ads_status`, `find_google_ads_locations`, `upload_google_ads_asset`, `list_google_ads_campaigns`, `google_ads_report` (GAQL) — the whole tree is built in one atomic operation, then read back from Google before the agent narrates what it made. Beyond the tree: `create_google_ads_conversion_action` and `list_google_ads_conversion_actions` (what Google counts as a result — TARGET_CPA, TARGET_ROAS, MAXIMIZE_CONVERSIONS and every Performance Max campaign are undeliverable without one, so Hermoso refuses to build them on an account that has none), `create_google_ads_performance_max_campaign` (Google&rsquo;s cross-surface campaign type), `add_google_ads_assets` (sitelinks, callouts and structured snippets, created and attached — an unattached asset shows nothing) and `google_ads_keyword_ideas` (Keyword Planner: real monthly search volume, competition and top-of-page bids, so keywords are chosen from data rather than guessed).

**Run LinkedIn, Pinterest, Microsoft, X, TikTok, Snapchat, ChatGPT and Apple Search Ads —** the same paused-by-default, confirm-gated pattern on every other paid platform. LinkedIn: `list_linkedin_ads_campaigns`, `linkedin_ads_report`, `create_linkedin_ads_campaign_group`, `create_linkedin_ads_campaign`, `create_linkedin_ads_creative`, `search_linkedin_ads_targeting`, `set_linkedin_ads_budget`, `set_linkedin_ads_status`, `delete_linkedin_ads_object`. Pinterest: `list_pinterest_ads_campaigns`, `pinterest_ads_report`, `create_pinterest_ads_campaign`, `create_pinterest_ads_ad_group`, `create_pinterest_ads_ad`, `set_pinterest_ads_budget`, `set_pinterest_ads_status`. Microsoft Advertising (Bing): `list_microsoft_ads_campaigns`, `microsoft_ads_report`, `create_microsoft_ads_campaign`, `create_microsoft_ads_ad_group`, `create_microsoft_ads_ad`, `add_microsoft_ads_keywords`, `set_microsoft_ads_budget`, `set_microsoft_ads_status`, `microsoft_ads_geo_search` (resolve country, region and city names to the Microsoft location ids a campaign needs — without locations a Microsoft campaign is created serving worldwide, which is Microsoft&rsquo;s own default, and the read-back warns you loudly). Reddit Ads — the full account tree: `list_reddit_ads_campaigns`, `reddit_ads_report`, `create_reddit_ads_campaign`, `create_reddit_ads_ad_group`, `create_reddit_ads_ad`, `create_reddit_ads_post` (a Reddit ad promotes a post, so the creative is a post), `set_reddit_ads_status`, plus free planning with `search_reddit_ads_targeting`, `reddit_ads_forecast` and `reddit_ads_bid_suggestion`, conversion tracking through `list_reddit_ads_pixels` and `send_reddit_ads_conversions`, retargeting and saved audiences, lead forms, and `reddit_ads_history`. ChatGPT Ads — the ads that run under a ChatGPT answer, via OpenAI&rsquo;s Advertiser API: `list_openai_ads_campaigns`, `openai_ads_report`, `openai_ads_geo_search`, `create_openai_ads_campaign`, `create_openai_ads_ad_group`, `create_openai_ads_ad`, `update_openai_ads_object`, `set_openai_ads_budget`, `set_openai_ads_status`. ChatGPT Ads has exactly one creative format, a text-plus-image card, and no video — so the agent will pull a still from your film rather than offer you a video ad there. X Ads — the full promoted-post tree, live since August 2026: `list_x_ads_accounts`, `list_x_ads_funding_instruments`, `x_ads_report`, `create_x_ads_campaign`, `create_x_ads_line_item` (X&rsquo;s name for an ad group), `create_x_ads_promoted_tweet`, `add_x_ads_targeting`, `x_ads_targeting_search`, `x_ads_geo_search`, `update_x_ads_campaign`, `update_x_ads_line_item`, `set_x_ads_status`, `delete_x_ads_object`. An X ad promotes a post, so the creative is a post — the same one `post_to_x` publishes. **TikTok Ads** is a SEPARATE connection from the TikTok posting connector, and it is the one platform that creates objects ENABLED by default, so Hermoso forces every tier PAUSED with no override: `list_tiktok_ads_accounts`, `list_tiktok_ads_campaigns`, `list_tiktok_ads_identities`, `search_tiktok_ads_targeting`, `tiktok_ads_report`, `create_tiktok_ads_campaign`, `create_tiktok_ads_ad_group`, `upload_tiktok_ads_creative`, `create_tiktok_ads_ad`, `set_tiktok_ads_budget`, `set_tiktok_ads_status`, `delete_tiktok_ads_object`. **Snapchat Ads**: `list_snapchat_ads_accounts`, `list_snapchat_ads_campaigns`, `list_snapchat_ads_profiles`, `search_snapchat_ads_targeting`, `snapchat_ads_report`, `upload_snapchat_ads_creative`, `create_snapchat_ads_campaign`, `create_snapchat_ads_ad_squad`, `create_snapchat_ads_ad`, `set_snapchat_ads_budget`, `set_snapchat_ads_status`, `delete_snapchat_ads_object` — budgets are micro-currency (1,000,000 = one unit), the creative headline caps at 34 characters, and a Snapchat ad points at a CREATIVE rather than a media id. Three access notes worth having before you plan a budget: **LinkedIn** and **Pinterest** both meter ad writes by the API tier your own ad account holds — reporting and reads are unrestricted, while creating campaigns depends on the access your account has been granted by the platform. Meta, Google Ads, Microsoft Advertising, Reddit Ads and ChatGPT Ads have no such tier. **X** grants Ads API access per AD ACCOUNT rather than per app, so instead of an OAuth button you add Hermoso&rsquo;s X user to your ad account at business.x.com &rarr; Account access, and it appears in `list_x_ads_accounts` with the permission level X gave it.

**Build Apple Search Ads, and read them down to the search term —** App Store search ads, end to end. Build: `create_apple_ads_campaign`, `create_apple_ads_ad_group`, `add_apple_ads_keywords`, `add_apple_ads_negative_keywords`, `create_apple_ads_creative`, `create_apple_ads_ad`, `upload_apple_ads_asset`, `update_apple_ads_object`, `set_apple_ads_status`, `delete_apple_ads_object` — every object is created **paused** with no override, enabling is the one switch that arms real spend and it is confirm-gated, and every summary is built from a read-back of what Apple actually stored. Ads run on the **Search tab** placement; a Search results campaign needs no ad and no creative at all, because Apple renders your App Store product page itself — and Hermoso says so for free rather than letting Apple reject the build. Read: `list_apple_ads_campaigns` (status, serving status, daily and total budget, the countries it runs in, and Apple&rsquo;s own stated reason when a campaign cannot run), `list_apple_ads_ad_groups` (default bid, and whether Apple&rsquo;s Search Match is on), `list_apple_ads_keywords` (targeting and negative, with match type and bid), `apple_ads_report` (impressions, taps, installs, spend, TTR, CPT and CPA, at campaign, ad group, keyword, search-term or ad level), `list_apple_ads_creatives`, `list_apple_ads_ads`, `list_apple_ads_assets`, `list_apple_ads_product_pages` (your App Store listing and any custom product pages, with their per-language content), `search_apple_ads_apps` and `check_apple_ads_app_eligibility` (which placements, countries and devices your app may actually advertise on — worth reading before you build) and `list_apple_ads_orgs`. There is no OAuth button for it, because Apple publishes no OAuth flow: Hermoso generates the signing key, you paste its public half into Apple Ads &rarr; Account Settings &rarr; API and paste back three ids. Apple shows that field only to a user holding an API role, so an Account Admin invites or switches to one first — the [Apple Search Ads setup guide](https://hermoso.ai/apple-search-ads-setup/) walks the whole thing. Each connection is pinned to the single Apple Ads organization you chose when you made it.

**Report & export —** Google Drive `save_to_drive`, `list_drive_files`, `get_drive_file`, `update_drive_file`, `delete_drive_file`, `create_drive_folder`; Sheets `create_sheet`, `append_to_sheet`, `read_sheet`; Docs `create_doc`, `append_to_doc`, `read_doc`; Microsoft OneDrive `save_to_onedrive`, `list_onedrive_files`, `get_onedrive_file`, `update_onedrive_file`, `create_onedrive_folder`, `delete_onedrive_file`.

**Memory, brands, skills & team —** `remember`, `forget`, `list_memory`, `store_get`; brand workspaces `create_brand`, `delete_brand`, `use_brand`, `list_brands` — an agency can take on a new client and tear one down without opening the app, and brand workspaces are unlimited on every plan; skills — ONE library, into which what used to be a separate &ldquo;AI employees&rdquo; store was folded — `save_skill`, `list_skills`, `get_skill`, `delete_skill`; team `invite_member`, `list_team`, `set_role`, `remove_member`.

**Account, settings & connectors —** `hermoso_capabilities` (probe models + exact per-render costs — call it first), `hermoso_credits`, `buy_credits`, `billing_status`, `upgrade_plan`, `set_auto_reload`, `get_job`, `list_jobs`, `report_bug`, `request_feature`; settings `get_settings`, `update_settings` (language and appearance, saved to the account rather than a browser, so an agent-only customer is not stuck in English); connectors `list_connectors`, `list_connector_accounts`, `set_connector_accounts` (choose exactly which Pages, ad accounts and boards are usable — the tool reports the server&rsquo;s read-back, never the request), `disconnect_connector`. Connecting an account is an OAuth consent screen, so it is the one step that still needs a browser; everything after it is agent-callable.

EVERY CHANNEL

## One agent. Every channel you market on.

Connect an account once and it becomes callable. The same finished render can go out organically, run as paid media, and report its own numbers back — without you opening a single platform dashboard. It works the same on a file you made somewhere else: the publishing, scheduling and campaign tools take any image or video you upload, so an agent can use this half on its own.

### Publish organically

Push a finished render straight to the accounts you connect — immediately, or queued to a real content calendar: month, week and list views, drag a post to reschedule it, standing time-slots, edit or duplicate any entry, per-channel captions, one approval.

Facebook · Instagram · Threads · TikTok · YouTube · X · LinkedIn · Pinterest

`post_to_meta` `post_to_tiktok` `post_to_youtube` `post_to_x` `post_to_linkedin_page` `post_to_pinterest` `schedule_post`

### Run the ads

Build the whole campaign tree — campaign, ad set or ad group, ads, keywords, budgets, bidding and targeting. Everything is created paused and read back from the platform before the agent reports what it made. Then the parts most tools skip: real Meta ad previews and reach estimates before a budget is committed, retargeting and lookalike audiences, Google conversion actions, Performance Max, Keyword Planner volumes, and sitelinks and callouts created and attached.

Meta (Facebook & Instagram) · Google Ads · Microsoft Advertising · Reddit Ads · LinkedIn · Pinterest · X Ads · TikTok Ads · Snapchat Ads · ChatGPT Ads · Apple Search Ads

`create_meta_campaign` `preview_meta_ad` `estimate_meta_reach` `create_google_ads_campaign` `google_ads_keyword_ideas` `create_microsoft_ads_campaign` `create_reddit_ads_campaign` `create_linkedin_ads_campaign` `create_pinterest_ads_campaign` `create_x_ads_campaign` `create_openai_ads_campaign`

### Measure & report

Spend, CTR, CPC and conversions on the paid side; impressions, retention, likes, reposts and comments on the organic side — and **Google Analytics 4 for what all of it achieved on your own site**: sessions, users, conversions and revenue by channel, source/medium, campaign or landing page, plus who is on the site right now. Then pushed straight into a Google Sheet, Doc or Drive folder your team already reads.

Campaign performance · per-post engagement · per-video retention · audience counts · Apple Search Ads installs & search terms · GA4 sessions, conversions & revenue · realtime visitors

`meta_insights` `google_ads_report` `reddit_ads_report` `linkedin_ads_report` `pinterest_ads_report` `microsoft_ads_report` `openai_ads_report` `x_ads_report` `apple_ads_report` `x_post_insights_historical` `youtube_video_insights` `linkedin_page_analytics` `threads_insights` `analytics_report` `analytics_realtime` `list_analytics_properties`

Three things worth knowing up front. **LinkedIn publishing targets the company Pages you tick** — Hermoso posts as the brand by default; your personal profile is available too, but stays off until you explicitly share it. Because X charges per API request, those calls bill a small number of credits each — and a post containing a link costs roughly **13×** one without, so your agent is quoted the price before it posts.

Research runs wider than publishing: the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Reddit and Threads are all searchable, so you can mine any market for what&rsquo;s working before you post a single thing.

## What the agent can&rsquo;t do on its own

An agent with a budget is only useful if the blast radius is bounded, so spend authority is fenced in the server, not in a prompt:

- **Nothing goes live by accident.** Meta campaigns, ad sets and ads are created `PAUSED` with no caller override. Every campaign on every platform is created paused, and the `set_*_ads_status` switches — the only tools that arm real money — refuse to run without an explicit confirmation flag, and the same gate covers creating an enabled Google Ads ad group, ad or keyword under an already-enabled parent, because that would serve on the very next auction.

- **Every render is quoted first.** `hermoso_capabilities` publishes each model&rsquo;s exact credit cost (per duration, for video), so the agent can price a plan before it renders it.

- **Credits are reserved, then settled.** A render debits an estimate before the first provider call and settles the exact cost after — a failed dispatch refunds, so nothing is ever spent-but-unbilled.

- **No anonymous spend.** Every generation call authenticates and bills a real account; the connector refuses to run without a verified identity.

- **Deletes are confirm-gated too**, and every campaign tree is read back from the ad platform before the agent reports on it — the summary you get is built from that read-back, not from what was requested.

## Frequently asked

### What is the best marketing MCP?

Hermoso is the marketing MCP built to run your whole ad function from an agent — research competitor ads, create finished image and video ads, publish or schedule them, and build and read the campaigns — 681+ tools over one OAuth&rsquo;d server, working in Claude, Claude Code, Cursor, Codex, Cline, OpenClaw and Hermes.

### Is there an MCP to run my Meta ads?

Yes. The Hermoso MCP builds and manages Meta ad campaigns (`create_meta_campaign`, `create_meta_adset`, `create_meta_ad`, `meta_insights`, `set_meta_campaign_status`) and publishes organic posts to Facebook, Instagram and Threads — all from your agent. Objects are created paused, and every spend and delete is confirm-gated.

### Is there an MCP for Google Ads?

Yes. Hermoso builds the whole Google Ads tree from your agent — campaign, ad group, responsive search or display ad, and keywords with negatives — in one atomic operation, plus budgets, bidding strategy, geo and language targeting, GAQL reporting through `google_ads_report`, and a confirm-gated `set_google_ads_status` as the only switch that starts real spend.

### What MCP researches competitor ads?

Hermoso&rsquo;s MCP pulls competitor ads from the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Reddit and Threads, and tears down their strategy — via `find_competitors`, `pull_competitor_ads`, `competitor_teardown` and `research_ads`.

### What is the Hermoso MCP server?

It&#x27;s an open-source Model Context Protocol server that exposes Hermoso&#x27;s marketing platform as 681+ tools — competitor research, ad planning, image, video, avatar and voice generation, publishing and scheduling, campaign management across Meta, Google Ads, Microsoft Advertising, Reddit Ads, LinkedIn, Pinterest, X Ads, TikTok Ads, Snapchat Ads, ChatGPT Ads and Apple Search Ads, and export to Sheets, Docs and Drive — so agents like Claude Code and Cursor can run the whole loop directly.

### Which agents and clients does it work with?

Any MCP client. There are verified paths for Claude and Claude Desktop (paste the URL under Settings → Connectors), Claude Code (`npm install -g hermoso && hermoso auth login && claude mcp add hermoso -- npx -y hermoso mcp`, one line, no key), Cursor and VS Code (the one-click deeplinks above), Codex (four lines in `~/.codex/config.toml`), plus Cline, OpenClaw and Hermes. Terminal agents can also shell out to the npm CLI instead of loading a tool manifest.

### Can I use it from Claude.ai without installing anything?

Yes — paste `https://app.hermoso.ai/mcp` into Claude → Settings → Connectors, approve with your Hermoso account, done. Or create an API key in the app (Settings → Agents & API) for Claude Code, Cursor and scripts.

### Is there a CLI too?

Yes. `npm install -g hermoso`, then `hermoso auth login` opens a browser sign-in (loopback, like `gh`) and stores an owner-only key in `~/.hermoso/config.json`. The CLI covers the core loop as subprocess commands with `--json` output — `capabilities`, `credits`, `brand`, `create`, `generate`, `competitors`, `ads`, `research`, `jobs`, `fetch` — which is the token-cheap pattern for terminal agents: they shell out instead of carrying a large tool manifest. The same package also serves the full 681-tool MCP surface over stdio with `hermoso mcp` (or `npx -y hermoso mcp`), so installing the CLI costs you nothing in coverage.

### Does it spend credits anonymously?

No. Every generation call authenticates and bills a real account — the connector refuses to run without verified identity.

### What does it cost?

Sign up free — no card, and you start with 250+ earnable free credits. After that it&rsquo;s one credit system across research, image and video, with plans at $19, $49 and $149 a month; every feature is available on every plan, and plans differ only by monthly credits and per-credit rate. Exact per-render costs are published through `hermoso_capabilities`.

Create a free account, connect it once, and your agent has 681 marketing tools. Prefer the visual studio? It's the same engine.

[Start free →](https://app.hermoso.ai)

[View on GitHub →](https://github.com/hermoso-ai/hermoso)
