hermoso 0.1.232 → 0.1.233

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/mcp/tools.mjs +3 -3
  2. package/package.json +1 -1
package/mcp/tools.mjs CHANGED
@@ -5256,13 +5256,13 @@ function buildTools(rawServer, opts = {}, sink = null) {
5256
5256
  server.group('channel_admin');
5257
5257
  server.registerTool('youtube_channel', {
5258
5258
  title: 'Get the connected YouTube channel',
5259
- description: 'Read the brand’s connected YouTube channel — title + subscriber / view / video counts (for reporting). Needs a connected YouTube channel.',
5259
+ description: 'Read the brand’s connected YouTube channel — title + subscriber / view / video counts (for reporting), and whether CUSTOM THUMBNAILS are on (customThumbnails: enabled | needs_verification | unavailable | unknown). When they are not on, the reply carries YouTube’s own step-by-step to turn them on (a phone verification in YouTube Studio), so check this before promising a custom thumbnail. Needs a connected YouTube channel.',
5260
5260
  inputSchema: {},
5261
- outputSchema: { id: z.string().optional(), title: z.string().optional(), subscribers: z.string().optional(), views: z.string().optional(), videos: z.string().optional() },
5261
+ outputSchema: { id: z.string().optional(), title: z.string().optional(), subscribers: z.string().optional(), views: z.string().optional(), videos: z.string().optional(), customThumbnails: z.string().optional(), customThumbnailsNote: z.string().optional() },
5262
5262
  annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true },
5263
5263
  }, wrap(async () => {
5264
5264
  const d = await apiGet('/api/youtube/channel', {});
5265
- return ok(`${d.title} — ${d.subscribers} subscribers, ${d.videos} videos, ${d.views} total views.`, d);
5265
+ return ok(`${d.title} — ${d.subscribers} subscribers, ${d.videos} videos, ${d.views} total views.${d.customThumbnails && d.customThumbnails !== 'enabled' && d.customThumbnailsNote ? `\n${d.customThumbnailsNote}` : ''}`, d);
5266
5266
  }));
5267
5267
  // ── YOUTUBE: MEASURE + MANAGE (2026-07-30). We requested yt-analytics.readonly and youtube.force-ssl from day one
5268
5268
  // and shipped nothing that used them, so an agent could publish to YouTube and then neither measure nor manage it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermoso",
3
- "version": "0.1.232",
3
+ "version": "0.1.233",
4
4
  "mcpName": "io.github.hermoso-ai/hermoso",
5
5
  "description": "AI ad studio and marketing MCP server with 827 tools. Research the ads already running in any market, generate finished image, video and UGC avatar ads, publish and schedule them to your own channels, build and manage the ad campaigns behind them, and read what they achieved. AD PLATFORMS: Meta, Google Ads, TikTok Ads, LinkedIn Ads, Reddit Ads, X Ads, Pinterest Ads, Snapchat Ads, Microsoft Advertising, Apple Search Ads and ChatGPT Ads, plus product feeds in Google Merchant Center. PUBLISHING AND SCHEDULING: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky and Telegram. AD RESEARCH: the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Threads and Reddit. ANALYTICS: Google Analytics 4, Google Search Console and every connected platform's own post and campaign insights. Also brand onboarding, 50+ image and video generation models, ad scoring, competitor teardowns, Google Drive and OneDrive, a CLI and installable Claude skills.",
6
6
  "type": "module",