Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/markifact/markifact-mcp/launch-google-searchgit clone --depth 1 https://github.com/markifact/markifact-mcpWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00052 | $0.01365 |
| Opus 5 | $0.00026 | $0.00682 |
| Sonnet 5 | $0.00010 | $0.00273 |
| Haiku 4.5 | $0.00005 | $0.00136 |
Grade A, and why
launch-google-search scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Goal
Stand up a production-ready Google Ads Search campaign in one workflow. Always start paused so the user reviews before spending.
Inputs to confirm with the user (batch these in one question)
- Account name (substring match) — required.
- Campaign objective (Leads / Sales / Website traffic) and conversion action to optimize for — required if Smart Bidding is requested.
- Daily budget — required.
- Bidding strategy —
MAXIMIZE_CONVERSIONS,TARGET_CPA,TARGET_ROAS,MAXIMIZE_CLICKS, orMANUAL_CPC. Default:MAXIMIZE_CLICKSif no conversion data exists yet, elseMAXIMIZE_CONVERSIONS. - Geo + language — required.
- Final URL — required for RSAs.
- Keyword themes (3–10 tightly-grouped concepts) — required.
- Brand name + 1-line offer — required for RSA generation.
If the user gave a brief in the slash argument, parse it first and only ask for what's missing.
Workflow
- Discover required ops once with
find_operations. Look for IDs containing:gads_select_accounts,gads_create_campaign,gads_create_ad_group,gads_create_responsive_search_ad,gads_add_keyword_to_ad_group,gads_create_sitelinks,gads_create_callouts,gads_create_structured_snippets,gads_add_negative_keywords_to_campaigns,gads_search_geo_targets. - Inspect each with
get_operation_inputsbefore first use — never guess Google Ads input shapes. - Resolve account:
gads_select_accountswith the user-given name as substring; if multiple match, ask user to disambiguate. - Resolve geo IDs:
gads_search_geo_targetsfor each location string the user provided. - Create campaign (PAUSED) → returns
campaign_id. Setadvertising_channel_type=SEARCH, the chosen bidding strategy, daily budget, geo + language targeting. - Create ad group under that
campaign_id→ returnsad_group_id. - Generate RSA assets following the rules below, then
gads_create_responsive_search_adwithad_group_idand the final URL. - Add keywords with
gads_add_keyword_to_ad_group. Default match types: phrase + exact for the same theme; avoid pure broad unless the user is on Smart Bidding with sufficient conversion data. - Add extensions in order: sitelinks → callouts → structured snippets. All optional — skip silently if the user didn't ask for them, but suggest it once at the end.
- Add account-level brand-protection negatives (competitor names if any) and obvious junk negatives (
free,jobs,careers,download,crack, etc. — adjust to vertical) viagads_add_negative_keywords_to_campaigns. - Confirm to user: campaign ID, ad group ID, ad strength, keyword count, link to review in Google Ads UI. Remind they're paused.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 74 lines · 52 tokens per session scan A 7774025cba0c
launch-google-search is a command published in the GitHub repository markifact/markifact-mcp (48 stars, last pushed 14d ago), licensed MIT. It adds 52 tokens to every session and 1,365 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
pricing-analysis
Run a comprehensive pricing analysis — assesses current pricing, analyzes competition, estimates willingness-to-pay, designs optimal pricing architecture, quantifies revenue impact, and builds an implementation roadmap.
growth-strategy
End-to-end growth strategy playbook — chains market research, competitive analysis, strategy frameworks, financial modeling, and deliverable creation into a complete growth strategy.
customer-analysis
Analyze customer segments, journeys, satisfaction drivers, or churn patterns.
market-entry
Develop a market entry strategy for a new market, geography, or segment.
competitor-profile
Build a detailed profile of a specific competitor.
market-scan
Run a quick market scan on an industry or market segment.