Skip to main content
HireOtto exposes the following MCP tools to your AI assistant. You don’t call these directly — your AI assistant selects and invokes them based on your natural-language instructions. This reference documents each tool’s name, purpose, and parameters so you understand exactly what HireOtto can do.

Campaign tools

Returns a list of campaigns in your Google Ads account with their current status, daily budget, and bidding strategy.Parameters
ParameterTypeRequiredDescription
statusstringNoFilter by status: ENABLED, PAUSED, REMOVED. Defaults to all.
customer_idstringNoGoogle Ads account ID (10 digits). Uses default if not specified.
Example response
[
  {
    "id": "12345678",
    "name": "Summer Sale",
    "status": "ENABLED",
    "daily_budget_micros": 50000000,
    "bidding_strategy": "TARGET_CPA",
    "campaign_type": "SEARCH"
  }
]
Creates a new Google Ads campaign. Currently supports Search campaigns.Parameters
ParameterTypeRequiredDescription
namestringYesCampaign name
daily_budgetnumberYesDaily budget in your account currency
bidding_strategystringYesMANUAL_CPC, TARGET_CPA, TARGET_ROAS, MAXIMIZE_CONVERSIONS, MAXIMIZE_CLICKS
target_cpanumberNoTarget CPA amount (required when bidding_strategy is TARGET_CPA)
target_roasnumberNoTarget ROAS as a decimal, e.g. 4.0 for 400% (required for TARGET_ROAS)
geo_targetsarrayNoList of location names to target, e.g. ["United States", "Canada"]
start_datestringNoStart date in YYYY-MM-DD format. Defaults to today.
customer_idstringNoGoogle Ads account ID
Example response
{
  "id": "98765432",
  "name": "Summer Sale",
  "status": "ENABLED",
  "daily_budget_micros": 50000000
}
Updates settings on an existing campaign.Parameters
ParameterTypeRequiredDescription
campaign_idstringYesThe campaign ID to update
namestringNoNew campaign name
daily_budgetnumberNoNew daily budget in account currency
statusstringNoENABLED or PAUSED
bidding_strategystringNoNew bidding strategy
target_cpanumberNoNew Target CPA amount
target_roasnumberNoNew Target ROAS
customer_idstringNoGoogle Ads account ID
At least one optional parameter (other than customer_id) must be provided.
Pauses an active campaign. Equivalent to calling update_campaign with status: PAUSED.Parameters
ParameterTypeRequiredDescription
campaign_idstringYesThe campaign ID to pause
customer_idstringNoGoogle Ads account ID

Keyword tools

Returns keywords for a specified ad group.Parameters
ParameterTypeRequiredDescription
ad_group_idstringYesThe ad group ID to retrieve keywords for
statusstringNoFilter by status: ENABLED, PAUSED. Defaults to all.
customer_idstringNoGoogle Ads account ID
Example response
[
  {
    "id": "111222333",
    "text": "running shoes",
    "match_type": "PHRASE",
    "status": "ENABLED",
    "cpc_bid_micros": 1500000
  }
]
Adds one or more keywords to an ad group.Parameters
ParameterTypeRequiredDescription
ad_group_idstringYesThe ad group ID to add keywords to
keywordsarrayYesList of keyword objects
keywords[].textstringYesKeyword text
keywords[].match_typestringYesBROAD, PHRASE, or EXACT
keywords[].cpc_bidnumberNoMax CPC bid in account currency
customer_idstringNoGoogle Ads account ID

Reporting tools

Returns performance metrics for campaigns, ad groups, or keywords over a specified date range.Parameters
ParameterTypeRequiredDescription
levelstringYesCAMPAIGN, AD_GROUP, or KEYWORD
date_rangestringNoNamed range: TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, THIS_MONTH. Defaults to LAST_30_DAYS.
start_datestringNoCustom start date YYYY-MM-DD. Overrides date_range.
end_datestringNoCustom end date YYYY-MM-DD. Required when start_date is set.
campaign_idstringNoFilter results to a specific campaign
customer_idstringNoGoogle Ads account ID
Returned metricsclicks, impressions, ctr, average_cpc, cost, conversions, conversion_rate, roas
Returns account-level metrics for a specified date range.Parameters
ParameterTypeRequiredDescription
date_rangestringNoNamed range (same options as get_performance_report). Defaults to LAST_30_DAYS.
start_datestringNoCustom start date YYYY-MM-DD
end_datestringNoCustom end date YYYY-MM-DD
customer_idstringNoGoogle Ads account ID
Example response
{
  "date_range": "LAST_30_DAYS",
  "clicks": 4821,
  "impressions": 89340,
  "ctr": 0.054,
  "average_cpc": 1.23,
  "cost": 5929.83,
  "conversions": 312,
  "conversion_rate": 0.065,
  "roas": 4.2
}