The useful detail is where the filtering happens: keyword and date narrowing go to Intercom's search API, so a week of conversations comes back already reduced instead of being pulled down and sifted. That is also why the conversation range is capped at 7 days — the tool is built for reviewing a window, not for bulk export. Searching by email content rather than only by contact record is what makes it work on the people who wrote in once and were never created as a contact.
A read client for Intercom support data. Four tools cover the two questions a support review starts from — what happened in this window, and what happened with this customer — with filtering pushed into Intercom's search API rather than applied after everything is fetched.
- Conversations across a date range, narrowed by a keyword to include and a keyword to exclude in the same call; the range must not exceed 7 days (list_conversations).
- Every conversation belonging to one customer, addressed by email or Intercom ID, optionally bounded by dates and filtered by a list of keywords (search_conversations_by_customer).
- Conversations found by email content even when no contact record exists — emails are resolved to contact IDs where they can be, and matched in content where they cannot (search_conversations_by_customer).
- Tickets by state — open, pending or resolved — over an optional date range (search_tickets_by_status).
- Tickets belonging to one customer, again by email or Intercom ID (search_tickets_by_customer).
Node.js 18.0.0 or higher and an Intercom account with API access. The token from your Intercom account settings goes in INTERCOM_ACCESS_TOKEN. Installing globally gives you the `intercom-mcp` command; a Docker image is the other route, exposing ports 3000 and 8080. Dates are written as DD/MM/YYYY.
