The CRM MCP connector for Claude & ChatGPT
Bring your CRM into the AI you already use. agentlyleads ships a Model Context Protocol connector, so Claude and ChatGPT can search your contacts, draft personalized outreach, log conversations from a pasted thread, and run a pipeline report. Everything is scoped to your workspace, and every write is saved as a draft for your approval.
https://agentlyleads.com/api/mcpAuthorization happens in your browser on connect (OAuth 2.1). No API keys to copy around.
Connect Claude
- claude.ai: Settings → Connectors → Add custom connector → paste the URL → Connect.
- Claude Code:
claude mcp add --transport http agentlyleads https://agentlyleads.com/api/mcp.
Connect ChatGPT
- Settings → Apps & Connectors → Developer mode.
- Add a connector with the URL above and approve the OAuth sign-in.
133 tools, one connector
Everything the assistant can do, grouped by area. Read tools answer questions; write tools save drafts and records for a human to approve.
Search & read · 61
- Check an account's engagement
account_engagementSee everyone at a company who engaged, or which accounts are heating up or went quiet.
- Performance report for a date range
activity_reportReport the Performance page's numbers for a date range: weighted forecast by close month and stage, campaign outreach results, per-rep activity (emails sent, replies, calls and notes, tasks done, deal stage moves) and won/lost by lead source.
- Stop emailing an address
add_suppressionAdd an email address to the suppression list as a manual opt-out, so no campaign, sequence, automation or send reaches it, and flag matching contacts as opted out.
- Comment on a conversation
add_thread_commentPost an internal comment on a shared inbox conversation, visible only to teammates.
- Archive inbox conversations
archive_threadArchive shared inbox conversations, or bring them back with `archived: false`.
- Assign a website chat
assign_chatGive a website chat an owner, or unassign it. `assigneeId` is a user id, 'me' for yourself, or null to put it back in Unassigned.
- Assign inbox conversations
assign_threadGive one or more shared inbox conversations an owner, who is then responsible for the reply.
- Attach a file to a record
attach_fileAttach a file (up to 10 MB) to any record: a contact, lead, deal, company, quote, contract, task, note, case, campaign or offering. Send either base64 bytes (`contentBase64`) or a public https `url` the server downloads (preferred for anything over ~100 KB; base64 wastes the context window). `recordId` is the raw record id (no type prefix) or the record's externalId.
- Book a meeting slot
book_slotBook a specific open slot from `get_availability` on a host's booking type. Requires `hostEmail` and `typeSlug` (same reason as `get_availability`) and the exact `startAt` instant `get_availability` returned — never a time you reconstruct yourself, or you risk booking the wrong instant. Confirmation-gated: call once WITHOUT `confirm` to get a summary of what would be booked, show it to the human, then call again with `confirm: true` only after they agree. The first call never books anything.
- Cancel a booked meeting
cancel_bookingCancel a booked meeting as the host.
- Close or reopen a website chat
close_chatMark a website chat handled for the whole team, or reopen it with `reopen: true`.
- Create a meeting type
create_booking_typeCreate one of your own meeting types: a booking page people use to pick a time with you.
- Create a custom field
create_custom_fieldDefine a new custom field on contacts, leads, companies or deals. Owner only.
- Create a tag
create_tagCreate a tag in the workspace, or return the existing one if a tag with that exact name is already there.
- Create an automation workflow
create_workflowCreate an automation workflow that runs actions when a record matches a trigger.
- Delete a file from a record
delete_filePermanently delete one file (by the file id from `list_files`) and its stored bytes. Campaign files can only be removed before the campaign sends. Confirm with the user before calling.
- Who to call now
engagement_listList the contacts, leads or companies in one engagement tab, people to call first: HOT (a hot-lead alert in the last 24 hours, such as several opens in an hour or a click on an offer page),
- Open a record's full history
fetchPull up one contact, company, or deal with its full activity timeline.
- Find a contact by exact email
find_contact_by_emailFind the exact person behind an email address before you log or send anything.
- Find likely duplicate contacts
find_duplicate_contactsSpot likely duplicate contacts so you can clean them up.
- Get open slots for a booking type
get_availabilityFind open meeting slots for one host's booking type in a date range, rendered in the requested time zone. Requires both `hostEmail` and `typeSlug` — a meeting-type slug is unique per person, not per workspace, so a slug alone can't tell two hosts' `30min` apart. Call `list_booking_types` first if you don't already have these. Each slot's raw `startAt` instant is echoed back in backticks — pass that exact value to `book_slot`, never a value you reconstruct from the rendered local time.
- Get a booked meeting
get_bookingShow one booked meeting: when, with whom, the booking form answers, guests, join link, status, and the CRM contact, lead and task it created.
- Show a meeting type's hours
get_booking_hoursShow the weekly hours and date overrides of one of your meeting types, and the timezone they are read in.
- Show your meeting types
get_booking_typeShow one of your own meeting types in full (by `typeId` or `typeSlug`), or omit both to list all of them, paused ones included, with the ids the other booking-type tools take.
- Read a website chat
get_chatRead one website chat conversation: the visitor's details, the site and page they were on, who is handling it, and the transcript oldest first.
- Read a shared inbox conversation
get_inbox_threadRead one conversation from the shared inbox: its owner, state, tags, waiting time and every message in order.
- Get one record's full detail
get_recordOpen one contact, lead, company, or deal with its full activity and related records.
- Get one workflow
get_workflowRead one automation workflow by id, including its exact conditions and actions as JSON.
- Hand a website chat back
hand_back_chatStep out of a website chat you are handling. Inside the site's team hours it goes back to waiting and the team is notified; outside them the AI agent picks it up.
- List booking types
list_booking_typesList the meeting types people can book on this workspace's public booking pages, with each one's host, duration and public URL. Use this first to find the `hostEmail` and `typeSlug` that `get_availability` and `book_slot` need.
- List booked meetings
list_bookingsList meetings people booked through booking links, one page at a time.
- List calendar
list_calendarSee tasks, meetings, deal close dates, and busy time across any date range.
- List website chats
list_chatsList website chat conversations from the /chat queue, newest first.
- List custom fields
list_custom_fieldsList the workspace's custom field definitions for contacts, leads, companies or deals: each field's key, label, type, allowed options and whether it is required.
- List files on a record
list_filesList the files attached to one record (contact, lead, deal, company, quote, contract, task, note, case, campaign or offering), newest first, each with a download link valid for one hour.
- List a form's submissions
list_form_submissionsList the leads a lead-capture form created, newest first, with the page they submitted from and the contact id if the lead was converted.
- List shared inbox conversations
list_inbox_threadsList conversations in the team's shared email inbox, one row per thread, with owner, open or closed state, tags and how long each has been waiting on a reply.
- Find times to move a booking to
list_reschedule_slotsFind open times a booked meeting can be moved to.
- List suppressed email addresses
list_suppressionsList addresses the workspace will not email, newest first, with the reason: UNSUBSCRIBE, MANUAL, BOUNCE (hard bounce) or COMPLAINT (marked as spam).
- List tags
list_tagsList every tag in the workspace with its id, color, and how many contacts, leads, companies and deals carry it. Takes no arguments.
- List tasks
list_tasksReview open and completed tasks with due dates and their linked records.
- Read internal comments on a conversation
list_thread_commentsRead the internal team comments on a shared inbox conversation, oldest first.
- List the team
list_usersList the people in this workspace with their name, email, role, whether they are active, and who they report to.
- Recent runs of a workflow
list_workflow_runsShow what a workflow recently did: one row per action run with status OK, SKIPPED (with the reason) or ERROR (with the message), newest first.
- List automation workflows
list_workflowsList the workspace's automation workflows with their trigger, conditions, actions, active state and run count.
- Mark a website chat as spam
mark_chat_spamMove a website chat to Spam and block that visitor on the site for 30 days, so they cannot start a new chat.
- Find who wants a lot
offer_interestRank the buyers who replied to or clicked an offer, so you know who to call first.
- Move a booked meeting
reschedule_bookingMove a booked meeting to a new time as the host.
- Schedule appointment
schedule_appointmentBook a meeting, all-day entry, or repeating series on the shared calendar.
- Search everything
searchSearch across contacts, leads, companies, and deals all at once.
- Search records of one type
search_recordsList contacts, leads, companies, or deals, filtered by status, owner, or keyword.
- Set a meeting type's weekly hours
set_booking_hoursReplace the weekly hours of one of your meeting types.
- Change availability on one date
set_date_overrideChange one date's availability on one of your meeting types, leaving the weekly hours alone.
- Close, reopen, spam or trash inbox conversations
set_thread_statusClose or reopen shared inbox conversations, or move them to or out of spam or trash.
- Turn a workflow on or off
set_workflow_activeActivate or pause an automation workflow.
- Snooze inbox conversations
snooze_threadHide shared inbox conversations until a later time, or wake them now with `until: null`.
- Tag or untag a website chat
tag_chatAdd a tag to a website chat, or remove one with `remove: true`.
- Tag inbox conversations
tag_threadAdd or remove tags on shared inbox conversations.
- Take over a website chat
take_over_chatTake a website chat over from the AI agent or the waiting queue so you are the one answering.
- Change a meeting type
update_booking_typeChange one of your own meeting types.
- Confirm who you're connected as
whoamiConfirm which user and workspace you're connected to.
Contacts & leads · 20
- Add a note
add_noteAdd a note to the workspace or attach it to a specific contact.
- Convert a lead to a contact
convert_leadTurn a qualified lead into a contact, carrying all its history across.
- Open a support case
create_caseOpen a support case for an issue, including straight from a customer email.
- Create a record
create_recordCreate a new contact, lead, company, or deal in seconds.
- Delete a note
delete_noteRemove a note that's wrong or no longer applies.
- Delete a record
delete_recordPermanently remove a contact, lead, company, or deal and its history.
- Generate an AI brief for a contact
generate_briefGet an AI summary of a contact with a recommended next step and draft message.
- Get one support case
get_caseOpen one support case with its severity, age, account, and full history.
- List support cases
list_casesWork the support queue by status, severity, owner, or account, with overdue ones flagged.
- List lead-capture forms
list_lead_formsList the workspace's embeddable lead-capture forms with their fields, active state and submission count.
- Log a communication
log_communicationRecord a call, email, note, or meeting on a contact's timeline.
- Log a LinkedIn, meeting, or call conversation
log_conversationTurn a pasted LinkedIn, meeting, or call thread into a clean timeline entry.
- Create or modify a task
manage_taskCreate, update, complete, or reschedule a task, including repeating ones.
- Merge two duplicate contacts
merge_contactsCombine two duplicate contacts into one, keeping all of their history.
- Tag records
tag_recordsAdd one or more tags to up to 500 contacts, leads, companies or deals of the same type in one call.
- Today's brief
today_briefSee what needs attention today: top priorities, pipeline snapshot, and follow-ups.
- Remove tags from records
untag_recordsRemove one or more tags from up to 500 contacts, leads, companies or deals of the same type in one call.
- Update a support case
update_case_statusMove a case forward, change its severity, or hand it to someone else.
- Update a note
update_noteRevise a note's text or reattach it to a different contact.
- Update a record
update_recordChange details on a contact, lead, company, or deal.
Deals & catalog · 17
- Create a contract
create_contractRecord what was agreed with a customer and when the term runs out, straight from a won deal.
- Create an offering
create_offeringAdd a product, service, subscription, or contract to your catalog.
- Add a pipeline stage
create_pipeline_stageAdd a stage to a deal pipeline, at the end or at a given position. Owner only.
- Create a quote
create_quoteBuild a line-item quote for a deal, contact, or company, priced from your catalog.
- Get one contract
get_contractOpen one contract with its term, value, account, and how long is left to run.
- Get one offering's detail
get_offeringOpen one catalog item with its price, details, and the campaigns, deals, and quotes around it.
- Get one quote's detail
get_quoteOpen one quote with its line items, total, and who it is for.
- List contracts
list_contractsSee every contract by status or account, soonest to expire first.
- List offering categories
list_offering_categoriesSee how your catalog is organized by category and item count.
- List offerings (catalog)
list_offeringsBrowse your full product and service catalog, filtered by type or category.
- List pipelines and stages
list_pipelinesList the workspace's deal pipelines with their stages in board order, each stage's id, whether it counts as won or lost, and how many deals sit in it.
- List quotes
list_quotesReview quotes by status, deal, or contact, with totals and expiry dates.
- Sales pipeline report
pipeline_reportSee open and won deal value, win rate, and a stage-by-stage breakdown.
- Update a contract's status or term
update_contract_statusActivate, expire, or cancel a contract, or reset its term when it renews.
- Update an offering
update_offeringChange the price, cost, or details of a catalog item.
- Update a pipeline stage
update_pipeline_stageRename a pipeline stage, change whether it counts as won or lost, or move it to a new position on the board. Owner only.
- Change a quote's status
update_quote_statusMark a quote sent, accepted, or declined as the buyer responds.
Email & outreach · 21
- Cancel a paced batch
cancel_drip_planCall off a paced batch — every email still waiting goes back to your drafts.
- Classify a received reply
classify_replyRecord how an incoming reply landed so you can see which pitch is working.
- Send a batch slowly, one at a time
create_drip_planSpace a batch of finished drafts out over hours or days instead of sending them all at once.
- Delete a drafted email (drafts only)
delete_email_draftDiscard an email draft you no longer want to send.
- Write personalized outreach drafts
draft_outreachHave the AI write personalized outreach drafts, saved for your review before sending.
- Check a paced batch
get_drip_planSee what a paced batch has sent, what is still queued, and who replied before their turn.
- Read one email in full
get_emailOpen any draft or sent email to check its content before it goes out.
- List emails (drafts and sent)
list_emailsFind pending drafts, recover a draft, or review what a contact was sent.
- List threads that are due a follow-up
list_followups_dueFind conversations that went quiet and are due a follow-up nudge.
- Pull prospects and context for an offering
list_offering_prospectsPull every eligible contact for an offering with timeline context, ready to personalize.
- List the workspace's From addresses
list_sending_identitiesSee which verified addresses and mailboxes you can send email from.
- List replies awaiting classification
list_unclassified_repliesSee incoming replies you haven't sorted yet, newest first.
- Find contacts suitable for an offering
match_offering_to_contactsHave the AI rank which contacts best fit an offering, with a reason for each.
- Pause a paced batch
pause_drip_planHold a paced batch mid-send without losing its place in the queue.
- Reply in a website chat
reply_to_chatSend a message to the visitor in a website chat, as you.
- Draft a reply in an existing thread
reply_to_emailDraft a reply that continues the same thread, saved for your approval before sending.
- Resume a paced batch
resume_drip_planStart a paused batch again, re-spaced from now so the backlog doesn't go out at once.
- Send an approved draft
send_draftSend an approved email draft to the recipient once a person signs off.
- Compose an email to a contact
send_emailCompose an email to a contact, saved as a draft for approval, attachments included.
- Include or exclude an outreach candidate
set_candidate_decisionChoose which matched contacts to include before drafting outreach.
- Edit an email draft
update_email_draftEdit a draft's subject, body, sender, or campaign before it's approved.
Campaigns & sequences · 12
- Attach a file to a campaign
add_campaign_attachmentAttach a file that goes out with every email in a campaign.
- See how a campaign is doing
campaign_analyticsReplies, interest and deals per campaign, with every buyer conversation and whose turn it is.
- Create a draft campaign
create_campaignStart a draft email campaign to a tag or a fixed list of contacts.
- Create an email/task sequence
create_sequenceBuild a multi-step outreach sequence of timed emails and tasks.
- Delete a draft campaign
delete_campaignRemove a draft campaign that was never sent.
- Enroll contacts in a sequence
enroll_in_sequenceStart one or more contacts on a sequence's scheduled steps.
- Get one campaign's detail and analytics
get_campaignOpen a campaign with its audience, status, and delivery stats.
- Get one sequence's detail and stats
get_sequenceOpen a sequence with its steps and enrollment numbers.
- Launch or schedule a campaign
launch_campaignLaunch or schedule a campaign, creating a draft per recipient for approval.
- List campaigns
list_campaignsReview all email campaigns and their status at a glance.
- List sequences
list_sequencesReview all outreach sequences with their steps and enrollment counts.
- Edit a draft campaign
update_campaignRevise a draft campaign's copy or audience before it sends.
Admin & sync · 2
- Check or run a HubSpot sync
hubspot_syncCheck your HubSpot connection status or start a two-way sync.
- Check or run a Zoho sync
zoho_syncCheck your Zoho CRM connection status or start a two-way sync.
Questions
- What is a CRM MCP connector?
- It is a Model Context Protocol server that exposes your CRM as tools an AI assistant can call. Connect it once in Claude or ChatGPT and the assistant can search records, draft emails, log conversations, and report on your pipeline on your behalf.
- Does it work with both Claude and ChatGPT?
- Yes. The same connector is a Claude custom connector and a ChatGPT connector. It uses OAuth 2.1, so you sign in with your existing CRM account and approve access in your browser.
- Can the AI send emails without my approval?
- No. Every write is confirmation-gated and outbound emails are always saved as drafts. A human reviews and approves before anything is sent.
Already have an account? Connect it from Settings → AI connector.