Perplexity is an answer engine: it searches the web and cites what it found. Its custom remote connectors take any MCP server by URL, so once Hermoso is added, the same thread that researched a market can pull the ads running in it, render the creative and publish it.
Hermoso is the marketing half: 850+ tools over one OAuth’d MCP endpoint covering competitor ad research, finished image and video ad generation across 90+ models, publishing and scheduling to ten social channels, and campaign management on Meta, Google Ads, Microsoft Advertising, Reddit Ads, LinkedIn, Pinterest, X Ads, TikTok Ads, Snapchat Ads, ChatGPT Ads and Apple Search Ads. One connection, and Perplexity has all of it.
Connect Hermoso to Perplexity
- Copy the connector URL.
https://app.hermoso.ai/mcp - Perplexity → Account settings → Connectors → + Custom connector → Remote. Name it Hermoso, paste the URL as the MCP Server URL, set Authentication to OAuth and Transport to Streamable HTTP, tick the acknowledgement and press Add.
- Click the Hermoso card to connect. Sign in with your Hermoso account on the consent page. The Client ID and Client Secret fields stay empty: Perplexity reads Hermoso’s OAuth endpoints from its discovery document and registers itself.
- Ask Perplexity for something. “Pull my three closest competitors’ longest-running ads and remix the best hook into a 9:16 video,” or “post this render to the channel.” The agent picks the tools; you approve the spend.
Custom connectors are on Perplexity’s paid plans. In an Enterprise organization, members can add their own only if an admin has switched on Allow members to add custom connectors, which is off by default, and an admin can instead add Hermoso once for everyone. The steps and field names are quoted from Perplexity’s help center article on custom remote connectors, read on 2026-09-23. Hermoso is not affiliated with or endorsed by Perplexity.
Every channel Perplexity can publish to
Each of these has its own page with that channel’s real caption cap, its real visibility options, what it refuses and why, and a worked example phrased for Perplexity.
| Channel | Carousel | Text limit |
|---|---|---|
| 2+ photos, our cap of 30 | 63,206 chars | |
| 2–10, images + video | 2,200 chars | |
| Threads | 2–20, images + video | 500 chars |
| TikTok | Up to 35 images | 2,200 / 4,000 chars |
| YouTube | Refused — the unit is a video | 100-char title |
| X | Refused — 4 media render as a grid | 280, or 25,000 on Premium |
| 2–20 images, company Page only | 3,000 chars | |
| 2–5 images (blocked on Trial) | 800-char description | |
| Bluesky | 2 to 4 images | 300 chars and 3,000 bytes |
| Telegram | 2 to 10, photos and video | 4,096, or 1,024 with media |
Every one of them queues through one schedule_post calendar with per-channel captions, and list_scheduled reports per-channel outcomes rather than a single green tick — “the job succeeded” and “the post went out” are different questions.
Two channels that are built but not offered
Being straight about this is worth more than a longer list. Two publishing surfaces exist in the codebase and are held back, each waiting on the platform rather than on us:
- Reddit: organic posting and post stats are built, but Reddit’s Responsible Builder Policy requires explicit written approval before an app may use the Data API, and that ticket has not been granted. The connector is held back rather than offered as an OAuth screen leading to a dead API. Reddit Ads is a different connection and it is live: the full campaign tree, forecasting, targeting search, pixels and lead forms.
- Google Business Profile —
post_to_google_businessis built, with events, offers and a real call-to-action choice, and so are the listing insights. Google allowlists the Business Profile API per project and the default quota is zero, so every call would 403 for every user. It stays gated until Google grants the project access.
A connector that would hand you a successful OAuth and a dead API is worse than one that is not offered yet, so neither is listed as available.
Three things to type once it is connected
- Research. “Who are my three closest competitors, and what are their longest-running Meta ads? Tell me which hook keeps repeating.” — walks
find_competitors→pull_competitor_ads→mine_angles. - Create. “Make me a 9:16 UGC video ad using that hook, with my real product photo and captions burned in.” — walks
get_brand→plan_ad→render_ad, and hands back a finished mp4 URL. - Ship. “Schedule it to Instagram and TikTok for Tuesday 9am, and build a paused Meta campaign around it targeting the US at $30 a day.” — walks
schedule_post→create_meta_campaign→create_meta_ad.
What Perplexity cannot do on its own
An agent with a budget is only useful if the blast radius is bounded, so the fence is in the server rather than in a prompt. Every ad campaign, ad set, ad group and ad is created paused, and the status switches that arm real money refuse to run without an explicit confirmation flag. Every render is quoted first — hermoso_capabilities publishes each model’s exact credit cost before anything spends — and credits are reserved before the first provider call and settled at the exact cost afterwards, so a failed dispatch refunds rather than leaving you billed for nothing. Deletes are confirm-gated too, and every campaign tree is read back from the ad platform before your agent tells you what it built.
One step is deliberately yours: linking each account, once. Most channels link through the platform’s own OAuth consent screen in a browser; Bluesky takes an app password and Telegram a bot token, pasted in Hermoso. Everything after that is a tool call.
Beyond publishing
Publishing is the last step, and it is the smallest one. The same connection gives Perplexity the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Reddit and Threads for research; 100+ image, video, voice and writing models on a single credit meter, with UGC avatars, dubbing, upscaling and native HTML ad formats; and the full campaign tree on eleven paid platforms. There are no per-vendor API keys to hold and no separate app to learn.
See the full tool list, or what a marketing MCP is.
Other clients: Claude · ChatGPT · Claude Code · Cursor · Codex · Cline · OpenClaw · Grok Bot · Hermes · Gemini CLI · Le Chat · any MCP client
Frequently asked questions
Can Perplexity post to social media?
Yes, once you connect Hermoso's MCP server. Perplexity can then publish to Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky and Telegram — and schedule to all ten from one queue with per-channel captions.
How do I add Hermoso to Perplexity?
Add https://app.hermoso.ai/mcp in Perplexity as a custom connector and approve it with your Hermoso account. There is no key to paste — the connector signs in with OAuth and mints its own.
Can Perplexity research my competitors' ads?
Yes. From Perplexity the Meta, Google and LinkedIn ad libraries are searchable alongside organic TikTok, Instagram, YouTube, Reddit and Threads — ranked by run length, because an ad still running after months is an ad that is paying for itself. It will also tear a competitor down and return a video's voiceover, on-screen text and beat list with timestamps.
Do I need a separate account to use Hermoso in Perplexity?
No — one Hermoso account, and Perplexity authenticates against it. The connector signs in with OAuth and mints its own key, so there is nothing to paste. The web studio at app.hermoso.ai is the same engine and the same credits.
Start free — 30 credits at signup and 250+ more to earn, and every feature on every plan. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free.
Start free → See pricing