nv_sync_conversation
Sync Sales Navigator conversations for polling by providing the LinkedIn profile URL. Connects via Linked API MCP to automate lead management and messaging tasks.
Instructions
Allows you to sync a conversation in Sales Navigator so you can start polling it. (nv.syncConversation action).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| personUrl | Yes | The LinkedIn URL of the person whose Sales Navigator conversation to sync (e.g., 'https://www.linkedin.com/in/john-doe') |
Implementation Reference
- src/tools/nv-sync-conversation.ts:7-32 (handler)The NvSyncConversationTool class implements the 'nv_sync_conversation' MCP tool. It extends OperationTool, setting the name, operationName for the LinkedAPI nvSyncConversation operation, Zod schema for input validation, and the tool metadata via getTool(). The execution logic is provided by the parent OperationTool.execute() method, which invokes the underlying library operation.export class NvSyncConversationTool extends OperationTool<TNvSyncConversationParams, unknown> { public override readonly name = 'nv_sync_conversation'; public override readonly operationName = OPERATION_NAME.nvSyncConversation; protected override readonly schema = z.object({ personUrl: z.string(), }); public override getTool(): Tool { return { name: this.name, description: 'Allows you to sync a conversation in Sales Navigator so you can start polling it. (nv.syncConversation action).', inputSchema: { type: 'object', properties: { personUrl: { type: 'string', description: "The LinkedIn URL of the person whose Sales Navigator conversation to sync (e.g., 'https://www.linkedin.com/in/john-doe')", }, }, required: ['personUrl'], }, }; } }
- Zod schema for input validation: requires 'personUrl' as string.protected override readonly schema = z.object({ personUrl: z.string(), });
- src/utils/linked-api-tool.ts:36-58 (helper)Base OperationTool class providing the execute method that resolves the operation by name from LinkedApi instance and executes it with progress tracking using executeWithProgress.export abstract class OperationTool<TParams, TResult> extends LinkedApiTool<TParams, TResult> { public abstract readonly operationName: TOperationName; public override execute({ linkedapi, args, workflowTimeout, progressToken, }: { linkedapi: LinkedApi; args: TParams; workflowTimeout: number; progressToken?: string | number; }): Promise<TMappedResponse<TResult>> { const operation = linkedapi.operations.find( (operation) => operation.operationName === this.operationName, )! as Operation<TParams, TResult>; return executeWithProgress(this.progressCallback, operation, workflowTimeout, { params: args, progressToken, }); } }