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

The 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

ParameterDescription
globsSearch terms. Combine role, skills, and location in one string: ["senior iOS engineer Austin"]
ordinalityNetwork depth. ["1st", "2nd"] for your extended network (recommended), ["Global"] only for handle lookups, another person’s network, or team-scoped searches
connectedSocialPathsSearch within a specific person's or team's network. Pass social paths like ["linkedin/username"]
limitNumber of results to return (50-100 recommended)
sourcesSet to ["all"] to search across all platforms
hideViewerAlways set to true to exclude yourself from results
minSignalOptional integer 0–100; filter by minimum viewer-relative signal. Requires viewer context.
sortByrelevance, signal_score, connection_date, or network_distance; the last two require viewer context.
teamDomainScopeOptional team FQDN for plan gates; omit for personal scope.

Example prompts

Find senior product designers in New York in my network
Search my extended network for Rust developers in web3
Who at Coinbase is in my network?
Search our team's network for enterprise sales leaders in fintech

Notes

  • Put location in the globs string rather than as a separate parameter
  • To search a specific company, use the format credentialnames:Verified: companydomain.com in globs
  • Company searches return both current and former employees; filtering by current affiliation is not supported
  • For team-scoped searches, pair with get_team_tool to get team social paths, then pass them as connectedSocialPaths
  • Pagination: results are capped at 100 per call; use offset to page through larger result sets

Warm Intros and Mutuals

get_intro_path_tool

Finds 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

ParameterDescription
connected_social_pathsSocial path(s) for the single target profile, e.g. ["linkedin/username"] or ["profile/abc123"]
limitMax 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_network results under identifiers.social_path or socialPaths.

get_mutuals_tool

Returns mutual 1st-degree connections between you and one or more target profiles. Useful for understanding shared context before a meeting or outreach.

Key parameters

ParameterDescription
connected_social_pathsSocial path(s) for the target profile(s)
limitMax 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)

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

ParameterDescription
company_domainRequired company domain (for example, example.com)
team_limitMax team profiles to return (default 1000)

Typical workflow

  1. Call get_team_tool to get social_paths
  2. Pass those paths as connectedSocialPaths in search_network
  3. Set ordinality: ["Global"] with those connectedSocialPaths for a team network search

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

Lists 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 lists
What lists do I have saved in Icebreaker?

get_list_tool

Reads the members of a specific contact list by list ID. Returns social paths for each member.

Key parameters

ParameterDescription
list_idUUID of the list (get from list_lists_tool)
pagePage number for lists with many members (default 1, up to 1000 members per page)
teamDomainScopeOptional team FQDN; omit for personal lists. No team scope is inferred.

manage_list_tool

Changes 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

ActionRequired fields
createname, social_paths
add_memberslist_id, social_paths
remove_memberslist_id, social_paths
updatelist_id, and any of: name, description, share_state
duplicatelist_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 candidates
Add [person] to my engineering candidates list

Note: System lists (created by Icebreaker) cannot be modified.


Sync and Enrichment

queue_network_sync_tool

Changes state. Queues a LinkedIn, GitHub, or X/Twitter social path for syncing. Queueing is not completion; inspect status separately.

Key parameters

ParameterDescription
social_pathThe graph to sync, e.g. linkedin/username, github/handle, twitter/handle
collaborator_pkidOptional non-empty PKID from get_team_collaborators; only a team admin can queue for a collaborator on that team.
teamDomainScopeOptional 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 LinkedIn
Queue a GitHub sync for my account

queue_network_sync_status_tool

Read-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

ParameterDescription
social_pathSame path used when queuing the sync

Example prompts

Check the status of my LinkedIn sync

enrich_person_tool

Changes 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

ParameterDescription
linkedin_urlFull 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

Changes state. Triggers enrichment for a company by LinkedIn URL. Useful for pulling firmographic data on a target account.

Key parameters

ParameterDescription
linkedin_urlFull 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

Retrieves 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

ParameterDescription
social_path_or_linkedin_urlThe 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

Returns 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 profile
What accounts do I have connected?

Sync queue reporting and cancellation

list_network_syncs_tool

Read-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:

ParameterTypeDescription
teamDomainScopestring or nullTeam FQDN; omit for personal scope.
collaborator_pkidstring or nullRaw collaborator PKID or icebreaker/pkid. Listing a collaborator requires a team domain, a team admin on that domain, and a collaborator on that team.
viewerPkidstring or nullOptional viewer-context argument.
statusstring, array of strings, or nullRow filter: single value, comma-separated values, or multiple values. Does not filter aggregate counts.
limitinteger or nullRequested page size; backend maximum 100.
cursorstring or nullCursor 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

Changes 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

Changes 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

Changes 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

Reads 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.

ParameterRequirement
actionRequired: get (read settings) or save (changes state).
list_idRequired team-list UUID.
teamDomainScopeRequired team FQDN for the team list.
enabledOptional boolean/null; required for save. Set false to disable without deleting settings.
text_ruleOptional 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

Changes 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

Changes 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

Returns 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

Takes 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

Takes 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/JkJxvwsEdJFwZxXztw1PG
  • linkedin/username → https://app.icebreaker.xyz/linkedin/username

Did this page help you?