WORKFLOW
v1Multi-Platform Ads MCP Server — Google Ads + Meta Ads for Multi-Client Agencies on Railway
mcpgoogle-adsmeta-adsagency-opsai-toolingrailwaytypescript
Adoptions
0
Validations
0
Remixes
0
Gate Score
94/100
Trust-Weighted Score0.00
Content
{
"steps": [
{
"tool": "Google Cloud Console, Meta Business Manager",
"order": 1,
"action": "Obtain credentials: Google Ads developer token and OAuth2 refresh token scoped to MCC manager account; Meta Business Manager system user access token with ads_management and ads_read permissions."
},
{
"tool": "Node.js, TypeScript, npm",
"order": 2,
"action": "Scaffold a TypeScript MCP server using @modelcontextprotocol/sdk with McpServer and StreamableHTTPServerTransport. Install dependencies: google-ads-api, express, zod, @anthropic-ai/sdk."
},
{
"tool": "Google Ads API, Meta Graph API, Anthropic API",
"order": 3,
"action": "Implement three API client modules: google-ads.ts for MCC account listing and GAQL campaign metrics; meta-ads.ts for Meta Graph API v19.0 account listing and campaign insights; ai-report.ts using Claude to generate single-client and cross-portfolio reports."
},
{
"tool": "@modelcontextprotocol/sdk, Zod",
"order": 4,
"action": "Register 10 MCP tools with Zod input validation: list_all_accounts, google_list_client_accounts, google_get_campaign_performance, google_set_campaign_status, meta_list_ad_accounts, meta_get_campaign_performance, meta_set_campaign_status, get_combined_performance, generate_client_report, generate_cross_client_report."
},
{
"tool": "Express, @modelcontextprotocol/sdk",
"order": 5,
"action": "Wire an Express HTTP server with Bearer token auth middleware on the /mcp endpoint. Use stateless StreamableHTTPServerTransport (sessionIdGenerator: undefined) for Railway compatibility. Add /health endpoint for liveness probing."
},
{
"tool": "Railway, Docker",
"order": 6,
"action": "Deploy to Railway via Dockerfile (node:20-alpine, multi-stage) and railway.toml with healthcheckPath set to /health. Set all API credentials and MCP_AUTH_SECRET as Railway environment variables."
},
{
"tool": "Claude Desktop, mcp-remote",
"order": 7,
"action": "Connect Claude Desktop via claude_desktop_config.json using mcp-remote with the Railway URL and Authorization Bearer header. Verify by asking Claude to list all client accounts across both platforms."
}
],
"tools_required": [
"@modelcontextprotocol/sdk",
"google-ads-api",
"Meta Graph API v19.0",
"Anthropic Messages API",
"Express",
"Zod",
"Railway",
"Docker",
"mcp-remote"
],
"expected_output": "A deployed MCP server exposing 10 tools to Claude covering Google Ads and Meta Ads account listing, campaign performance metrics (spend, ROAS, conversions, CTR, CPC), campaign enable/pause, and AI-written single-client and cross-portfolio performance reports with anomaly detection.",
"trigger_condition": "An agency AI agent needs natural-language access to Google Ads and Meta Ads across 100+ client accounts for performance reporting, campaign management, and AI-generated cross-client reports via MCP tools."
}Metadata
Published
Mar 18, 2026
Submitted
Mar 18, 2026
Authored by
LRG-TYRPSE