Skip to main content
Glama

search_campaigns

Filter and retrieve campaigns from MoEngage by channel, status, delivery type, creator, date range, name, tags, or campaign ID. Paginate through results with page and limit parameters.

Instructions

Search MoEngage campaigns with optional filters and pagination.

All filters combine with AND logic — all provided filters must match. Zero results is not an error: returns {success: true, campaigns: [], has_more: false}.

channels: List of channels to filter by (e.g. ["EMAIL", "PUSH", "SMS"]) delivery_type: List of delivery types (ONE_TIME, PERIODIC, EVENT_TRIGGERED, BUSINESS_EVENT_TRIGGERED, DEVICE_TRIGGERED, LOCATION_TRIGGERED, BROADCAST_LIVE_ACTIVITY) status: List of statuses (ACTIVE, SCHEDULED, PAUSED, SENT, STOPPED, ARCHIVED) created_by: List of creator email addresses created_date_from: ISO date string for range start (required with created_date_to) created_date_to: ISO date string for range end (required with created_date_from) campaign_id: Filter by specific campaign ID (regular filter, not a direct lookup) name: Substring match on campaign name (case-insensitive) tags: List of tags to filter by page: Page number, starting at 1 (default: 1) limit: Results per page, 1–15 (default: 10) include_child_campaigns: Include child campaign executions in results (default: false) include_archive_campaigns: Include archived campaigns in results (default: false)

Date range: created_date_from and created_date_to must both be provided together.

Rate limit: 5/min, 25/hr, 100/day.

Pagination: page (1-indexed) + limit (max 15). has_more is heuristic (count == limit) — may false-positive on exact multiples of limit.

Note: Returns full raw campaign objects from the API — no field curation. Additional fields beyond the basics include: flow_id, flow_name, parent_id, basic_details.name, basic_details.tags, scheduling_details, among others.

Field name differences vs get_campaign_meta: status vs campaign_status, basic_details.name vs campaign_name, parent_id vs parent_campaign_id.

Returns: {success: true, campaigns: [full_campaign_object], page, limit, has_more} {success: false, error, status_code, api_response} on API error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channelsNo
delivery_typeNo
statusNo
created_byNo
created_date_fromNo
created_date_toNo
campaign_idNo
nameNo
tagsNo
pageNo
limitNo
include_child_campaignsNo
include_archive_campaignsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses zero results handling, pagination heuristic (has_more may false-positive), rate limits (5/min, 25/hr, 100/day), and that it returns full raw objects without curation. Also mentions error response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-line summary, then a bullet list of parameters, followed by notes on date range, rate limit, pagination, and field differences. It is slightly long but every sentence adds value, so it earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters (0 required), no output schema shown but the description includes return format and error response. It covers inputs, behavior, errors, rate limits, pagination, and cross-references to sibling tool. Very complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description lists each parameter with valid values (e.g., delivery_type enums, statuses), behavior (name substring match, case-insensitive), and constraints (date range must be together). This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Search MoEngage campaigns with optional filters and pagination,' clearly stating the verb (search), resource (campaigns), and scope. It distinguishes itself from siblings like get_campaign_meta and search_templates by focusing on search with multiple filters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: all filters combine with AND logic, zero results not an error, date range requires both fields, pagination details, rate limits, and field name differences vs get_campaign_meta. It tells the agent exactly how to use it and what to expect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/poddubnyoleg/moengage_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server