Add Sprites to Cursor
Available on Any Cursor plan that allows MCP servers, on desktop and on Cursor web agents. You need a Sprites account with LinkedIn Ads already connected — the connector acts on that connection, so Cursor never handles a LinkedIn credential.
Write the config
Put the entry in ~/.cursor/mcp.json to have Sprites available in every project, or in .cursor/mcp.json inside one repo to scope it there.
~/.cursor/mcp.json{ "mcpServers": { "sprites": { "url": "https://mcp.sprites.ai/mcp" } } }Or add it from the UI
Cursor lists MCP servers under Customize in the sidebar; adding one there writes the same file.
CursorCustomizeMCPNew MCP serverSign in
Cursor finds the Sprites authorization server from the endpoint's protected-resource metadata, registers itself, and opens a browser for the consent screen. Desktop completes on http://localhost:8787/callback and web agents on cursor.com; both are pre-registered, so there is nothing to allowlist.
Spriteswants access on behalf of Cursor- Read your connected ad accounts and site data
- Draft campaigns, creatives and pages for your approval
- Apply only the changes you approve
AllowCancelKeep it in the repo, not in your dotfiles
A project-scoped .cursor/mcp.json is worth committing: every teammate who opens the repo gets the same connector and signs in as themselves. The file holds a URL and nothing else — the token is per person and never touches the config.
Run the first prompt
Ask Cursor this. It routes to a Sprites door, which reads your LinkedIn Ads account and answers — no account to name, no confirmation to give first.
- With Sprites, what is our LinkedIn CPL by job function this quarter?
- Use Sprites to build an ABM campaign for Series B fintechs in the US, 200-1000 employees.
- Ask Sprites which LinkedIn audiences are saturated and should be rotated.
- Have Sprites draft 3 new sponsored-content intros for our best-performing lead-gen form.
- With Sprites, compare LinkedIn spend and leads this month against last month.
Open Cursor Settings → MCP and confirm sprites is listed as connected with its tool count.
What Cursor can do with LinkedIn Ads
The same doors, whichever client you are in. The campaign and the page it points at live in the same window: change the pricing copy, then have Sprites update the ads that quote it, without a second tool.
Cost per lead that names the segment
CPL by job function, seniority, company size and account, not one number for the whole account.
Build the ABM list in the chat
ICP criteria in, a matched company audience out, with the reach per tier stated before you spend.
Multi-thread the buying committee
Separate audiences for the champion, the economic buyer and the blocker, each with its own message.
Refresh sponsored content
New intros and creative drafted against what already converts, previewed in the feed.
Catch the quiet CPL drift
Frequency, audience saturation and the week the form fill rate started sliding.
Report without exporting
A period comparison your agent can read aloud, sourced from Campaign Manager rather than a slide.
How approvals work here
Cursor renders tool results as text, so a LinkedIn change comes back written out rather than as a card. Nothing is applied until you approve it, and the approval waits for you in Sprites — open it there and the same run continues.
What it reads
- Campaigns, campaign groups, creatives and audiences
- Spend, impressions, clicks, leads, CPL and form completion rate
- Demographic breakdowns: function, seniority, company, industry
- Matched-audience size and account coverage
What it can change
- Create campaigns, audiences, matched account lists and creatives
- Budgets, schedules, bids, targeting and status
- All of it gated behind an approval card
When it does not work in Cursor
Three things go wrong in this client specifically, and each has a one-line fix.
The Connect button does nothing and no request is made.
A known Cursor issue on some builds. Update Cursor, then remove and re-add the server; if it persists, restart Cursor with the config already in place so the connection is made at startup.
Cursor authenticates but every call comes back unauthorized.
The token was issued for a different address. Delete the server entry, restart Cursor, and re-add it with the exact endpoint above — every grant is bound to that one URL, so a variant of it will not be honoured.
The agent invents ad-platform tools instead of calling Sprites.
Name it: "use Sprites to…". Cursor ranks its own tools first, and a generic phrasing loses to the built-in search.
LinkedIn Ads and Cursor: questions
Which URL do I paste into Cursor?
https://mcp.sprites.ai/mcp. There is one endpoint and every client uses it — every OAuth grant is bound to exactly that address, so a variant of it will not be honoured.
Can Cursor change my LinkedIn Ads account without asking?
Cursor renders tool results as text, so a LinkedIn change comes back written out rather than as a card. Nothing is applied until you approve it, and the approval waits for you in Sprites — open it there and the same run continues.
Do I need a LinkedIn Ads API key or developer token?
No. LinkedIn Ads is connected once inside Sprites through LinkedIn Campaign Manager, and the connector acts on that connection. Cursor never sees a credential for it.
Why Cursor for LinkedIn Ads specifically?
The campaign and the page it points at live in the same window: change the pricing copy, then have Sprites update the ads that quote it, without a second tool.
Does it work with LinkedIn lead-gen forms?
Yes. Form completion rate and cost per lead are read per campaign and per segment, and new lead-gen campaigns are built with the form attached.
Can it upload a target account list?
It builds one. Give it the ICP criteria and it matches companies into a LinkedIn matched audience, showing the reach per tier before anything runs.
Keep going
The same Cursor connector reaches every other channel — nothing else to add.
LinkedIn Ads, from Cursor
Paste one URL, sign in once, and the next LinkedIn question you ask Cursor gets answered from the live account.