Ads Lighthouse MCP Server
Hosted MCP server for monitoring paid ads on brand searches, reviewing advertisers and affiliate findings, and accessing saved reports through OAuth 2.1.
Hosted MCP Server
npx add-mcp 'https://adslighthouse.com/api/v1/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Ads Lighthouse MCP server
Server URL
https://adslighthouse.com/api/v1/mcp
Streamable HTTP. Sign in with your Ads Lighthouse account (OAuth 2.1 with PKCE). On Scale and above you can also send an API key as a bearer token.
The MCP server is included in every plan, including trials.
What it is
The Model Context Protocol (MCP) is an open standard that lets AI assistants call tools. Our hosted server gives an assistant the same data as the API: projects, keywords, saved checks with their ads, advertisers, affiliate findings, alerts and usage.
Try questions such as: Who advertised on our brand terms in the US last week? Which advertisers use our affiliate IDs? Did anything change on mobile since Monday?
Connect your assistant
Claude
- In Claude, open Settings > Connectors and choose Add custom connector.
- Paste the server URL and add it.
- Choose Connect, sign in to Ads Lighthouse and approve access for your account.
ChatGPT
- In ChatGPT, turn on developer mode in Settings > Apps & Connectors > Advanced settings.
- Create a connector with the server URL and choose OAuth as the authentication.
- Sign in to Ads Lighthouse and approve access. Menu names can change; follow ChatGPT's help if they differ.
Claude Code
- Add the server from your terminal, then run /mcp in Claude Code and choose Authenticate.
Claude Code
claude mcp add --transport http ads-lighthouse https://adslighthouse.com/api/v1/mcp
VS Code and GitHub Copilot
- Add the server to.vscode/mcp.json in your workspace, or to your user configuration.
- Start it from the file and sign in when VS Code asks.
VS Code and GitHub Copilot
{
"servers": {
"ads-lighthouse": {
"type": "http",
"url": "https://adslighthouse.com/api/v1/mcp"
}
}
}
Gemini CLI
- Add the server to ~/.gemini/settings.json, then run /mcp auth ads-lighthouse to sign in.
Gemini CLI
{
"mcpServers": {
"ads-lighthouse": {
"httpUrl": "https://adslighthouse.com/api/v1/mcp"
}
}
}
Cursor
- Add the server to ~/.cursor/mcp.json, or to.cursor/mcp.json in a project.
- In Cursor's MCP settings, choose Connect next to ads-lighthouse, sign in to Ads Lighthouse and approve access for your account. This works on every plan.
Cursor
{
"mcpServers": {
"ads-lighthouse": {
"url": "https://adslighthouse.com/api/v1/mcp"
}
}
}
Use an API key instead of signing in
On Scale plans and above, any client that can send headers can use an API key instead: send Authorization: Bearer als_your_key with every request. A key acts for the whole account; create a read-only key unless the assistant needs to make changes. On other plans, connect by signing in.
Tools
Every tool that takes project_id accepts the project id, the brand domain or the exact project or brand name. Tools that change data need write access, and the assistant should ask you before using them.
| Tool | What it does | Access |
|---|---|---|
get_account | Plan, monthly allowances, usage and rate limit | Read |
list_projects | Projects in the account | Read |
get_project_details | One project's configuration and data coverage | Read |
create_project | Create a project and start its first checks | Write, uses checks |
list_keywords | Monitored keywords with saved checks and ads in a window | Read |
add_keywords | Add keywords to a project | Write |
remove_keyword | Stop monitoring one keyword | Write |
list_observations | Saved checks with the paid ads they found | Read |
list_advertisers | Advertiser domains with visibility and signals | Read |
list_affiliate_findings | Your affiliate IDs seen behind ads that use your brand | Read |
list_alert_events | Alerts fired for the account | Read |
run_realtime_check | Start an on-demand check of a project's keywords | Write, uses checks |
get_check_status | Progress of an on-demand check | Read |
get_summary | Headline numbers for a project and window | Read |
get_timeseries | Checks, ads and advertisers by local day, week or month | Read |
get_advertiser | One advertiser's metrics, category and saved ads | Read |
list_competitors | Other advertisers ranked by ad occurrences, with your categories | Read |
set_advertiser_classification | Save your team's category for an advertiser domain | Write |
get_keyword_report | One keyword's saved checks, ads and advertisers in a window | Read |
list_keyword_ads | Advertisers or distinct ads seen for one keyword | Read |
list_affiliate_ids | Your affiliate IDs seen in saved ad URLs | Read |
set_affiliate_case_status | Set the review status of a non-compliant affiliate ID | Write |
list_shopping_products | Sponsored product listings seen on Google Shopping captures | Read |
export_paid_results | The rows of the Paid results CSV export, as JSON | Read |
export_paid_results_by_keyword | The rows of the Paid results By keyword view, as JSON | Read |
export_affiliate_cases | The rows of the Non-compliant affiliates CSV export, as JSON | Read |
get_advertiser_history | When and where one advertiser appeared, with the observation schedule | Read |
get_advertiser_heatmap | Presence by local hour and weekday | Read |
list_ad_copy_versions | One advertiser's distinct ad copy, newest first | Read |
list_ad_copy_changes | Recent ad copy changes across advertisers | Read |
update_project | Change a project's monitoring plan, brand or affiliate settings | Write |
delete_project | Permanently delete a project and its saved data | Write |
remove_keywords | Stop monitoring several keywords | Write |
preview_check_demand | Forecast the monthly checks and allowance for a proposed change | Read |
get_monitoring_options | Markets, search engines, devices and schedules you can configure | Read |
search_locations | Find cities and regions available for monitoring in a market | Read |
list_check_activity | A project's recent background activity and queued searches | Read |
get_time_zone | Your personal time zone preference | Read |
update_time_zone | Change your personal time zone preference | Write |
get_theme | Your personal appearance preference | Read |
update_theme | Change your personal appearance preference | Write |
list_alert_rules | Alert rules configured in the account | Read |
get_alert_rule | One alert rule | Read |
create_alert_rule | Create an alert rule (email, Slack or webhook) | Write |
update_alert_rule | Enable, disable or change an alert rule | Write |
delete_alert_rule | Delete an alert rule and its alert history | Write |
send_test_alert | Queue a synthetic alert through a rule's channel | Write |
rotate_webhook_secret | Replace a webhook rule's signing secret | Write |
get_alert_event | One alert with its delivery record | Read |
list_team | Members, roles and open invitations | Read |
invite_team_member | Email an invitation to join the account | Write, uses checks |
resend_invitation | Send an open invitation again with a new link | Write, uses checks |
cancel_invitation | Revoke an open invitation | Write |
change_member_role | Make a member an admin or an admin a member | Write |
remove_team_member | Remove a person from the account | Write |
list_accounts | The account this credential can use | Read |
get_account_overview | Plan limits, subscription dates, meters and forecast | Read |
get_email_preferences | Your product email and newsletter preferences | Read |
update_email_preferences | Turn product emails or the newsletter on or off | Write |
list_google_connections | Your Google Ads and Search Console connections in a project | Read |
list_google_accounts | Google Ads customers or Search Console sites a connection can read | Read |
run_google_ads_report | Keyword or search term performance from Google Ads | Read |
run_search_console_report | Search Console clicks, impressions, CTR and position | Read |
trace_redirects | Queue a server-side trace of a saved ad destination | Write, uses checks |
get_redirect_chain | One traced redirect chain | Read |
list_redirect_chains | Traced redirect chains of a project | Read |
list_policy_rules | A project's policy rules | Read |
get_policy_rule | One policy rule | Read |
create_policy_rule | Declare a policy rule for a project | Write |
update_policy_rule | Rename, pause, reconfigure or rescope a policy rule | Write |
delete_policy_rule | Delete a policy rule and keep its cases | Write |
preview_policy_rule | What a draft rule would match, without saving it | Read |
evaluate_policy_rules | Check saved ads against the enabled rules and record cases | Write |
list_policy_cases | Cases opened by policy rules | Read |
get_policy_case | One case with its timeline | Read |
list_policy_case_evidence | The saved ads that matched a case's rule | Read |
update_policy_case | Change a case's status or owner | Write |
add_policy_case_note | Add a note to a case's timeline | Write |
create_report | Request a project PDF report for a window and filters | Write |
list_reports | A project's PDF reports, newest first | Read |
get_report_status | Status of one PDF report | Read |
get_report_download_link | A short-lived link to download a ready report | Read |
Security
- You choose the account and whether the assistant may make changes when you approve the connection. Disconnect any app in Settings > API and MCP.
- Access tokens expire after one hour and refresh tokens rotate on every use. A reused refresh token ends the connection.
- The assistant acts as you: if you leave the account, or the account no longer has an active plan or trial, its access ends too.
- Creating a project and starting an on-demand check use your plan's allowance and need an idempotency key, so a retried call never runs the checks twice.
- Assistants can misread data. Check important findings in the app, where each observation shows its full context.