Cogny CLI · Paid Search

    Bing Ads from your shell.

    Pull Microsoft Advertising performance (impressions, clicks, CTR, avg CPC, spend, conversions, revenue, impression share, Quality Score) at campaign, ad group, keyword, search-term, ad or geographic level, list campaigns and keywords, and push negatives, bids, budgets and status changes — all from Bash over the Bing Ads MCP. No SOAP client, no developer token of your own.

    # 1. sign up (free for 15 calls) — uses your git email
    $ npx @cogny/cli init --agent claude-code
    
    # 2. see every Bing Ads tool
    $ cogny tools list
    
    # 3. call any tool from Bash — no MCP wiring
    $ cogny tools call mcp__Bing_Ads__tool_get_report --input '{…}'
    ❯ start Cogny Solo — $9/mo@cogny/cli on npm →

    cogny --who

    TWO PATHS
    You're a human

    The Microsoft Advertising UI is a report builder with a queue, and the API is SOAP-first with a developer-token application. The CLI returns any report as JSON rows in one call — daily or summary, scoped to campaigns — ready to pipe, diff or schedule. Connect Bing Ads once in Cogny Solo and let your coding agent — or scheduled reports — do the querying for you.

    ❯ start Solo
    You're an agent

    Self-onboard with one command. The CLI issues a key, wires nothing, and exposes every Bing Ads tool over JSON-RPC. First 15 calls are free.

    $ npx @cogny/cli init --agent claude-code

    cogny tools call

    3 EXAMPLES

    Real tool names from the Bing Ads MCP. Send --input JSON, get JSON back.

    mcp__Bing_Ads__tool_get_reportCampaign performance for a date range, one row per campaign.
    $ cogny tools call mcp__Bing_Ads__tool_get_report \
      --input '{"account_id":"150123456","report_type":"campaign","start_date":"2026-08-01","end_date":"2026-08-31","aggregation":"Summary"}'
    example response
    {
      "columns": [
        "TimePeriod",
        "CampaignId",
        "CampaignName",
        "Impressions",
        "Clicks",
        "Ctr",
        "AverageCpc",
        "Spend",
        "Conversions",
        "ImpressionSharePercent"
      ],
      "rows": [
        {
          "TimePeriod": "2026-08-01 - 2026-08-31",
          "CampaignId": 512345678,
          "CampaignName": "SE - Brand",
          "Impressions": 18422,
          "Clicks": 1093,
          "Ctr": 5.93,
          "AverageCpc": 2.14,
          "Spend": 2339.02,
          "Conversions": 87,
          "ImpressionSharePercent": 91.2
        }
      ],
      "row_count": 1,
      "currency": "SEK"
    }
    mcp__Bing_Ads__tool_get_reportSearch terms that spent without converting — the negative-keyword shortlist.
    $ cogny tools call mcp__Bing_Ads__tool_get_report \
      --input '{"account_id":"150123456","report_type":"search_query","start_date":"2026-08-04","end_date":"2026-08-31","campaign_ids":["512345678"]}'
    example response
    {
      "rows": [
        {
          "SearchQuery": "free crm template",
          "Keyword": "crm",
          "BidMatchType": "Broad",
          "Clicks": 41,
          "Spend": 96.5,
          "Conversions": 0
        }
      ],
      "row_count": 1
    }
    mcp__Bing_Ads__tool_add_negative_keywordsAdd phrase negatives to a campaign.
    $ cogny tools call mcp__Bing_Ads__tool_add_negative_keywords \
      --input '{"account_id":"150123456","entity_type":"Campaign","entity_id":"512345678","keywords":[{"text":"free","match_type":"Phrase"},{"text":"template","match_type":"Phrase"}]}'
    example response
    {
      "ids": [
        [
          9911,
          9912
        ]
      ],
      "partial_errors": [],
      "status": "success",
      "entity_type": "Campaign",
      "entity_id": "512345678"
    }

    cogny tools list

    MORE

    A sample of the rest of the Bing Ads surface. Run cogny tools list --json for every tool and its input schema.

    mcp__Bing_Ads__tool_list_accountsmcp__Bing_Ads__tool_get_campaignsmcp__Bing_Ads__tool_get_ad_groupsmcp__Bing_Ads__tool_get_adsmcp__Bing_Ads__tool_get_keywordsmcp__Bing_Ads__tool_get_negative_keywordsmcp__Bing_Ads__tool_update_campaignmcp__Bing_Ads__tool_update_ad_groupmcp__Bing_Ads__tool_update_keywordsmcp__Bing_Ads__tool_update_ad_statusmcp__Bing_Ads__tool_create_campaignmcp__Bing_Ads__tool_create_ad_groupmcp__Bing_Ads__tool_add_keywordsmcp__Bing_Ads__tool_create_responsive_search_admcp__Bing_Ads__tool_remove_negative_keywords

    cogny --faq

    Is this an official Microsoft Advertising CLI?

    No — it is the Cogny CLI calling the Bing Ads MCP over the cogny-mcp-proxy. You sign in with Microsoft once in Cogny, pick the ad accounts the workspace may use, and then call every tool from Bash. Cogny supplies the developer token, so you never apply for one.

    Which account id do I pass?

    The numeric `id` from tool_list_accounts — not the alphanumeric account number shown in the Microsoft Advertising UI. The proxy resolves the manager (customer) id for you.

    What units do bids, spend and CTR use?

    Plain account-currency units (a 1.25 bid is 1.25 SEK or USD), the same for report Spend, AverageCpc and Revenue. Ctr and the impression-share columns are already percentages — 5.93 means 5.93 %.

    related CLIs

    /cli/google-ads/cli/bing-webmaster-tools/cli/search-console/cli/ga4

    Building an agent? The full tool map for all servers is one fetch: /cli/llms.txt