Skip to main content
Glama
jonathan-politzki

Smartlead Simplified MCP Server

smartlead_fetch_webhooks_by_campaign

Retrieve all webhooks configured for a specific email marketing campaign by providing the campaign ID.

Instructions

Fetch all the webhooks associated with a campaign using the campaign ID.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID of the campaign to fetch webhooks for

Implementation Reference

  • The core handler function that validates input using isFetchWebhooksByCampaignParams, creates a SmartLead API client, makes a GET request to `/campaigns/${campaign_id}/webhooks` with retry logic, and returns the response data or error.
    async function handleFetchWebhooksByCampaign(
      args: unknown,
      apiClient: AxiosInstance,
      withRetry: <T>(operation: () => Promise<T>, context: string) => Promise<T>
    ) {
      if (!isFetchWebhooksByCampaignParams(args)) {
        throw new McpError(
          ErrorCode.InvalidParams,
          'Invalid arguments for smartlead_fetch_webhooks_by_campaign'
        );
      }
    
      try {
        const smartLeadClient = createSmartLeadClient(apiClient);
        const { campaign_id } = args;
        
        const response = await withRetry(
          async () => smartLeadClient.get(`/campaigns/${campaign_id}/webhooks`),
          'fetch webhooks by campaign'
        );
    
        return {
          content: [
            {
              type: 'text',
              text: JSON.stringify(response.data, null, 2),
            },
          ],
          isError: false,
        };
      } catch (error: any) {
        return {
          content: [{ 
            type: 'text', 
            text: `API Error: ${error.response?.data?.message || error.message}` 
          }],
          isError: true,
        };
      }
    }
  • Defines the tool metadata: name, description, ToolCategory.WEBHOOKS, and input schema requiring 'campaign_id' string.
    export const FETCH_WEBHOOKS_BY_CAMPAIGN_TOOL: CategoryTool = {
      name: 'smartlead_fetch_webhooks_by_campaign',
      description: 'Fetch all the webhooks associated with a campaign using the campaign ID.',
      category: ToolCategory.WEBHOOKS,
      inputSchema: {
        type: 'object',
        properties: {
          campaign_id: {
            type: 'string',
            description: 'ID of the campaign to fetch webhooks for',
          },
        },
        required: ['campaign_id'],
      },
    };
  • src/index.ts:221-224 (registration)
    Conditionally registers all webhook tools (including smartlead_fetch_webhooks_by_campaign) via toolRegistry.registerMany(webhookTools) if webhooks category is enabled.
    // Register webhook tools if enabled
    if (enabledCategories.webhooks) {
      toolRegistry.registerMany(webhookTools);
    }
  • Runtime type guard for validating input arguments match FetchWebhooksByCampaignParams interface (campaign_id: string), used in the handler.
    export function isFetchWebhooksByCampaignParams(args: unknown): args is FetchWebhooksByCampaignParams {
      return (
        typeof args === 'object' &&
        args !== null &&
        'campaign_id' in args &&
        typeof (args as FetchWebhooksByCampaignParams).campaign_id === 'string'
      );
    }

Tool Definition Quality

Score is being calculated. Check back soon.

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/jonathan-politzki/smartlead-mcp-server'

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