Socket integration
Socket is proposal, pricing and onboarding software for accounting and bookkeeping firms. Read the practice, its clients, leads and pipeline stages, proposals (v1 list, or the paged v2 list with service lines), engagement-letter documents and submitted form responses, and pull the monthly recurring and one-off service reports; create clients and leads, update a lead, move it between pipeline stages and add notes to it. The API documentation route and the Zapier webhook subscribe and unsubscribe routes are not exposed (outgoing webhooks are set in Socket under Settings, Integrations, Outgoing Webhook). Authentication is a personal access token created in Socket under Settings, Integrations, Socket API Keys, sent as Authorization: Bearer; each token is scoped to one practice, carries the scopes chosen at creation (proposals:read, documents:read, clients:read, clients:write, leads:read, leads:write, forms:read) and expires after 12 months.
Say what should happen.
The workflow builds itself.
What you can do with Socket
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Lead, 5 operations
create_leadCreate leadPOSTCreate a lead (with its client and contact) in the practice's pipeline. Fires the lead_created outgoing webhook when one is configured. Requires the leads:write scope.get_leadGet leadGETRetrieve detailed information about a specific lead. Requires the `leads:read` scope.list_leadsList leadsGETRetrieve a list of leads for the authenticated user's practices. Requires the `leads:read` scope.move_lead_to_stageMove lead to stagePATCHMove a lead to one of the practice's open pipeline stages (from list_lead_stages). Won and Lost are reached through the lead's proposal, not here. Requires the leads:write scope.update_leadUpdate leadPATCHUpdate a lead's own details; only the fields you send change. Its client and contact are not editable here; use move_lead_to_stage to change its stage. Requires the leads:write scope.
Client, 3 operations
create_clientCreate clientPOSTCreate a new client with optional primary contact. Requires the `clients:write` scope.get_clientGet clientGETRetrieve detailed information about a specific client. Requires the `clients:read` scope.list_clientsList clientsGETRetrieve a list of clients for the authenticated user's practices. Requires the `clients:read` scope.
Proposal, 3 operations
get_proposalGet proposalGETRetrieve detailed information about a specific proposal. Requires the `proposals:read` scope.list_proposalsList proposalsGETRetrieve a list of proposals for the authenticated user's practices. Requires the `proposals:read` scope.list_proposals_v2List proposals v2GETList one page of the practice's proposals, each version in the requested statuses as its own item, oldest first; add include=lines for service lines. Requires the proposals:read scope.
Document, 2 operations
get_documentGet documentGETRetrieve detailed information about a specific engagement letter document. Requires the `documents:read` scope.list_documentsList documentsGETRetrieve a list of engagement letter documents for the authenticated user's practice. Requires the `documents:read` scope.
Form response, 2 operations
get_form_responseGet form responseGETGet a submitted form response with its answers flattened to labelled values in form order (hidden questions omitted, visible unanswered ones null). Requires the forms:read scope.list_form_responsesList form responsesGETList the practice's submitted form responses, newest submission first; unsubmitted ones are not returned. Requires the forms:read scope.
Practice, 2 operations
get_practiceGet practiceGETRetrieve detailed information about a specific practicelist_practicesList practicesGETRetrieve a list of practices accessible to the authenticated user
Active one off service, 1 operation
get_active_one_off_services_reportGet active one off services reportGETGet one-off service lines with outstanding work (only services billed on completion appear) for the month containing date. Use get_one_off_services_report for all one-off lines. Requires proposals:read.
Active recurring service, 1 operation
get_active_recurring_services_reportGet active recurring services reportGETGet the active recurring services report for the calendar month containing date, one row per service, as returned by Socket. Requires the proposals:read scope.
Active recurring service driver, 1 operation
get_active_recurring_service_drivers_reportGet active recurring service drivers reportGETGet the active recurring service drivers report for the calendar month containing date, rows as returned by Socket. Requires the proposals:read scope.
Active recurring service matrix, 1 operation
get_active_recurring_service_matrix_reportGet active recurring service matrix reportGETGet the active recurring service matrix report for the calendar month containing date, rows as returned by Socket. Requires the proposals:read scope.
Lead note, 1 operation
create_lead_noteCreate lead notePOSTRecord a note against the lead. Requires the `leads:write` scope. The note is attributed to the user the access token belongs to.
Lead stage, 1 operation
list_lead_stagesList lead stagesGETList the practice's pipeline stages in board order, custom stages included. Only stages with isOpen true can be passed to create_lead or move_lead_to_stage. Requires the leads:read scope.
One off service, 1 operation
get_one_off_services_reportGet one off services reportGETGet every one-off service line (billed on acceptance, in advance or on completion) on the proposals relevant to the month containing date, whether or not work remains. Requires proposals:read.
User, 1 operation
get_current_userGet current userGETGet the profile (id, name, email) of the user the access token belongs to. Useful to check the token works.
Use Socket from Claude Code, Cursor or Codex
Connect Socket in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Socket operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Socket
- Create your workspace
Sign up free. Nothing to install.
- Connect Socket once
Add your Socket connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Socket integration FAQ
What can you do with the Socket integration?
LiveContext exposes 25 operations on Socket, covering lead, client, proposal and document.
