Available Tools
Reference for all 24 Icebreaker MCP tools, including scope, permissions, state changes, parameters, and examples.
The Icebreaker MCP server exposes 24 tools. Connect via OAuth; access depends on your account, selected team, role, and plan. Check get_entitlements_tool for plan limits.
Scope: For tools that accept teamDomainScope, omit it for personal scope and pass a team FQDN (for example, example.com) for team scope. Follow each tool’s scope requirements below; do not assume team scope is inferred. Viewer context comes from the signed-in session.
State changes: Search and status tools read data. Queue, cancellation, enrichment, list-editing, collaborator, upload, and monitor-save tools change state; collaborator tools also send email. Request approval before those actions where your client requires it.
Search
search_network
search_networkThe core search tool. Searches across your synced professional network by role, skill, location, company, or any combination. Results are drawn from your synced LinkedIn, GitHub, and X/Twitter connections.
Key parameters
| Parameter | Description |
|---|---|
globs | Search terms. Combine role, skills, and location in one string: ["senior iOS engineer Austin"] |
ordinality | Network depth. ["1st", "2nd"] for your extended network (recommended), ["Global"] only for handle lookups, another person’s network, or team-scoped searches |
connectedSocialPaths | Search within a specific person's or team's network. Pass social paths like ["linkedin/username"] |
limit | Number of results to return (50-100 recommended) |
sources | Set to ["all"] to search across all platforms |
hideViewer | Always set to true to exclude yourself from results |
minSignal | Optional integer 0–100; filter by minimum viewer-relative signal. Requires viewer context. |
sortBy | relevance, signal_score, connection_date, or network_distance; the last two require viewer context. |
teamDomainScope | Optional team FQDN for plan gates; omit for personal scope. |
Example prompts
Find senior product designers in New York in my networkSearch my extended network for Rust developers in web3Who at Coinbase is in my network?Search our team's network for enterprise sales leaders in fintechNotes
- Put location in the
globsstring rather than as a separate parameter - To search a specific company, use the format
credentialnames:Verified: companydomain.cominglobs - Company searches return both current and former employees; filtering by current affiliation is not supported
- For team-scoped searches, pair with
get_team_toolto get team social paths, then pass them asconnectedSocialPaths - Pagination: results are capped at 100 per call; use
offsetto page through larger result sets
Warm Intros and Mutuals
get_intro_path_tool
get_intro_path_toolFinds who in your direct network can introduce you to a specific person. Results are sorted by signal score, so the strongest connector surfaces first. Use this after finding a target in search_network.
Key parameters
| Parameter | Description |
|---|---|
connected_social_paths | Social path(s) for the single target profile, e.g. ["linkedin/username"] or ["profile/abc123"] |
limit | Max connectors to return (default 50) |
Example prompts
Who can intro me to the Head of Engineering at Stripe?Find a path to [LinkedIn URL]Notes
- Use for one target at a time. For multiple targets, call the tool separately for each person.
- Social paths are returned in
search_networkresults underidentifiers.social_pathorsocialPaths.
get_mutuals_tool
get_mutuals_toolReturns mutual 1st-degree connections between you and one or more target profiles. Useful for understanding shared context before a meeting or outreach.
Key parameters
| Parameter | Description |
|---|---|
connected_social_paths | Social path(s) for the target profile(s) |
limit | Max mutuals to return (default 50) |
Example prompts
What connections do I share with [person]?Who do I know in common with [LinkedIn URL]?Team Network
get_team_tool (Teams)
get_team_tool (Teams)Returns social paths for verified members and collaborators of the specified team. Use this to get the list of paths needed to run a team-scoped search_network query.
Key parameters
| Parameter | Description |
|---|---|
company_domain | Required company domain (for example, example.com) |
team_limit | Max team profiles to return (default 1000) |
Typical workflow
- Call
get_team_toolto getsocial_paths - Pass those paths as
connectedSocialPathsinsearch_network - Set
ordinality: ["Global"]with thoseconnectedSocialPathsfor a team network search
get_team_collaborators (Teams)
get_team_collaborators (Teams)Returns collaborators only, including profile information and social paths. Requires company_domain; optional team_limit defaults to 1000 (range 1–10000). Use a returned non-empty pkid when queueing on behalf of a collaborator. If it is absent, do not queue: omitting collaborator_pkid would target the signed-in user.
Contact Lists
list_lists_tool
list_lists_toolLists your personal contact lists when teamDomainScope is omitted. Pass teamDomainScope explicitly to list a team’s contact lists. Member paths are returned by get_list_tool, not this tool.
Example prompts
Show me my contact listsWhat lists do I have saved in Icebreaker?get_list_tool
get_list_toolReads the members of a specific contact list by list ID. Returns social paths for each member.
Key parameters
| Parameter | Description |
|---|---|
list_id | UUID of the list (get from list_lists_tool) |
page | Page number for lists with many members (default 1, up to 1000 members per page) |
teamDomainScope | Optional team FQDN; omit for personal lists. No team scope is inferred. |
manage_list_tool
manage_list_toolChanges state. Creates a new list, adds or removes members, updates its name, description, or sharing settings, or duplicates a readable list into a team. List editing and duplication require Starter or higher.
Actions
| Action | Required fields |
|---|---|
create | name, social_paths |
add_members | list_id, social_paths |
remove_members | list_id, social_paths |
update | list_id, and any of: name, description, share_state |
duplicate | list_id, teamDomainScope; optional name |
teamDomainScope is optional on create and required on duplicate. Duplication creates a one-time copy owned by you in the selected team; it does not track later source changes. description is optional on create/update; share_state defaults to private on create.
Share states: private, share_with_team, share_with_all
Example prompts
Create a list called "SF Fintech Engineers" with these candidatesAdd [person] to my engineering candidates listNote: System lists (created by Icebreaker) cannot be modified.
Sync and Enrichment
queue_network_sync_tool
queue_network_sync_toolChanges state. Queues a LinkedIn, GitHub, or X/Twitter social path for syncing. Queueing is not completion; inspect status separately.
Key parameters
| Parameter | Description |
|---|---|
social_path | The graph to sync, e.g. linkedin/username, github/handle, twitter/handle |
collaborator_pkid | Optional non-empty PKID from get_team_collaborators; only a team admin can queue for a collaborator on that team. |
teamDomainScope | Optional team FQDN; required with collaborator_pkid. Omit both for personal scope. |
Never omit a missing collaborator PKID and proceed: that would queue for the signed-in user. Resolve a name to a supported social path first; ask for confirmation if the match is unclear.
Example prompts
Sync my LinkedInQueue a GitHub sync for my accountqueue_network_sync_status_tool
queue_network_sync_status_toolRead-only. Checks queue status for a social path without starting, queueing, or canceling a sync. Use the same social_path, teamDomainScope, and collaborator_pkid as the original queue request. Omit team scope for personal syncs; a supplied domain requires access to that team.
Key parameters
| Parameter | Description |
|---|---|
social_path | Same path used when queuing the sync |
Example prompts
Check the status of my LinkedIn sync
enrich_person_tool
enrich_person_toolChanges state. Triggers enrichment for a person by LinkedIn URL. Returns a success confirmation. Enrichment runs asynchronously. Use get_enrichment_result_tool after 30-60 seconds to retrieve results.
Key parameters
| Parameter | Description |
|---|---|
linkedin_url | Full URL (https://www.linkedin.com/in/username/), partial URL, or LinkedIn username |
Example prompts
Enrich [LinkedIn URL]Get contact info for [person's name]Use optional teamDomainScope for team enrichment; omit for personal scope. Retrieve the result with the same scope so teammates can access the team-scoped enrichment.
Note: If you only have a name, use search_network first to find the LinkedIn profile, then pass the URL to this tool.
enrich_company_by_linkedin_tool
enrich_company_by_linkedin_toolChanges state. Triggers enrichment for a company by LinkedIn URL. Useful for pulling firmographic data on a target account.
Key parameters
| Parameter | Description |
|---|---|
linkedin_url | Full URL, partial URL, or company slug (e.g. anthropic or linkedin.com/company/anthropic) |
Company enrichment also accepts optional teamDomainScope (omit for personal scope). After asynchronous processing, use search_network with the company domain to find people; get_enrichment_result_tool is the person-result tool.
get_enrichment_result_tool
get_enrichment_result_toolRetrieves status or results of a person enrichment. Use the same optional teamDomainScope as the original enrichment. Emails, phone numbers, and extended fields depend on the plan and availability; do not assume every field is present.
Key parameters
| Parameter | Description |
|---|---|
social_path_or_linkedin_url | The same social path or LinkedIn URL used to trigger enrichment |
Note: Person enrichment is asynchronous. Wait 30–60 seconds after calling enrich_person_tool before checking results.
Profile
lookup_viewer_tool
lookup_viewer_toolReturns your own profile and connected social profiles, including linked accounts. Check linked accounts before prompting a user to connect them. Optional save_locally (boolean, default true) controls whether the server keeps its own copy of the result.
Example prompts
Show me my Icebreaker profileWhat accounts do I have connected?Sync queue reporting and cancellation
list_network_syncs_tool
list_network_syncs_toolRead-only. Lists your sync queue entries, with paginated rows and aggregate counts. Counts ignore any status filter. For one known social path, use queue_network_sync_status_tool instead.
All parameters are optional and default to null:
| Parameter | Type | Description |
|---|---|---|
teamDomainScope | string or null | Team FQDN; omit for personal scope. |
collaborator_pkid | string or null | Raw collaborator PKID or icebreaker/pkid. Listing a collaborator requires a team domain, a team admin on that domain, and a collaborator on that team. |
viewerPkid | string or null | Optional viewer-context argument. |
status | string, array of strings, or null | Row filter: single value, comma-separated values, or multiple values. Does not filter aggregate counts. |
limit | integer or null | Requested page size; backend maximum 100. |
cursor | string or null | Cursor from a previous response’s nextCursor. |
Start without a cursor. Pass a returned nextCursor as the next request’s cursor, keeping the same scope and filters. Continue while another cursor is provided.
Example: “Show my network sync queue and aggregate counts without starting or changing syncs.”
cancel_network_sync_tool
cancel_network_sync_toolChanges state. Removes one pending sync by queue row ID. Required queue_entry_id is sync.id from that job’s queue or status response; optional viewerPkid defaults to null. Only syncs you requested or queued can be canceled. An admin role alone does not authorize canceling someone else’s job.
If the ID is unknown, read status with the original social path and scope first. If sync is null, there is nothing to cancel. Call once per ID, never with a batch or social path in place of the ID.
deleted: pending sync removed.reverted: pending sync removed and the previous completed result kept.- HTTP 400: no longer waiting; not canceled. Do not retry a processing row.
- HTTP 409: retry the same ID once.
- HTTP 401: caller may only cancel jobs they requested or queued.
- Timeout: check status before retrying, because cancellation may already have completed.
Example: “Cancel the pending sync I selected, using its queue ID.”
Team collaborators
invite_team_collaborator
invite_team_collaboratorChanges state and sends email. Sends a pending collaborator invitation for a team. Requires email and teamDomainScope; optional viewerPkid defaults to null. The acting user must be a team admin or collaborator; the team needs Starter or higher. This does not promote an existing platform user, grant admin access, or remove members.
For a paid-team external profile that is domain-verified or in your first-degree network, use make_team_collaborator when you know the email. Otherwise use this invitation path.
Example: “Invite the person I selected as a collaborator on example.com, using the email I provide.”
make_team_collaborator
make_team_collaboratorChanges state and sends email. Immediately creates a collaborator account from an external profile and sends the made-collaborator email. Requires email, profileID (the Icebreaker profile route ID), and teamDomainScope; optional viewerPkid defaults to null.
The acting viewer must be an admin or collaborator on a Starter-or-higher team. The target must be a non-platform profile that is domain-verified for the team or in the viewer’s first-degree network. Flagged profiles and existing platform users are rejected, except an email already belonging to an admin/collaborator succeeds without adding a duplicate. Use invite_team_collaborator for someone outside those eligibility conditions.
Example: “Make the eligible external profile I selected a collaborator on example.com, using the email I provide.”
List activity monitors
manage_list_monitor_tool
manage_list_monitor_toolReads or saves the shared daily-activity email monitor for a team list. There is one monitor per list. Requires Starter+ Lists entitlement and permission to manage list members. Personal lists are not supported.
| Parameter | Requirement |
|---|---|
action | Required: get (read settings) or save (changes state). |
list_id | Required team-list UUID. |
teamDomainScope | Required team FQDN for the team list. |
enabled | Optional boolean/null; required for save. Set false to disable without deleting settings. |
text_rule | Optional string/null; plain-language filter. Omit or leave empty to include every matching update. |
Saving upserts settings. Digests use the existing daily job, around 9 AM ET, and go to the viewer’s account email. Enabling a monitor does not start a new LinkedIn scrape.
Example: “Show the monitor settings for the team list I selected.” To change them: “Enable a daily activity email for that list, filtered to product launches.”
Connections CSV imports
upload_self_connections_csv
upload_self_connections_csvChanges state when uploading. Imports your own LinkedIn Connections.csv onto your connected, verified LinkedIn account. All parameters are optional: csv_text (string/null), teamDomainScope (string/null), and viewerPkid (string/null), each defaulting to null.
Pass csv_text only if the full file is already available as text. Otherwise omit it, give the user the returned upload_url, and ask them to open it and choose the Connections.csv file. Do not ask them to paste the CSV. teamDomainScope scopes the completed sync to that team.
Example: “Give me an upload link for my LinkedIn Connections.csv.”
upload_team_member_connections_csv
upload_team_member_connections_csvChanges state when uploading. Imports a member’s Connections.csv onto that member’s LinkedIn network. Intended for an admin or collaborator on a paying team who has that person’s CSV.
Requires target_social_path (must begin linkedin/) and teamDomainScope. Obtain the member’s LinkedIn path with get_team_collaborators. Optional csv_text and viewerPkid default to null.
If the full CSV is not already available as text, omit csv_text and give the user the returned upload_url to choose the file. Do not ask them to paste it.
Example: “Give me a Connections.csv upload link for the team member I selected.”
Plan and onboarding guidance
get_entitlements_tool
get_entitlements_toolReturns plan, subscription status, and per-feature limits. Optional teamDomainScope (string/null, default null) inspects a team; omit for personal scope. If the returned company_domain is a hostname, use it on subsequent scoped tools unless the user chose a different team or personal scope.
Example: “What does my Icebreaker plan include?”
get_server_instructions
get_server_instructionsTakes no arguments. Returns the search-first guide: when to search, inspect linked accounts, offer onboarding, and present results. Useful when a client cannot access MCP prompts or resources.
Example: “Show the Icebreaker search-first instructions.”
get_started
get_startedTakes no arguments. Returns static guidance for connecting accounts, optionally joining a team, and running a first useful search. It is not an MCP installation tool and does not start a sync. Use when the user asks how to get started, after no linked accounts are found, or after a successful search returns no results. Do not call it before trying search when accounts may already be linked.
Example: “How do I get started using my network in Icebreaker?”
Response format
All search results include a profile_url field. Always use this as the link to a profile. If profile_url is absent, build it from omni_profile.social_name:
profile/JkJxvwsEdJFwZxXztw1PG→https://app.icebreaker.xyz/profiles/JkJxvwsEdJFwZxXztw1PGlinkedin/username→https://app.icebreaker.xyz/linkedin/username
Updated 2 days ago