mcpbeat Sign in

Iris MCP Server

not responding

Iris is listed as active in the registry but did not answer our last check. 9 installs a week from npm. It exposes 81 tools.

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

Installs per day peak 285 · avg 15 · -50% w/w
a month agotoday
Uptime history 19 hours of history · worst hour 0%
19 hours agonow
37.7%
Uptime 24h
26 of 69 checks
81
Tools
read from the server
623 ms
Response time
average over 24h
9
Installs / week
npm and PyPI

Iris does not always answer

Over the last week it answered 37.7% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 15 min ago.

run in your terminal
claude mcp add iris --transport http https://api.iris-ai.dev/mcp
Settings → Connectors → Add custom connector, then paste this address
https://api.iris-ai.dev/mcp
~/.codex/config.toml
[mcp_servers.iris]
url = "https://api.iris-ai.dev/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "iris": {
      "url": "https://api.iris-ai.dev/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "iris": {
      "type": "http",
      "url": "https://api.iris-ai.dev/mcp"
    }
  }
}

Available tools 81

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

campaign
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.
create_campaign
create a new outreach campaign. requires write scope.
delete_campaign
soft-delete a campaign (sets status to deleted). requires write scope.
delete_campaign_chat
soft-delete a chat session. requires write scope.
get_campaign
get a campaign by ID with stats. requires read scope.
get_campaign_analytics
get detailed analytics for a specific campaign. 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.
get_campaign_usage
get usage limits and current counts for a campaign. requires read 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.
list_campaign_contacts
list contacts in a campaign with optional status filter. requires read scope.
search_campaign_contacts
search for contacts matching a campaign's target profiles. requires generate scope.
update_campaign
update a campaign's details. requires write scope.
contact
create_contact
create a new contact. requires write scope.
delete_contact
soft-delete a 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.
get_contact_types
get breakdown of contacts by type/source. requires read 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.
update_contact
update a contact's details. requires write scope.
conversation
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
get a conversation by ID with contact and campaign details. requires read scope.
get_conversation_messages
get all messages in a conversation. 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.
update_conversation
update a conversation's status: active, archived, or closed. requires write scope.
responder
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 the comment, and nothing more unless the person replies. it only sends while status.comment_triggers on get_responder is ready; needs_permission means the owner has to reconnect instagram from the responder settings page in the iris web app, unavailable means the feature isn't offered on the account yet. each message sent counts as a message against the plan. needs an API key and a connected instagram account; x402 and MPP identities cannot use it. at most 20 triggers per account, and a second trigger with the same keyword on the same post is refused. requires write scope.
delete_responder_comment_trigger
delete a comment trigger. requires write 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.
list_responder_activity
list the responder's activity log (replies sent, handoffs, skips, and failures), newest first. requires read 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.
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.
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.
generate
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.
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.
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.
mark
mark_all_notifications_read
mark all notifications as read. requires write scope.
mark_conversation_read
mark a conversation as read. requires write 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.
target
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_target_profiles
list target profiles for a campaign. requires read scope.
analyze
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 write scope.
analyze_response
analyze an inbound message using AI to determine sentiment, intent, and suggested actions. requires generate scope.
audience
create_audience
create a library audience profile manually. names are unique per library (case-insensitive). requires write scope.
delete_audience
delete a library audience profile. campaigns it was attached to keep their copy. requires write scope.
autopilot
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.
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.
bulk
bulk_import_contacts
import multiple contacts at once, optionally adding them to a campaign. requires write scope.
bulk_message_action
approve or reject multiple messages at once. requires send scope.
configure
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.
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. requires write scope.
contacts
list_contacts
list all contacts with optional search. 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.
discovery
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.
notification
delete_notification
delete a notification. requires write scope.
update_notification
update a notification (e.g., mark as read). requires write scope.
usage
get_ai_usage
get AI generation usage limits and current counts for the billing period. requires read scope.
get_usage
get your current plan, quota usage (campaigns used/remaining this period), and billing period (requires read scope)
analytics
get_analytics_overview
get a high-level overview of all campaign analytics. requires read scope.
approve
approve_message
approve a pending message for sending. requires send scope.
attach
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.
audiences
list_audiences
list the audience library - reusable target profiles created once and attachable to any campaign. requires read scope.
billing
get_billing_plans
get all available billing plans with pricing and feature limits. requires read scope.
campaigns
list_campaigns
list all campaigns with optional filtering by status. requires read scope.
changelog
get_changelog
machine-readable release history (public) - version, date, type, summary, migration notes on breaking entries. the X-Notice header's structured backstory.
channel
check_channel_availability
check which outreach channels are available and configured. requires read scope.
connected
list_connected_accounts
list all connected social media accounts. requires read scope.
conversations
list_conversations
list conversations with optional filtering. requires read scope.
engagement
get_engagement_metrics
get overall engagement metrics across all conversations. requires read scope.
notifications
list_notifications
list user notifications. requires read scope.
pending
list_pending_messages
list messages awaiting approval before sending. requires read scope.
performance
get_performance_metrics
get email performance metrics over time. requires read scope.
reject
reject_message
reject a pending message with an optional reason. requires send scope.
rename
rename_campaign_chat
rename a chat session. requires write scope.
response
get_response_time
get average response time analytics. requires read scope.
retry
retry_message
retry sending a failed message. requires send scope.
send
send_channel_message
send a message through a specific channel in a conversation. requires send scope.
submit
submit_message_feedback
submit feedback on an AI-generated message to improve future generations. requires send scope.

Endpoints

URLTransportStateLatencyChecked
https://api.iris-ai.dev/mcp streamable-http answering 26 ms 15 min ago

Alternatives to Iris

same job, measured the same way
ConverZAP — WhatsApp (official API)
by converzap

WhatsApp via the official Meta API: contacts, conversations, messages, CRM deals and campaigns.

answering
Superchat MCP by usefulapi
by usefulapi

Read conversations, messages, contacts, channels and templates in Superchat.

16 tools answering
Patto
by pattorelay

PR and B2B outreach via MCP: contacts, campaigns, email drafts, replies and follow-ups.

answering
Missive MCP by usefulapi
by usefulapi

Read email/chat conversations, messages, contacts and teams; draft, send and update threads.

19 tools answering
TeleBoost
by teleboost

Telegram CRM: manage contacts, conversations, tickets, campaigns and analytics.

answering
Telvana
by telvana-ai

Manage your Telvana AI voice, SMS and chat agents, conversations, campaigns and outbound calls.

answering
Front MCP
by wearehoust

MCP server for Front: conversations, contacts, messages, tags, and inbox workflows.

118 installs/wk local only
Omentir
by vanshyadav1408

Find LinkedIn prospects, draft outreach, and run human-paced campaigns from your AI agent.

answering

Iris — questions

Answers built from our own checks of this server.

What can Iris do?
It exposes 81 tools, read directly from the server on our last check. Among them: add_campaign_contacts, analyze_campaign, analyze_response, approve_message, attach_audience_to_campaign, bulk_import_contacts and 75 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Iris mostly used for?
Its tools cluster around campaign, contact and responder. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Iris working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 26 of 69 checks got a reply (37.7%), average response time 623 ms. The bar chart above shows every period we have measured.
The registry lists Iris as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Iris?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Iris need an API key?
No. Iris completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 81 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Iris?
It answers our handshake in 623 ms on average, which is faster than 16% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Iris?
The npm package @jclvsh/iris was installed 9 times in the last week. Week over week that is -50%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.