MCP Server
MCP Tools
Detailed reference for tools available on the Teamfluence MCP Server
The Teamfluence Model Context Protocol (MCP) Server provides tools allowing connected AI assistants to discover workspaces, inspect team/integration health, query and update leads, and manage LinkedIn networking campaigns and connections.
Note
The list below represents the currently available MCP tools. The toolset will continue to expand based on user feedback and feature requests.
Info
Every tool except list_available_workspaces requires a workspace_name parameter. Call list_available_workspaces first to discover the exact workspace name string to pass to subsequent tool calls.
Workspace Discovery
list_available_workspaces
Lists all workspaces available to the authenticated user.
- Description: Use this tool to get the workspace name for other MCP tool calls.
- Parameters: None
Example Response
[
{ "workspace_name": "Teamfluence Team", "total_users": 11 },
{ "workspace_name": "Pact", "total_users": 0 }
]describe_workspace
Returns detailed information about a workspace, including team member counts and LinkedIn integration statuses.
- Description: Get information about current workspace, number of team members and their LinkedIn integration status.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
Response Fields
| Field | Type | Notes |
|---|---|---|
| workspace_name | string | Workspace name |
| total_users | integer | Total number of team members in the workspace |
| users | array | Workspace user objects, see Workspace Endpoints for field details (id, email, first_name, last_name, is_active_seat, integration_status, linkedin_username, followers_count, profile_views_count, last_linkedin_update, profile_picture) |
Leads
fetch_leads
Fetches collected leads from a workspace with support for status filtering, date ranges, company matching, email enrichment status, sorting, and pagination.
- Description: Fetch collected leads with optional category, status and event filtering.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| status | string | No | Filter by lead status: NEW, QUALIFIED, DISQUALIFIED. Omit to return all (excluding discarded) |
| sort_by | string | No | newest_first (default), oldest_first, last_touch_first, last_touch_last, most_engaged_first, least_engaged_first |
| days | integer | No | Rolling date range in days; takes precedence over start_date/end_date if both are provided |
| start_date | string | No | Start date, ISO 8601 YYYY-MM-DD in UTC |
| end_date | string | No | End date, ISO 8601 YYYY-MM-DD in UTC |
| company_public_id | string | No | Filter by company LinkedIn handle or numeric ID |
| post_id | string | No | Filter by originating content post ID. Obtain post IDs from the Content team feed endpoint |
| email_enriched | boolean | No | true for enriched emails only, false for non-enriched only, omit for all leads |
| limit | integer | No | Maximum leads per page (1–50). Default 50 |
| cursor | string | No | Pagination cursor token from a previous response. An invalid cursor returns a 400 error |
Response Structure
| Field | Type | Description |
|---|---|---|
| total | integer | Total count of matching leads |
| has_more | boolean | Whether additional result pages exist |
| cursor | string | null | Cursor token for the next page |
| items | array | List of lead objects, see Lead Item Fields |
get_lead_details
Retrieves the full record for a single lead.
- Description: Retrieve details of a specific lead by its unique identifier.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| lead_id | string | Yes | The unique identifier of the lead. Can be obtained from fetch_leads |
Response Structure
Returns the same lead object described in Lead Item Fields, including crm_id when available.
update_lead
Updates lead attributes such as status, tags, a note, CRM information, and ICP match state.
- Description: Update lead information with optional status, tags, notes, and CRM details.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| lead_id | string | Yes | The unique identifier of the lead to be updated. Can be obtained from fetch_leads or lead details |
| status | string | null | No | NEW, QUALIFIED, or DISQUALIFIED |
| tags | string[] | null | No | Updated list of tags to assign to the lead |
| new_note | string | null | No | Text for a new note added to the lead |
| crm_id | string | null | No | External CRM record identifier |
| crm_contact_url | string | null | No | CRM contact URL |
| is_icp_match | boolean | null | No | ICP match flag |
Note
Unlike the REST PATCH /v2/leads/{lead_id} endpoint, which accepts a note object with an optional note_id to edit an existing note, the update_lead MCP tool only supports adding a new note via new_note.
Networking Campaigns
list_networking_campaigns
Lists all active and draft networking campaigns in a workspace.
- Description: Networking campaign is an automated way to send relation requests in organic fashion with a curated list of contacts and build your network on LinkedIn.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
Response Structure
| Field | Type | Description |
|---|---|---|
| total | integer | Total number of campaigns |
| items | array | Campaign objects, see Campaign Object |
| has_more | boolean | Whether more results are available |
| cursor | string | null | Cursor token for the next page |
show_networking_campaign
Retrieves a networking campaign by its unique identifier.
- Description: Get status, a list of participants among team members, and a list of targeted contacts.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| campaign_id | string | Yes | The unique identifier of the networking campaign |
Response Structure
Returns a single Campaign Object.
add_profiles_to_networking_campaign
Adds new contacts to an existing networking campaign.
- Description: Use this tool to add new contacts to existing networking campaign.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| campaign_id | string | Yes | The unique identifier of the networking campaign |
| profiles | array | Yes | List of profiles to add, see Profile Object |
Profile Object
| Field | Type | Required | Notes |
|---|---|---|---|
| username | string | Yes | LinkedIn username / public handle |
| linkedin_urn | string | null | No | LinkedIn URN identifier |
| first_name | string | null | No | Profile first name |
| last_name | string | null | No | Profile last name |
| string | null | No | Profile email address | |
| crm_id | string | null | No | External CRM record identifier |
Tip
This tool mirrors the REST PUT /v2/networking/campaigns/{campaign_id} endpoint. Each profile requires at minimum a username.
Connections
check_linkedin_connection
Checks if a team member already has a LinkedIn connection with a contact.
- Description: You need to specify either
contact_urnorlead_id.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| team_member_id | string | Yes | ID of the team member. Can be obtained from describe_workspace |
| contact_urn | string | null | No | LinkedIn URN of the contact, format ACoxxxxxxxxxxxx |
| lead_id | string | null | No | ID of the lead |
Response Structure
| Field | Type | Description |
|---|---|---|
| exists | boolean | Whether a LinkedIn connection already exists |
send_linkedin_connection_request
Sends a LinkedIn connection request from a team member to a contact.
- Description: You need to specify either
contact_urnorlead_id.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| team_member_id | string | Yes | ID of the team member sending the request |
| contact_urn | string | null | No | LinkedIn URN of the contact, format ACoxxxxxxxxxxxx |
| lead_id | string | null | No | ID of the lead |
| message | string | null | No | Optional note to include with the request |
Note
Returns an error if lead_id/contact_urn doesn't match any existing LinkedIn contact, or if team_member_id is invalid — matching the REST POST /v2/networking/connections/send endpoint.
send_linkedin_direct_message
Sends a direct message to an existing LinkedIn connection.
- Description: You need to specify either
contact_urnorlead_id.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_name | string | Yes | The name of the workspace |
| team_member_id | string | Yes | ID of the team member sending the message |
| contact_urn | string | null | No | LinkedIn URN of the contact, format ACoxxxxxxxxxxxx |
| lead_id | string | null | No | ID of the lead |
| message | string | Yes | The message text to send |
Note
Returns an error if the LinkedIn user is not yet connected with the team member — use check_linkedin_connection or send_linkedin_connection_request first. This matches the REST POST /v2/networking/connections/direct-message endpoint.
Example AI Client Prompts
Once connected, you can interact with Teamfluence using natural language in your MCP client:
- "List my available workspaces, then show me an overview of the Teamfluence Team workspace and check our team members' LinkedIn connection statuses."
- "Fetch all qualified leads captured in the last 14 days sorted by most engaged."
- "Update lead
lead_98765status to QUALIFIED and add the taghigh-priority." - "List our active networking campaigns and show me the details of the 'Trigify Post Engagers' campaign."
- "Check if Mara is already connected with lead
lead_abc123on LinkedIn, and if not, send her a connection request." - "Send a direct message from Mathias to the contact behind lead
lead_abc123thanking them for connecting."