If you run a HubSpot site in more than one language, you already know the routine. Open the source post. Copy the content. Paste it into a translation tool. Clean up the HTML it mangles. Open the HubSpot editor. Create the language variant. Paste back. Fix the slug. Update the meta description. Find the JSON-LD schema buried in the head HTML and translate the strings without breaking the markup. Publish. Repeat for every page.
It works. It's also slow, error-prone, and spread across too many browser tabs.
There's a better way — and it doesn't require replacing HubSpot or adding another SaaS subscription.
MCP (Model Context Protocol) is an open standard that lets AI assistants like Claude connect directly to external systems — APIs, databases, local files — and operate them as tools during a conversation. Instead of you shuttling data between Claude and your other tools, Claude calls the tools itself. One conversation. One place.
For HubSpot, that means Claude can read a blog post, translate it, create the language variant, and write the translated content back — all without you touching the HubSpot editor for the parts that don't need it.
We built two components that run together as part of the open-source RAAS Impact HubSpot theme (actually, that's the repo we use for this same site!):
A local MCP server (hubspot-blog-mcp) — a small Node.js process that runs on your machine and exposes 16 HubSpot API operations as tools Claude can call directly. It covers blog posts (list, read, update, create language variants), CMS pages (list, read, update metadata, create variants, fetch rendered HTML), and CRM products (get, search, batch operations). One dependency. Credentials stay in a local .env file — they never leave your machine and are never stored in Claude's memory.
A Claude Skill (hubspot-blog-manager) — a packaged set of instructions that tells Claude exactly how to use those tools, in the right order, safely. The skill enforces specific workflows: always fetch current content before editing, run a two-step confirmation before any write, handle JSON-LD schemas correctly, and apply your brand's tone of voice from a separate file that you control.
Plug the MCP server into Claude Desktop with two lines in the config file, drop your HubSpot Private App token into .env, and the whole setup is live.
Say you have a published English post and you need an Italian version. In a single conversation, Claude will:
name, description, headline) and leave keys, URLs, @type, and @context untouchedThe JSON-LD handling alone saves a disproportionate amount of time. Getting structured data into a translated page without corrupting it is the kind of fiddly task that breaks easily when done manually and is almost invisible until it causes a search console error three weeks later.
Blog posts are the straightforward case. CMS pages built with HubSpot's drag-and-drop editor are harder because the body content isn't accessible via the API — only the metadata is. The skill handles this with a split approach:
For CRM products, there's no native variant system in HubSpot, so the skill supports two strategies: update existing records in place, or create new records for a separate language catalogue. Bulk translation uses HubSpot's batch API — up to 100 products per call — and Claude presents a full original-vs-translated table before writing a single record.
Any tool that writes to a live published site needs to be trusted before it becomes useful. A single misfire — overwriting a post's body with a half-translated draft, or corrupting a slug — creates real cleanup work.
The double-confirmation protocol is the reason you can run this at speed without anxiety. Every write operation is previewed first: fields that will change, values they'll change to, fields that will stay untouched. You confirm once to say "yes, that looks right." Claude confirms once more before calling the API. Nothing is ever written silently.
This isn't just defensive design — it's what makes the workflow genuinely faster than doing it manually. Speed without guardrails isn't useful. Speed with guardrails you trust is.
content scope enabledhubspot-blog-mcp server and hubspot-blog-manager skill from the RAAS Impact HubSpot theme repositorySetup is around 15 minutes: clone the repo, run npm install inside the server folder, add your token and portal ID to .env, register the server in Claude Desktop's config file, and you're live.
The skill is built to be reusable across clients. Drop a tone-of-voice.md file into the skill folder for each brand and Claude applies it to all translated content automatically — same workflow, different voice.
If you manage multilingual HubSpot content and you've been living inside the manual tab-switching loop, this is worth the 15 minutes to set up.