Add Sprites to GitHub Copilot
Available on Copilot in VS Code, and Copilot CLI. Any Copilot plan that includes agent mode. You need a Sprites account with your channels already connected — the connector acts on that connection, so GitHub Copilot never handles a platform credential.
Open the MCP configuration
Run MCP: Add Server from the Command Palette and choose Workspace or Global. Workspace writes .vscode/mcp.json, which is worth committing so the team shares the same connector; Global keeps it to you across every project.
VS CodeCommand PaletteMCP: Add ServerWorkspaceAdd Sprites as an HTTP server
The top-level key is servers, not mcpServers, and a remote endpoint needs an explicit type of http. This is the shape VS Code and Copilot share.
.vscode/mcp.json{ "servers": { "sprites": { "type": "http", "url": "https://mcp.sprites.ai/mcp" } } }Authenticate
VS Code shows an Auth action above the server entry once the file is saved. Run it, sign in to Sprites in the browser window that opens, and approve the scopes.
Spriteswants access on behalf of Copilot- Read your connected ad accounts and site data
- Draft campaigns, creatives and pages for your approval
- Apply only the changes you approve
AllowCancelSwitch Copilot Chat to agent mode
MCP tools are only offered to the agent. Pick Agent from the mode dropdown in Copilot Chat, then open the tool picker and confirm Sprites is listed.
Agent modeCopilot Chat → mode dropdown
Which GitHub Copilot surface you are on
Only the surfaces below are documented here. Where we have not verified a path, the page says so rather than implying the setup is the same everywhere.
VS CodeVerified
MCP: Add Server from the Command Palette, writing .vscode/mcp.json or the user config. Agent mode required.
GitHub Copilot CLINot verified
Copilot CLI has its own MCP configuration. We have not verified the Sprites flow there yet.
What GitHub Copilot can reach
All ten channels run through the one connector. Rows with a guide go deeper on that pairing; the rest are covered on the channel's own page.
| Channel | What Copilot does with it | Guide |
|---|---|---|
| Google Ads | Campaign structure available to a lint rule, so a naming convention can be enforced rather than requested. | Set up → |
| Meta | Creative fatigue per ad, audience overlap, new hooks previewed in the real placement. | Set up → |
| Cost per lead by job function, ABM account lists, sponsored content that converts. | Set up → | |
| TikTok | Hook-level hold rates, the next creative batch, and rotation before the CPA moves. | Set up → |
| Performance per subreddit, community-native copy, and the tourist traffic to cut. | Set up → | |
| GA4 | The event and the recorded result in the same window, which is where tracking bugs are cheapest to catch. | Set up → |
| SEO | Generated metadata checked against what Search Console reports is actually indexed. | Set up → |
| AEO | Who gets cited by ChatGPT and Perplexity for your prompts, and the pages that change it. | Set up → |
| Shopify | Profit per product after ad cost, collection pages, and catalogue-true creative. | Set up → |
| GBP | Performance per location, the listings missing fields, and posts that keep the map pack. | Set up → |
Marketing workflows worth doing in GitHub Copilot
Marketing data inside the editor where the tracking code lives, so a conversion event can be checked against what GA4 actually recorded before the pull request is opened.
Marketing data QA in pull requests
Check a change against what the account actually reports before it merges, not after it ships.
Conversion-event implementation
Write the event, fire it, and confirm GA4 received what you meant in one loop.
Campaign naming linting
A rule that reads live campaign names and fails when one breaks the convention reporting depends on.
SEO metadata validation
Titles and descriptions the templates generate, checked against what Search Console shows is being served.
Dashboard maintenance
Keep an internal reporting view honest by developing it against the real account rather than a fixture.
Permissions, approvals and authentication
You sign in with OAuth and the connector acts on your workspace. No API keys in a config file, no shared service account, and revoking the grant kills the very next call.
| Action | When it happens | What that covers |
|---|---|---|
| Read an account | On request | Spend, performance, search terms, rankings, catalogue |
| Draft a change | On request | Campaigns, creative, budgets, pages and posts |
| Apply a change | Only on your approval | GitHub Copilot returns the change as text; the approval waits for you in Sprites |
| Spend money | Only on your approval | New campaigns start paused unless you say otherwise |
| Revoke access | Instantly | The next call after a revoke fails, not the one after that |
GitHub Copilot MCP questions
Why is the top-level key servers and not mcpServers?
That is the shape VS Code reads. mcpServers is what several other clients use, and VS Code ignores it — the config looks right and nothing appears.
Copilot is not using the tools.
Chat has to be in agent mode. Ask mode does not call MCP tools at all.
Is there a separate VS Code page?
No, on purpose. VS Code is the editor Copilot runs in and the setup is the same, so two pages would compete for one intent. If the two ever show genuinely different intent in Search Console, that changes.
Can it change my ad accounts on its own?
No. Reads happen on request; every write comes back as a change you approve first, and new campaigns start paused. Nothing is applied because a model decided it should be.
How do I share this with the team?
Add it to the Workspace rather than Globally and commit .vscode/mcp.json. Everyone gets the connector; everyone still signs in as themselves.
Point GitHub Copilot at your ad accounts
One URL, one sign-in, and the next question you ask GitHub Copilot about your marketing gets answered from the live account.