_ registry / mcp streamable-http · checked 4h ago

iris

https://api.iris-ai.dev

Registry code: 803fe3b65bd29c99

api record

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

from a public catalogue that lists it, not from the operator

endpoint
https://api.iris-ai.dev/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is iris live?
Yes — it answered the hub's last check (checked 4h ago). It answered 100% of checks over the last 30 days.
Is iris free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does iris have?
81 tools: list_target_profiles, get_contact_handles, get_engagement_metrics, get_contact_types, run_autopilot_now, get_responder, configure_responder, list_campaigns, ….
Is iris safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
357ms

last good check

priced tools
0

of 81 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 81 tools
1 auth-required 80 never probed 1 of 81 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • check_channel_availability auth-required 4h ago

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • list_target_profiles unknown never probed

    list target profiles for a campaign. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • get_contact_handles unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "contact ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • get_engagement_metrics unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_contact_types unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • run_autopilot_now unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_responder unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • configure_responder unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "thread Instagram DMs from anyone into the inbox. turning it off also turns auto_reply off. true clears any pause state."
        },
        "auto_reply": {
          "type": "boolean",
          "description": "let iris send replies itself, with no review. requires enabled, and either instructions or a profile background to answer from."
        },
        "disclosure": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 200,
              "minLength": 10
            },
            {
              "type": "null"
            }
          ],
          "description": "the line that says the reply is automated, sent once per conversation with the first reply; null uses the default"
        },
        "booking_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri",
              "maxLength": 500
            },
            {
              "type": "null"
            }
          ],
          "description": "shared when someone asks to talk or book (https url); null to unset"
        },
        "instructions": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 4000
            },
            {
              "type": "null"
            }
          ],
          "description": "what you offer, prices, answers to common questions, tone; null to unset"
        },
        "qualifying_questions": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200
          },
          "maxItems": 5,
          "description": "asked one per message, in order, before the booking link is shared (max 5 items)"
        },
        "max_replies_per_conversation": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "after this many automatic replies the conversation is handed to you (default 8)"
        }
      },
      "additionalProperties": false
    }
    arguments 68 lines
  • list_campaigns unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "status": {
          "enum": [
            "draft",
            "active",
            "paused",
            "completed",
            "deleted"
          ],
          "type": "string",
          "description": "filter by campaign status"
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • list_pending_messages unknown never probed

    list messages awaiting approval before sending. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "filter by campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • create_campaign unknown never probed

    create a new outreach campaign. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "objective_type"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "campaign name"
        },
        "product_url": {
          "type": "string",
          "format": "uri",
          "description": "product URL (for product_promotion objective)"
        },
        "product_name": {
          "type": "string",
          "maxLength": 200,
          "description": "product name (for product_promotion objective)"
        },
        "objective_type": {
          "enum": [
            "venue_dj",
            "venue_host",
            "product_promotion",
            "custom"
          ],
          "type": "string",
          "description": "campaign objective type"
        },
        "product_description": {
          "type": "string",
          "maxLength": 2000,
          "description": "product description (for product_promotion objective)"
        }
      },
      "additionalProperties": false
    }
    arguments 42 lines
  • get_campaign unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • update_campaign unknown never probed

    update a campaign's details. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        },
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "new campaign name"
        },
        "status": {
          "enum": [
            "draft",
            "active",
            "paused",
            "completed",
            "deleted"
          ],
          "type": "string",
          "description": "new campaign status"
        },
        "follow_up_enabled": {
          "type": "boolean",
          "description": "enable follow-up emails"
        },
        "follow_up_max_count": {
          "type": "integer",
          "maximum": 10,
          "minimum": 0,
          "description": "max follow-up count"
        },
        "follow_up_delay_days": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "days between follow-ups"
        }
      },
      "additionalProperties": false
    }
    arguments 48 lines
  • delete_campaign unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • list_campaign_contacts unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        },
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "status": {
          "enum": [
            "pending",
            "queued",
            "contacted",
            "responded",
            "converted",
            "bounced",
            "opted_out"
          ],
          "type": "string",
          "description": "filter by contact status"
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        }
      },
      "additionalProperties": false
    }
    arguments 39 lines
  • add_campaign_contacts unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        },
        "contacts": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {}
          },
          "description": "new contacts to create and link (same shape as create_contact)"
        },
        "contact_ids": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid"
          },
          "description": "ids of existing contacts to link"
        },
        "deduplicate": {
          "type": "boolean",
          "description": "skip contacts already linked (default true)"
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • list_campaign_chats unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_campaign_chat_messages unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "chat_id"
      ],
      "properties": {
        "chat_id": {
          "type": "string",
          "format": "uuid",
          "description": "chat session ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • rename_campaign_chat unknown never probed

    rename a chat session. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "chat_id",
        "title"
      ],
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "new title"
        },
        "chat_id": {
          "type": "string",
          "format": "uuid",
          "description": "chat session ID"
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • delete_campaign_chat unknown never probed

    soft-delete a chat session. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "chat_id"
      ],
      "properties": {
        "chat_id": {
          "type": "string",
          "format": "uuid",
          "description": "chat session ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • get_campaign_usage unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • analyze_campaign unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • create_target_profile unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "name",
        "profile_type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        },
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "profile name"
        },
        "industries": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "target industries"
        },
        "job_titles": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "target job titles"
        },
        "profile_type": {
          "enum": [
            "local_business",
            "content_creator",
            "influencer",
            "b2b_professional",
            "ecommerce",
            "saas_company",
            "agency",
            "freelancer",
            "other"
          ],
          "type": "string",
          "description": "type of target profile"
        },
        "discovery_keywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "keywords for contact discovery"
        },
        "recommended_channels": {
          "type": "array",
          "items": {
            "enum": [
              "email",
              "instagram",
              "twitter"
            ],
            "type": "string"
          },
          "description": "recommended outreach channels"
        }
      },
      "additionalProperties": false
    }
    arguments 71 lines
  • delete_target_profile unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "profile_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        },
        "profile_id": {
          "type": "string",
          "format": "uuid",
          "description": "target profile ID"
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • list_contacts unknown never probed

    list all contacts with optional search. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "search": {
          "type": "string",
          "description": "search by name, email, or company"
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • create_contact unknown never probed

    create a new contact. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "email"
      ],
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "tags for categorization"
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "contact email address"
        },
        "phone": {
          "type": "string",
          "maxLength": 50,
          "description": "phone number"
        },
        "website": {
          "type": "string",
          "format": "uri",
          "description": "website URL"
        },
        "job_title": {
          "type": "string",
          "maxLength": 200,
          "description": "job title"
        },
        "last_name": {
          "type": "string",
          "maxLength": 100,
          "description": "last name"
        },
        "first_name": {
          "type": "string",
          "maxLength": 100,
          "description": "first name"
        },
        "company_name": {
          "type": "string",
          "maxLength": 200,
          "description": "company name"
        }
      },
      "additionalProperties": false
    }
    arguments 52 lines
  • get_contact unknown never probed

    get a contact by ID. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "contact ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • update_contact unknown never probed

    update a contact's details. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "contact ID"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "tags for categorization"
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "email address"
        },
        "phone": {
          "type": "string",
          "maxLength": 50,
          "description": "phone number"
        },
        "website": {
          "type": "string",
          "format": "uri",
          "description": "website URL"
        },
        "job_title": {
          "type": "string",
          "maxLength": 200,
          "description": "job title"
        },
        "last_name": {
          "type": "string",
          "maxLength": 100,
          "description": "last name"
        },
        "first_name": {
          "type": "string",
          "maxLength": 100,
          "description": "first name"
        },
        "company_name": {
          "type": "string",
          "maxLength": 200,
          "description": "company name"
        }
      },
      "additionalProperties": false
    }
    arguments 57 lines
  • delete_contact unknown never probed

    soft-delete a contact. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "contact ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • bulk_import_contacts unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "contacts"
      ],
      "properties": {
        "contacts": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "email"
            ],
            "properties": {
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "tags"
              },
              "email": {
                "type": "string",
                "format": "email",
                "description": "contact email"
              },
              "job_title": {
                "type": "string",
                "description": "job title"
              },
              "last_name": {
                "type": "string",
                "description": "last name"
              },
              "first_name": {
                "type": "string",
                "description": "first name"
              },
              "company_name": {
                "type": "string",
                "description": "company name"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 500,
          "minItems": 1,
          "description": "array of contacts to import"
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID to add contacts to"
        }
      },
      "additionalProperties": false
    }
    arguments 58 lines
  • get_contact_usage unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • list_contact_conversations unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "contact ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • list_conversations unknown never probed

    list conversations with optional filtering. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "status": {
          "enum": [
            "active",
            "completed",
            "failed",
            "human_review"
          ],
          "type": "string",
          "description": "filter by conversation status"
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "filter by campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • get_conversation unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • create_conversation unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "contact_id"
      ],
      "properties": {
        "contact_id": {
          "type": "string",
          "format": "uuid",
          "description": "contact ID to converse with"
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "scope to a campaign the contact belongs to"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • create_conversation_message unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "content",
        "direction",
        "status",
        "channel"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        },
        "status": {
          "enum": [
            "draft",
            "queued",
            "sending",
            "pending_approval",
            "sent",
            "delivered",
            "failed",
            "bounced",
            "rejected"
          ],
          "type": "string",
          "description": "initial message status"
        },
        "channel": {
          "enum": [
            "email",
            "twitter",
            "instagram",
            "tiktok"
          ],
          "type": "string",
          "description": "delivery channel (tiktok is manual-send: record only)"
        },
        "content": {
          "type": "string",
          "minLength": 1,
          "description": "message content"
        },
        "direction": {
          "enum": [
            "inbound",
            "outbound"
          ],
          "type": "string",
          "description": "message direction"
        },
        "platform_recipient_id": {
          "type": "string",
          "description": "platform recipient id (twitter/instagram channels)"
        }
      },
      "additionalProperties": false
    }
    arguments 61 lines
  • get_conversation_messages unknown never probed

    get all messages in a conversation. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • mark_conversation_read unknown never probed

    mark a conversation as read. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • update_conversation unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "status"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        },
        "status": {
          "enum": [
            "active",
            "archived",
            "closed"
          ],
          "type": "string",
          "description": "new conversation status"
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • approve_message unknown never probed

    approve a pending message for sending. requires send scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "message ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • reject_message unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "message ID"
        },
        "reason": {
          "type": "string",
          "maxLength": 500,
          "description": "reason for rejection"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • retry_message unknown never probed

    retry sending a failed message. requires send scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "message ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • mark_message_sent unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "approval queue item ID, or the message ID for drafts created via create_message (they have no approval item)"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • submit_message_feedback unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "feedback"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "message ID"
        },
        "feedback": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "description": "feedback text"
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • bulk_message_action unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "action",
        "message_ids"
      ],
      "properties": {
        "action": {
          "enum": [
            "approve",
            "reject"
          ],
          "type": "string",
          "description": "action to perform"
        },
        "message_ids": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid"
          },
          "maxItems": 100,
          "minItems": 1,
          "description": "message IDs to act on"
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • generate_content unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "generation_type",
        "tone"
      ],
      "properties": {
        "tone": {
          "type": "string",
          "minLength": 1,
          "description": "tone (e.g. professional, friendly, casual, formal, persuasive, informative)"
        },
        "format": {
          "enum": [
            "email",
            "dm"
          ],
          "type": "string",
          "description": "dm = short platform-native message text with empty subject. defaults to email"
        },
        "prompt": {
          "type": "string",
          "description": "additional freeform instructions"
        },
        "contact_id": {
          "type": "string",
          "format": "uuid",
          "description": "target contact - its tags + enrichment_data are used automatically"
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign to scope the generation to"
        },
        "include_cta": {
          "type": "boolean",
          "description": "include a clear call-to-action"
        },
        "generation_type": {
          "enum": [
            "initial_outreach",
            "follow_up",
            "response_negotiation",
            "meeting_request",
            "closing"
          ],
          "type": "string",
          "description": "type of content to generate"
        }
      },
      "additionalProperties": false
    }
    arguments 53 lines
  • generate_campaign_content unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaign_name",
        "objective",
        "target_audience",
        "key_benefits",
        "tone"
      ],
      "properties": {
        "tone": {
          "type": "string",
          "minLength": 1,
          "description": "tone (e.g. professional, casual, warm-direct)"
        },
        "objective": {
          "type": "string",
          "minLength": 1,
          "description": "campaign objective (e.g. 'book DJ gigs', 'sell SaaS to VPs of Eng')"
        },
        "key_benefits": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "minItems": 1,
          "description": "non-empty list of key benefits to emphasise"
        },
        "campaign_name": {
          "type": "string",
          "minLength": 1,
          "description": "campaign name (used as the brief title)"
        },
        "target_audience": {
          "type": "string",
          "minLength": 1,
          "description": "target audience description"
        }
      },
      "additionalProperties": false
    }
    arguments 43 lines
  • analyze_response unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "conversation_id",
        "message_content"
      ],
      "properties": {
        "conversation_id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        },
        "message_content": {
          "type": "string",
          "maxLength": 10000,
          "minLength": 1,
          "description": "message content to analyze"
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • get_ai_usage unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • search_contacts unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "keywords"
      ],
      "properties": {
        "sources": {
          "type": "array",
          "items": {
            "enum": [
              "google_maps",
              "instagram",
              "twitter",
              "tiktok",
              "reddit"
            ],
            "type": "string"
          },
          "description": "override the default per-profile_type source mix. valid: google_maps, instagram, twitter, tiktok, reddit. omit to let the orchestrator pick."
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "minItems": 1,
          "description": "non-empty array of search keywords (e.g. ['boutique hotel', 'rooftop venue'])"
        },
        "location": {
          "type": "string",
          "description": "location for geo-scoped goals (local_business / venue / brick-and-mortar). omit for global goals (creators, b2b, saas)."
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign to attach discovered contacts to on finalize"
        },
        "max_results": {
          "type": "integer",
          "maximum": 500,
          "minimum": 10,
          "description": "max contacts to return (10-500, default 50; server clamps to plan cap)"
        },
        "profile_type": {
          "enum": [
            "local_business",
            "content_creator",
            "influencer",
            "b2b_professional",
            "ecommerce",
            "saas_company",
            "agency",
            "freelancer",
            "other"
          ],
          "type": "string",
          "description": "ICP profile type — drives default source mix when sources is omitted"
        },
        "radius_miles": {
          "type": "number",
          "default": 25,
          "description": "search radius in miles (default 25)",
          "exclusiveMinimum": 0
        },
        "enrich_emails": {
          "type": "boolean",
          "default": true,
          "description": "run waterfall email enrichment (BetterContact → FullEnrich → ZeroBounce). default true."
        }
      },
      "additionalProperties": false
    }
    arguments 74 lines
  • search_campaign_contacts unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaign_id"
      ],
      "properties": {
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        },
        "target_profile_id": {
          "type": "string",
          "format": "uuid",
          "description": "specific target profile to search for"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • get_discovery_job unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "discovery job ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • list_discovery_sources unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_analytics_overview unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_campaign_analytics unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • get_performance_metrics unknown never probed

    get email performance metrics over time. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "days": {
          "type": "integer",
          "maximum": 90,
          "minimum": 1,
          "description": "time window in days (1–90, default 30)"
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "filter by campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • get_response_time unknown never probed

    get average response time analytics. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "filter by campaign ID"
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • get_billing_plans unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • list_connected_accounts unknown never probed

    list all connected social media accounts. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • send_channel_message unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "channel",
        "conversation_id",
        "recipient_id",
        "content"
      ],
      "properties": {
        "channel": {
          "enum": [
            "email",
            "instagram",
            "twitter"
          ],
          "type": "string",
          "description": "outreach channel to use"
        },
        "content": {
          "type": "string",
          "maxLength": 10000,
          "minLength": 1,
          "description": "message content"
        },
        "subject": {
          "type": "string",
          "description": "subject (email channel only)"
        },
        "recipient_id": {
          "type": "string",
          "minLength": 1,
          "description": "recipient (email address for email channel; platform handle/ID for social channels)"
        },
        "conversation_id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        }
      },
      "additionalProperties": false
    }
    arguments 42 lines
  • list_notifications unknown never probed

    list user notifications. requires read scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • update_notification unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "notification ID"
        },
        "read": {
          "type": "boolean",
          "description": "mark as read or unread"
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • delete_notification unknown never probed

    delete a notification. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "notification ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • mark_all_notifications_read unknown never probed

    mark all notifications as read. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_usage unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_changelog unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_autopilot_status unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • configure_autopilot unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "turn the nightly loop on or off (enabling requires a campaign_id and clears pause state)"
        },
        "run_hour": {
          "type": "integer",
          "maximum": 23,
          "minimum": 0,
          "description": "local hour the nightly run fires (default 2)"
        },
        "timezone": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA timezone for run_hour (default America/New_York)"
        },
        "campaign_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ],
          "description": "the ONE standing campaign autopilot tends (draft, scheduled, or active); null to unset"
        },
        "max_pending_reviews": {
          "type": "integer",
          "maximum": 200,
          "minimum": 5,
          "description": "skip discovery while this many drafts sit unreviewed (default 25)"
        },
        "max_new_contacts_per_run": {
          "type": "integer",
          "maximum": 50,
          "minimum": 10,
          "description": "discovery batch size per nightly run (default 10)"
        }
      },
      "additionalProperties": false
    }
    arguments 47 lines
  • list_responder_activity unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • get_conversation_responder unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "conversation_id"
      ],
      "properties": {
        "conversation_id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • set_conversation_responder unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "conversation_id",
        "status"
      ],
      "properties": {
        "status": {
          "enum": [
            "active",
            "paused"
          ],
          "type": "string",
          "description": "new responder status for this conversation"
        },
        "conversation_id": {
          "type": "string",
          "format": "uuid",
          "description": "conversation ID"
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • list_responder_comment_triggers unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • create_responder_comment_trigger unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "keyword",
        "message"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "whether the trigger is active (default true)"
        },
        "keyword": {
          "type": "string",
          "maxLength": 50,
          "minLength": 1,
          "description": "matched as a whole word or phrase in the comment, case-insensitive (1-50 characters)"
        },
        "message": {
          "type": "string",
          "maxLength": 900,
          "minLength": 1,
          "description": "the DM sent to the commenter, before the automated notice (1-900 characters, and at most 700 bytes)"
        },
        "media_id": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{5,40}$"
            },
            {
              "type": "null"
            }
          ],
          "description": "the numeric instagram media id to limit the trigger to one post (5-40 digits; get it from list_responder_posts); omit or send null to match every post"
        }
      },
      "additionalProperties": false
    }
    arguments 39 lines
  • update_responder_comment_trigger unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "comment trigger ID"
        },
        "enabled": {
          "type": "boolean",
          "description": "whether the trigger is active"
        },
        "keyword": {
          "type": "string",
          "maxLength": 50,
          "minLength": 1,
          "description": "matched as a whole word or phrase in the comment, case-insensitive (1-50 characters)"
        },
        "message": {
          "type": "string",
          "maxLength": 900,
          "minLength": 1,
          "description": "the DM sent to the commenter, before the automated notice (1-900 characters, and at most 700 bytes)"
        },
        "media_id": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{5,40}$"
            },
            {
              "type": "null"
            }
          ],
          "description": "the numeric instagram media id to limit the trigger to one post (5-40 digits; get it from list_responder_posts); null matches every post"
        }
      },
      "additionalProperties": false
    }
    arguments 43 lines
  • delete_responder_comment_trigger unknown never probed

    delete a comment trigger. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "comment trigger ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • list_responder_posts unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • list_audiences unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "description": "page number (default 1)",
          "exclusiveMinimum": 0
        },
        "page_size": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "items per page (default 50, max 100)"
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • create_audience unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "profile_type"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "audience name"
        },
        "fit_score": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "how well this audience fits (0-100)"
        },
        "industries": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxItems": 10,
          "description": "target industries"
        },
        "job_titles": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxItems": 10,
          "description": "target job titles"
        },
        "description": {
          "type": "string",
          "maxLength": 500,
          "description": "who this audience is"
        },
        "pain_points": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxItems": 10,
          "description": "problems they feel"
        },
        "profile_type": {
          "enum": [
            "local_business",
            "content_creator",
            "influencer",
            "b2b_professional",
            "ecommerce",
            "saas_company",
            "agency",
            "freelancer",
            "other"
          ],
          "type": "string",
          "description": "target profile type"
        },
        "buying_signals": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxItems": 10,
          "description": "signals they're ready to buy"
        },
        "outreach_angle": {
          "type": "string",
          "maxLength": 500,
          "description": "the hook messages should lead with"
        },
        "discovery_keywords": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxItems": 10,
          "description": "keywords for contact discovery"
        }
      },
      "additionalProperties": false
    }
    arguments 93 lines
  • generate_audiences unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "product_name"
      ],
      "properties": {
        "product_url": {
          "type": "string",
          "format": "uri",
          "description": "product website - scraped for extra context"
        },
        "product_name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "product name"
        },
        "product_description": {
          "type": "string",
          "maxLength": 2000,
          "description": "what it does and who it's for"
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
  • attach_audience_to_campaign unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "campaign_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "audience (library profile) ID"
        },
        "campaign_id": {
          "type": "string",
          "format": "uuid",
          "description": "campaign to attach to (must be yours and not completed or deleted)"
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • delete_audience unknown never probed

    delete a library audience profile. campaigns it was attached to keep their copy. requires write scope.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "audience (library profile) ID"
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 803fe3b65bd29c99.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/803fe3b65bd29c99/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/803fe3b65bd29c99/badge.svg)](https://brick.blue/agent/803fe3b65bd29c99?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.