NestDaddy

Iris

io.github.JCLVSH/iris · v0.25.2

Run multi-channel outreach: campaigns, contacts, conversations, and AI-drafted messages.

Connect Remote server

Terminal
claude mcp add --transport http iris https://api.iris-ai.dev/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
~/.cursor/mcp.json
{
  "mcpServers": {
    "iris": {
      "url": "https://api.iris-ai.dev/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "iris": {
      "type": "http",
      "url": "https://api.iris-ai.dev/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://api.iris-ai.dev/mcp

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools 80 found in our last check

  • list_campaigns

    list all campaigns with optional filtering by status. requires read scope.

  • create_campaign

    create a new outreach campaign. requires write scope.

  • get_campaign

    get a campaign by ID with stats. requires read scope.

  • update_campaign

    update a campaign's details. requires write scope.

  • delete_campaign

    soft-delete a campaign (sets status to deleted). requires write scope.

  • list_campaign_contacts

    list contacts in a campaign with optional status filter. requires read scope.

  • add_campaign_contacts

    add contacts to a campaign, by id or by creating them inline. a campaign needs at least one contact before it can be activated. requires write scope.

  • list_campaign_chats

    list your iris chat sessions (the conversational campaign builder), most recently updated first, max 100. the live chat turn itself is a server-sent-events stream outside this tool set. requires read scope.

  • get_campaign_chat_messages

    list the messages in a chat session, oldest first. `content` is an array of opaque blocks (text / tool_use / tool_result). requires read scope.

  • rename_campaign_chat

    rename a chat session. requires write scope.

  • delete_campaign_chat

    soft-delete a chat session. requires write scope.

  • get_campaign_usage

    get usage limits and current counts for a campaign. requires read scope.

  • analyze_campaign

    queue AI analysis of a campaign to generate its target profiles: from the product for product_promotion campaigns, from goal_description for any other campaign. runs asynchronously; poll get_campaign until analysis_status is completed, then search_campaign_contacts. requires wri…

  • list_target_profiles

    list target profiles for a campaign. requires read scope.

  • create_target_profile

    create a target profile for a campaign. requires write scope.

  • delete_target_profile

    delete a target profile from a campaign. requires write scope.

  • list_contacts

    list all contacts with optional search. requires read scope.

  • create_contact

    create a new contact. requires write scope.

  • get_contact

    get a contact by ID. requires read scope.

  • get_contact_handles

    the contact's social handles (instagram/twitter/tiktok) - verify a handle write landed. requires read scope.

  • update_contact

    update a contact's details. requires write scope.

  • delete_contact

    soft-delete a contact. requires write scope.

  • bulk_import_contacts

    import multiple contacts at once, optionally adding them to a campaign. requires write scope.

  • get_contact_usage

    get contact usage limits and current counts for the billing period. requires read scope.

  • list_contact_conversations

    list all conversations for a specific contact. requires read scope.

  • list_conversations

    list conversations with optional filtering. requires read scope.

  • get_conversation

    get a conversation by ID with contact and campaign details. requires read scope.

  • create_conversation

    find-or-create a conversation for a contact - the hub conversation by default, or the campaign-scoped thread when campaign_id is passed (contact must be in that campaign). requires write scope.

  • create_conversation_message

    create a message in a conversation. status pending_approval places it in the human review queue instead of sending. requires write scope.

  • get_conversation_messages

    get all messages in a conversation. requires read scope.

  • mark_conversation_read

    mark a conversation as read. requires write scope.

  • update_conversation

    update a conversation's status: active, archived, or closed. requires write scope.

  • get_engagement_metrics

    get overall engagement metrics across all conversations. requires read scope.

  • list_pending_messages

    list messages awaiting approval before sending. requires read scope.

  • approve_message

    approve a pending message for sending. requires send scope.

  • reject_message

    reject a pending message with an optional reason. requires send scope.

  • retry_message

    retry sending a failed message. requires send scope.

  • mark_message_sent

    mark a pending manual-channel draft (tiktok, or instagram cold first-touch) as sent outside the platform. API-sendable drafts must use approve_message instead. requires write scope.

  • submit_message_feedback

    submit feedback on an AI-generated message to improve future generations. requires send scope.

  • bulk_message_action

    approve or reject multiple messages at once. requires send scope.

  • generate_content

    generate AI outreach content (email or DM draft) for a contact/campaign. the contact's tags + enrichment_data feed the generation context automatically. requires generate scope.

  • generate_campaign_content

    generate campaign-level outreach content (email sequence, templates) from a campaign brief. content-first: takes the strategy inline, not a campaign id. requires generate scope.

  • analyze_response

    analyze an inbound message using AI to determine sentiment, intent, and suggested actions. requires generate scope.

  • get_ai_usage

    get AI generation usage limits and current counts for the billing period. requires read scope.

  • search_contacts

    kick off a multi-source contact discovery job (Apify-backed). returns a job_id and contacts when ready (waits up to 90s; if status=queued, poll get_discovery_job). closed source list: google_maps, instagram, twitter, tiktok, reddit. requires generate scope.

  • search_campaign_contacts

    search for contacts matching a campaign's target profiles. requires generate scope.

  • get_discovery_job

    get the status, progress, and contacts of a discovery job. status values: pending, running, completed, failed. contacts populated only when status=completed. requires read scope.

  • list_discovery_sources

    list available discovery data sources and their status. requires read scope.

  • get_analytics_overview

    get a high-level overview of all campaign analytics. requires read scope.

  • get_campaign_analytics

    get detailed analytics for a specific campaign. requires read scope.

  • get_performance_metrics

    get email performance metrics over time. requires read scope.

  • get_response_time

    get average response time analytics. requires read scope.

  • get_contact_types

    get breakdown of contacts by type/source. requires read scope.

  • get_billing_plans

    get all available billing plans with pricing and feature limits. requires read scope.

  • list_connected_accounts

    list all connected social media accounts. requires read scope.

  • check_channel_availability

    check which outreach channels are available and configured. requires read scope.

  • send_channel_message

    send a message through a specific channel in a conversation. requires send scope.

  • list_notifications

    list user notifications. requires read scope.

  • update_notification

    update a notification (e.g., mark as read). requires write scope.

  • delete_notification

    delete a notification. requires write scope.

  • mark_all_notifications_read

    mark all notifications as read. requires write scope.

  • get_usage

    get your current plan, quota usage (campaigns used/remaining this period), and billing period (requires read scope)

  • get_changelog

    machine-readable release history (public) - version, date, type, summary, migration notes on breaking entries. the X-Notice header's structured backstory.

  • get_autopilot_status

    get autopilot status: whether it's configured, the current config, the pending-review count for the standing campaign, and the latest run's step results. requires read scope.

  • configure_autopilot

    create or update the autopilot config (merge: only the fields you send change; first call creates the config with defaults). autopilot is review-only - drafts wait in the approval queue, nothing sends without approval. requires write scope.

  • run_autopilot_now

    queue a manual autopilot run immediately (insights refresh + discovery top-up on the standing campaign). steps that already completed today are skipped. rate limited to 2 per hour. requires generate scope.

  • get_responder

    get responder status: whether it's configured, the current config, connection and pause status, and activity counts for the last 30 days. requires read scope.

  • configure_responder

    create or update the responder config (merge: only the fields you send change; the first call creates the config). with auto_reply on, replies are sent without review. Instagram only allows a reply within 24 hours of the person's last message, and only to someone who wrote first…

  • list_responder_activity

    list the responder's activity log (replies sent, handoffs, skips, and failures), newest first. requires read scope.

  • get_conversation_responder

    get the responder's status for a single conversation: active, paused, handed off, or never seen, plus the reason and reply counts. requires read scope.

  • set_conversation_responder

    pause or resume the responder for a single conversation. pausing works on any conversation; resuming is refused after the person asked iris to stop. requires write scope.

  • list_responder_comment_triggers

    list the account's comment triggers. a comment trigger watches for a keyword in instagram comments and sends the commenter one automatic DM. requires read scope.

  • create_responder_comment_trigger

    create a comment trigger. when someone comments the keyword on the account's instagram post, iris sends that person one direct message: the owner's message as written, followed by the notice that it is automated. instagram allows one such message per comment, within 7 days of th…

  • update_responder_comment_trigger

    update a comment trigger's keyword, message, media_id, or enabled state. give at least one field besides id. someone else's trigger, or an id that isn't a comment trigger on this account, is a 404. requires write scope.

  • delete_responder_comment_trigger

    delete a comment trigger. requires write scope.

  • list_responder_posts

    list the account's recent instagram posts with their media ids, for limiting a comment trigger to one post. requires read scope.

  • list_audiences

    list the audience library - reusable target profiles created once and attachable to any campaign. requires read scope.

  • create_audience

    create a library audience profile manually. names are unique per library (case-insensitive). requires write scope.

  • generate_audiences

    AI-generate audience profiles from a product (scrape + analysis) into the library. generated names already in the library are skipped, not overwritten. rate limited to 5 per hour. requires generate scope.

  • attach_audience_to_campaign

    copy a library audience into a campaign. the response is the campaign's own copy (a target profile) - editing it never touches the library master. if the campaign already has a same-named profile, the existing copy is returned. requires write scope.

Headers

NameDescription
Authorization
Required, secret
Iris API key, sent as a Bearer token. Its scopes apply.

Details

Endpointhttps://api.iris-ai.dev/mcp (Streamable HTTP)
Package@jclvsh/[email protected] (NPM, stdio)
First published12 Nov 2026
Last updated12 Nov 2026
Registry nameio.github.JCLVSH/iris

More communication servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.