diff --git a/.github/release-notes/v0.4.0.md b/.github/release-notes/v0.4.0.md new file mode 100644 index 0000000..715e1ec --- /dev/null +++ b/.github/release-notes/v0.4.0.md @@ -0,0 +1,20 @@ +Adwarp can now build LinkedIn matched audiences straight from HubSpot, the same way it already does from Salesforce. + +### HubSpot audiences + +- New MCP tool `audience_from_hubspot` and CLI command `adwarp audience from-hubspot`. Point it at a HubSpot list or a set of property filters, pick contacts or companies, and it uploads the result as a LinkedIn matched audience. +- It reads HubSpot with a private app token you create in your own HubSpot account, with read-only scopes for contacts, companies and lists. Put the token in `~/.adwarp/hubspot.json` or `ADWARP_HUBSPOT_TOKEN`. +- Contacts go through the same cleaning as CSV uploads, and only SHA-256 hashes of the emails leave your machine. `--dry-run` shows the counts and a masked sample, and uploads nothing. +- It runs locally only. The hosted endpoint doesn't register it. +- Setup and examples: https://adwarp.dev/docs/hubspot + +### Docs and the hosted endpoint + +- The docs now live at https://adwarp.dev/docs, with new setup pages for Claude Code, Claude Desktop, Codex, Cursor and the CLI, and a LinkedIn Ads overview. +- `docs/tools.json` now marks the tools that need your machine (CSV and Salesforce uploads, HubSpot audiences and the change journal) as not hosted. +- The hosted app at mcp.adwarp.dev is now just the MCP endpoint. Its old pages redirect to adwarp.dev, and `https://mcp.adwarp.dev/api/mcp` works as before. + +### Other changes + +- Company list uploads now check LinkedIn's 300,000 row limit, as contact lists already did. +- `docs/tools.json` lists 37 tools: 28 for LinkedIn Ads and 9 for Google Ads. diff --git a/packages/adwarp/package.json b/packages/adwarp/package.json index c55980c..ec48903 100644 --- a/packages/adwarp/package.json +++ b/packages/adwarp/package.json @@ -1,6 +1,6 @@ { "name": "adwarp", - "version": "0.3.0", + "version": "0.4.0", "description": "Open-source ad agent for LinkedIn Ads and Google Ads. Drafts campaigns, audiences and reports from Claude Code, Cursor, Codex or other MCP clients that can run a local server.", "keywords": [ "mcp", diff --git a/packages/shared/src/version.ts b/packages/shared/src/version.ts index 1d769b5..cec1adc 100644 --- a/packages/shared/src/version.ts +++ b/packages/shared/src/version.ts @@ -3,4 +3,4 @@ * server version. Must match packages/adwarp/package.json, which the npm * package build checks. */ -export const VERSION = "0.3.0"; +export const VERSION = "0.4.0"; diff --git a/server.json b/server.json index b66eb9e..3cb4c7e 100644 --- a/server.json +++ b/server.json @@ -9,12 +9,12 @@ "source": "github", "id": "1269596073" }, - "version": "0.3.0", + "version": "0.4.0", "packages": [ { "registryType": "npm", "identifier": "adwarp", - "version": "0.3.0", + "version": "0.4.0", "runtimeHint": "npx", "transport": { "type": "stdio"