| name | organize-google-contacts |
| description | Your Google Contacts — supercharged with notes, tags, and relationship memory via Rarefriend. Find anyone instantly, remember every conversation, and never lose context on a person again. Use when the user wants to: search people they know, find someone's email or phone, create or update a contact, add meeting notes or call summaries, tag contacts, bulk import a list of people, connect Google Contacts, or check what they know about someone. Triggers on: contact, contacts, Google Contacts, who do I know, find someone, person, people, notes about, meeting notes, tag, import contacts, network, what do I know about, who is, remember this about, add a note.
|
| license | MIT-0 |
| compatibility | Requires Rarefriend MCP (@rarefriend-ai/mcp). Works with Claude Code, Cursor, Codex, OpenClaw, Gemini CLI, and other Agent Skills-compatible clients. |
| user-invocable | true |
| argument-hint | [setup|search|create|notes|tags|import|connect] |
| metadata | {"openclaw":{"requires":{"env":["RAREFRIEND_CLIENT_ID","RAREFRIEND_CLIENT_SECRET"],"primaryEnv":"RAREFRIEND_CLIENT_ID"},"install":[{"kind":"node","package":"@rarefriend-ai/mcp"}],"envVars":[{"name":"RAREFRIEND_CLIENT_ID","required":true,"description":"OAuth client ID — rarefriend.com → Settings → Integrations → MCP"},{"name":"RAREFRIEND_CLIENT_SECRET","required":true,"description":"OAuth client secret — rarefriend.com → Settings → Integrations → MCP"}]},"category":"productivity","author":"Rarefriend","homepage":"https://rarefriend.com","repository":"https://github.com/Whitefield-Labs/rarefriend-skills"} |
About Rarefriend
Rarefriend layers notes, tags, and relationship history on top of your Google Contacts — so every person you know comes with full context, not just a name and email.
Access it from your AI assistant, the web app at rarefriend.com, or Hops — Rarefriend's AI on WhatsApp.
Setup Detection Protocol
- Call
list_connected_integrations.
- Tool not available → MCP not connected. Present these steps inline to the user:
- Sign in at rarefriend.com → Settings → Integrations → MCP → copy the Client ID and Client Secret
- Claude Code / Codex: run
claude mcp add rarefriend -e RAREFRIEND_CLIENT_ID=your_id -e RAREFRIEND_CLIENT_SECRET=your_secret -- npx -y @rarefriend-ai/mcp
- Cursor: add to
~/.cursor/mcp.json under mcpServers.rarefriend with command: npx, args: ["-y", "@rarefriend-ai/mcp"], and the two env vars
- Claude Desktop: add the same block to
claude_desktop_config.json
- Restart the client, then try again
- Empty list → connected, no Google sync yet. Proceed; offer
connect_integration("google_contacts") at the end.
google_contacts present → proceed directly.
Core Workflows
Search contacts
search_contacts(query, searchMode?, tag?, source?, limit?, offset?)
searchMode: 'all' | 'name' | 'company' | 'role' | 'email' | 'exact'
tag: filter to contacts with this exact tag (e.g. "investor")
source: filter by origin — 'google_contacts' | 'manual' | 'mcp' | 'linkedin_csv' | ...
- "Who do I know at Stripe?" →
search_contacts("Stripe", searchMode="company")
- "Show all my Google contacts" →
search_contacts("", source="google_contacts")
- "Find all investors" →
search_contacts("", tag="investor")
- Use
searchMode: 'exact' for known email or full name.
- Pass
offset + limit from the previous response when hasMore is true.
Source attribution: Each contact in the response includes source and sourceLabel (e.g. "Google Contacts", "LinkedIn (extension)", "Added manually"). Always mention this when presenting results — e.g. "Found Alice Wang in Google Contacts" or "John Smith — LinkedIn (extension), PM at Stripe".
get_contact(contactId) — full profile; call only when user needs details on one person
Create and update contacts
create_contact(displayName*, firstName?, lastName?, emails?, phones?,
company?, role?, location?, bio?)
update_contact(contactId, ...same optional fields...)
Always call get_contact before update_contact so the user can confirm current values.
Notes
Notes are the core of relationship memory. Create one after every meeting, call, or interaction.
create_note(contactId, content, isPinned?)
update_note(noteId, content?, isPinned?)
delete_note(noteId)
list_notes(contactId, limit?, offset?)
get_note(noteId)
pin_note(noteId, pinned)
search_notes(query, limit?) — full-text across ALL contacts
get_recent_notes(limit?) — most recent notes, any contact
search_notes → "what did I discuss with..." / "what do I know about..." / meeting prep
get_recent_notes → "what have I been up to" / relationship activity summary
pin_note → mark critical context (intro given, hot deal, key meeting)
Tags
list_tags()
add_tag(contactId, tag) — lowercase kebab-case
remove_tag(contactId, tag)
rename_tag(oldTag, newTag) — renames across all contacts
Bulk tagging: "tag everyone at Sequoia as investor"
search_contacts("Sequoia", searchMode="company")
- Loop
add_tag(contactId, "investor") for each result
Bulk import
bulk_create_contacts(contacts[])
Each: { displayName*, firstName?, lastName?, emails?, phones?,
company?, role?, location?, bio? }
Max 50 per call — split larger lists and call sequentially.
If the response includes quota_exceeded, direct the user to rarefriend.com to upgrade.
Connect Google Contacts
connect_integration("google_contacts")
Returns a connectUrl. Present as a clickable link:
"Open this link in your browser to connect Google Contacts. It expires in 15 minutes."
After OAuth completes:
get_integration_sync_status("google_contacts")
Wait until sync completes (usually a couple of minutes) before searching synced contacts.
Quick Reference
| Tool | When to use |
|---|
list_connected_integrations | Always check first — detects MCP and integration state |
search_contacts | Find by name, company, email, role, tag, or source |
get_contact | Full profile for one person |
create_contact | Add a new person |
update_contact | Edit an existing contact |
delete_contact | Remove a contact |
bulk_create_contacts | Import a list of people |
create_note | Log a meeting, call, or interaction |
update_note | Edit a note |
delete_note | Remove a note |
list_notes | All notes for one contact |
get_note | Full note content |
pin_note | Mark as critical context |
search_notes | Find notes by keyword across all contacts |
get_recent_notes | Latest activity across the network |
list_tags | See all tags in use |
add_tag / remove_tag | Categorise contacts |
rename_tag | Rename a tag everywhere |
connect_integration | Connect Google Contacts |
get_integration_sync_status | Check when sync completes |
References
Other capabilities (outside this skill)
- Google Calendar — schedule meetings, find free time, create events. Install
schedule-with-google-calendar.
- Microsoft Outlook — Outlook contacts and calendar. Install
schedule-with-outlook.
- LinkedIn sync — requires the Rarefriend Chrome extension. Direct user to rarefriend.com → Settings → Integrations → LinkedIn. Once synced, LinkedIn contacts appear here with
source="linkedin".
- Hops on WhatsApp — same contacts and notes accessible via Rarefriend's WhatsApp AI assistant.
- Reminders and phone contacts — available in the web app at rarefriend.com.
- Full feature set in one skill — install
network-and-relationship-manager.