Contacts+
Contacts+ provides OAuth-secured access to personal account, contact, and tag data.
Verdict
Common use cases
- Add leads from discovery calls instantly
- Tag contacts by deal stage or priority
- Retrieve customer details during support chats
- Bulk-update contact records after events
- Pull recent touchpoints before outreach
Integration
- Vendor
- Contacts+
- Category
- other
- Auth
- OAUTH2
- Tools
- 13
- Composio slug
contacts_plus
Tools
- Create Contact
Create a personal contact with structured profile data in the connected Contacts+ address book.
- Create Tag
Create a personal Contacts+ tag, or return the existing tag when that name already exists. Before updating or deleting it, call GET_TAGS with the returned tag ID to obtain the canonical etag.
- Delete Contactdestructive
Delete one personal contact using its current etag for concurrency protection. Refresh the etag after any update or contact-tag change before deleting.
- Delete Tagdestructive
Delete one personal tag using its current canonical etag. Call GET_TAGS after any preceding tag write to obtain the canonical etag before deleting.
- Get Account
Return profile details for the authenticated Contacts+ personal account.
- Get Contacts
Fetch current full records for one or more personal contacts by ID, including etags needed for safe updates and deletes.
- Get Tags
Fetch current records for one or more personal tags by ID, including canonical etags needed for safe updates and deletes.
- List Contacts
Return one cursor-controlled page of personal contacts from the connected Contacts+ address book.
- List Tags
Return one cursor-controlled page of personal Contacts+ tags.
- Search Contacts
Search personal contacts by full text or Contacts+ advanced query syntax, optionally restricted to tag IDs. Returns one cursor-controlled page. Search results may omit etags, so fetch selected records with GET_CONTACTS before mutation.
- Update Contact
Replace the desired data for a personal contact using its current etag and strict optimistic concurrency by default. Send all fields that must remain.
- Update Contact Tags
Add and/or remove personal tags across one or more personal contacts in a single operation. Each affected contact receives a new etag.
- Update Tag
Rename a personal tag using its current canonical etag from GET_TAGS. Read the tag back after updating because write-response etags may not be canonical for the next protected mutation.
Setup
Setup guide
- 11. Open your Switchy workspace settings and navigate to the Integrations page. 2. Find Contacts+ in the catalog and click Connect. 3. You'll be redirected to Contacts+ to authorize Switchy — the OAuth flow requests read and write permissions for your personal address book and tags. 4. Grant access and you'll return to Switchy with a confirmation banner. 5. Open any Project and type '@Contacts+ list my contacts' to verify the connection works. 6. The AI will return a page of contact records; if you see names and IDs, setup is complete. 7. To invoke a tool, @mention Contacts+ in any message and describe the task — for example '@Contacts+ create a contact for Jane Doe at Acme Corp' or '@Contacts+ tag contact ID abc123 as VIP'. 8. Each write operation returns an etag; the AI uses these automatically for safe updates and deletes, so you don't need to track version numbers yourself.
What teammates see: by default, memories from Contacts+ are scoped to the Project (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Projects have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Create Lead Contact
@Contacts+ create a contact for Alex Rivera, email alex@techstartup.io, company TechStartup, title CTO, and tag them as Q1-Lead.
Find Contact by Name
@Contacts+ find the contact named Jordan Kim and show me their email, company, and any tags.
Tag Multiple Contacts
@Contacts+ tag contacts with IDs abc123, def456, and ghi789 as Enterprise-Tier.
Update Contact Details
@Contacts+ update contact ID xyz789 to reflect new title VP of Engineering at NewCo.
List Tagged Contacts
@Contacts+ list all contacts tagged as VIP and include their email addresses.
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@Contacts+ list all contacts tagged 'investor' and show me their email addresses and phone numbers
Found 4 contacts tagged 'investor' in your Contacts+ address book: 1. Sarah Chen – sarah.chen@venture.co, +1-415-555-0142 2. Michael Torres – m.torres@seedfund.io, +1-650-555-0893 3. Priya Kapoor – priya@growthcap.com, +1-408-555-0267 4. James Liu – jliu@angelnetwork.org, +1-925-555-0451 This is an illustrative example showing how the MCP retrieves contact records filtered by tag and surfaces key fields. Actual results depend on your current address book state.
This example demonstrates read-only filtering by tag and field extraction. The MCP requires OAuth2 consent with read scope for your Contacts+ account. Results are paginated; large address books may require multiple cursor-controlled requests to retrieve all matching contacts.
@Contacts+ create a new contact for Alex Rivera, email alex@startup.dev, phone +1-512-555-0329, and tag them 'founder' and 'Austin'
Created contact for Alex Rivera in your Contacts+ address book: • Contact ID: cnt_9k3m2p7q • Email: alex@startup.dev • Phone: +1-512-555-0329 • Tags: founder, Austin Both tags were applied successfully. If either tag name didn't exist, the MCP created it automatically. This illustrative example shows the structured response after a successful write operation.
This example showcases contact creation with multi-field data and automatic tag assignment. The MCP requires write scope. Non-existent tags are created on-the-fly. The returned contact ID and etag are necessary for subsequent updates or deletion, so the AI can chain operations in a single conversation.
@Contacts+ find all contacts without an email address and draft a short note explaining why keeping email current matters for our CRM sync
Found 7 contacts in your Contacts+ address book missing email addresses. Here's a suggested note: "Heads up: These contacts don't have email addresses on file, which blocks our CRM sync and prevents them from receiving automated updates. Adding emails ensures they stay in the loop for newsletters, event invites, and deal flow notifications. Priority candidates: contacts tagged 'active client' or 'board member.'" This illustrative example pairs the MCP's list-and-filter capability with AI reasoning to surface a data-quality insight.
This example combines the MCP's read tools with the AI's synthesis ability to identify gaps and draft actionable guidance. Useful for data hygiene workflows. The MCP doesn't modify contacts here—it only surfaces the list for human review. Large address books may require pagination to scan all records.
Use-case deep-dives
When Contacts+ beats a full CRM for seed-stage outreach
A two-founder SaaS team closing their first twenty enterprise pilots doesn't need Salesforce—they need a shared contact book that syncs across devices and lets them tag prospects by stage. Contacts+ wins here because the OAuth flow takes under two minutes, the tagging model maps cleanly to "demo scheduled" or "contract sent", and the 13-tool surface is small enough that both founders understand it in one sitting. The etag-based concurrency protection means neither founder overwrites the other's notes when they both update a contact after a call. This works until you hit roughly 200 active deals or need pipeline reporting—at that threshold, migrate to a proper CRM and archive the Contacts+ integration.
Tagging conference leads in bulk after a trade show
A three-person growth team returns from a conference with 80 business cards and wants to tag every lead with "Q1 2025 conference" before the first follow-up email goes out. The Create Tag and List Contacts tools let them script the batch operation in under ten minutes—no CSV export, no spreadsheet pivot, no manual clicking. The etag refresh requirement adds one extra GET_TAGS call per tag update, but that's negligible at this scale. This scenario breaks down above roughly 500 contacts per event because the cursor-controlled pagination in List Contacts becomes tedious, and you'd want a dedicated event-management tool with richer segmentation. For sub-200 contact events, Contacts+ is faster than any alternative.
When personal contact notes need to move between CS reps
A four-person customer success team rotates accounts quarterly and needs a lightweight way to pass context—preferred communication style, internal champion name, renewal timing—without spinning up a knowledge base. The Get Contacts and Delete Contact tools let the outgoing rep export their annotated contact list and the incoming rep import it with full profile data intact. The OAuth2 flow means each rep controls their own address book, so there's no shared-credential risk. This works for teams under roughly ten people where the contact volume per rep stays below 150 active accounts. Beyond that threshold, the lack of role-based access control and audit logs becomes a compliance gap, and you need a proper CS platform with structured handoff workflows.
Frequently asked
What does the Contacts+ MCP do in Switchy?
It connects your Contacts+ address book so AI agents can read, create, update, and delete personal contacts and tags. The MCP exposes thirteen tools covering full CRUD operations—list contacts by page, fetch individual records with etags for safe updates, create structured profiles, and manage tags. Everything runs against the authenticated user's personal address book, not a shared team directory.
Do I need special permissions to connect Contacts+ via OAuth?
You need a Contacts+ account and permission to authorize the OAuth flow. The MCP requests read-write access to your personal contacts and tags. No admin role is required because Contacts+ treats each user's address book as private. Once connected, only you (and agents you authorize in Switchy) can see or modify those contacts.
Can the MCP sync contacts between Contacts+ and other tools?
No. The MCP reads and writes contacts inside your Contacts+ address book; it doesn't push changes to Gmail, Outlook, or other platforms. If you want bi-directional sync, use Contacts+ native integrations or a separate automation tool. The MCP is for letting AI agents query and update your Contacts+ data, not for mirroring it elsewhere.
How is this different from using the Contacts+ API directly?
The Contacts+ API requires you to write code, manage OAuth tokens, and handle pagination and etag concurrency yourself. The MCP wraps those details into thirteen natural-language tools that any AI agent in Switchy can call. You describe what you want—"find all contacts tagged Sales"—and the agent picks the right tool and parameters without you writing a single HTTP request.
Who on my team should connect this MCP?
Whoever owns the Contacts+ account you want agents to access. Each OAuth connection ties to one user's personal address book. If your team shares a contacts database in a different system, connect that instead. If individuals maintain separate address books in Contacts+, each person connects their own account and agents see only their contacts.