# Crispy > LinkedIn MCP server — gives AI agents access to LinkedIn through 105 tools. Crispy is a remote MCP (Model Context Protocol) server that lets AI agents search, message, post, and manage LinkedIn. It works with Claude, Cursor, Windsurf, Cline, n8n, Make, and any MCP-compatible client. ## Endpoint POST https://crispy.sh/api/mcp ## Authentication Authorization: Bearer crispy_... API keys are generated from the Crispy dashboard. Claude.ai uses OAuth instead. ## Tools (89) ### Profile (3) - get_my_profile — Get your own LinkedIn profile - get_profile — View any profile by URL, slug, or provider_id - get_profile_viewers — See who viewed your profile ### Messaging (8) - list_conversations — List LinkedIn conversations - get_messages — Read messages in a conversation - send_message — Send a message in an existing conversation - start_conversation — Start a new conversation - send_inmail — Send an InMail (requires Sales Navigator) - react_to_message — Add an emoji reaction to a message - delete_message — Delete a sent message (within 60 minutes of sending) - delete_chat — Delete an entire conversation ### Network (13) - get_connections — List your connections - send_invitation — Send a connection request - list_pending_invitations — List sent invitations awaiting response - cancel_invitation — Withdraw a pending invitation - list_incoming_invitations — List received connection requests - accept_invitation — Accept a connection request - decline_invitation — Decline a connection request - get_company_profile — Get a company's LinkedIn page - list_accepted_invitations — See which invitations were accepted - add_to_blacklist — Add profile to do-not-contact list - remove_from_blacklist — Remove profile from blacklist - check_blacklist — Check if a profile is blacklisted - set_auto_withdraw — Configure auto-withdrawal of stale invitations ### Content (12) - create_post — Publish a LinkedIn post (with optional scheduling) - get_post — Get a post's details - list_posts — List posts by a profile - react_to_post — React to a post (like, celebrate, etc.) - comment_on_post — Comment on a post or reply to a comment (threaded) - repost_post — Repost someone else's post - list_post_comments — List comments on a post - list_post_reactions — List reactions on a post - get_feed — Get your LinkedIn feed - engage_with_latest_post — React to + optionally comment on someone's latest post - list_scheduled_posts — View pending scheduled posts - cancel_scheduled_post — Cancel a scheduled post ### Search (8) - search_people — Search for people with filters (title, company, location) - search_companies — Search for companies - search_posts — Search posts by keyword - get_search_parameters — Get filter values for searches - save_search — Save search parameters for re-use - list_saved_searches — List saved searches - run_saved_search — Execute a saved search (with cursor memory) - delete_saved_search — Remove a saved search ### Analytics (12) - get_post_analytics — Get metrics for a post (live) - get_cached_post_analytics — Get cached post metrics (faster) - get_top_posts — Get top posts by engagement - get_content_summary — Get content performance summary - get_profile_analytics — Get profile view and follower analytics - get_activity_analytics — Get activity summary - purge_analytics_cache — Clear cached analytics data - get_writing_style — Get your writing style profile - set_style_examples — Provide example posts for style learning - refresh_writing_style — Regenerate style profile from examples - get_comment_reach — Measure reach/ROI of commenting activity - daily_recap — Get a personalized daily briefing with suggested actions ### Campaigns (6) - create_campaign — Create a campaign for tracking outreach - list_campaigns — List all campaigns - archive_campaign — Archive a campaign - update_campaign — Update campaign name, description, or unarchive - delete_campaign — Permanently delete a campaign - get_campaign_stats — Get campaign performance metrics ### Admin (8) - update_account_settings — Update tracking preferences - get_profile_capacity — Get status and daily limits for all accounts - contact_support — Submit a support request - verify_session — Check if LinkedIn session is active - configure_storage — Configure managed, BYOS, or stateless contact storage - start_warm_up — Start gradual limit ramp-up for new accounts - get_warm_up_status — Check warm-up progress - stop_warm_up — End warm-up program early ### Webhooks (6) - list_webhooks — List registered webhooks - create_webhook — Register a new webhook endpoint - update_webhook — Update webhook config - delete_webhook — Remove a webhook - test_webhook — Send a test event to a webhook - get_webhook_deliveries — View recent webhook delivery attempts and status ### Lead Management (6) - search_leads — Search tracked leads/contacts - add_lead — Add a lead to managed storage - update_lead — Update lead status/notes - get_outreach_history — View outreach timeline for a contact - import_contacts — Bulk import contacts from CSV or competitor tools (supports list_id for auto-grouping) - import_blacklist — Bulk import do-not-contact profiles ### Lists (7) - create_list — Create a named contact list - list_lists — List your contact lists with member counts - update_list — Update list name, description, or archive status - delete_list — Permanently delete a list (contacts preserved) - add_to_list — Add contacts to a list by ID or LinkedIn URL - remove_from_list — Remove contacts from a list - get_list_contacts — Get contacts in a list with profile data (paginated) ## Permission Scopes - **full_access** — All 105 tools - **outbound** — Messaging, invitations, search, analytics, campaigns, leads. No content posting. - **content** — Posts, comments, reactions, analytics, campaigns. No messaging. - **read_only** — Read profiles, search, read messages, view analytics. No write actions. ## Safety Limits (daily, per account) | Category | Limit | |----------|-------| | Search | 300/day | | Profile views | 250/day | | Messages | 150/day | | Engagement | 100/day | | Content polling | 50/day | | Invitations | 15/day | | Posts | 10/day | ## Rate Limit Headers Every response includes: - `X-RateLimit-Limit` — daily call limit for this account - `X-RateLimit-Remaining` — calls remaining today - `X-RateLimit-Reset` — Unix timestamp when the limit resets (midnight UTC) - `X-Api-Key` — key prefix (e.g. `crispy_abc123...`) to identify which key is in use ## Built-in Prompts (14) Prompts are guided workflows — users just ask for them by name. No tool knowledge needed. ### Getting started - **get_started** — Personalized onboarding with briefing and suggested actions (run this first) - **account_setup** — One-stop setup: warm-up, writing voice, lead tracking. Walks you through everything. - **daily_recap** — Morning briefing: new connections, messages, accepted invitations, suggested actions ### Outreach & campaigns - **campaign_builder** — The easiest way to run outreach. Checks daily limits, designs a multi-step sequence in your voice, and executes with limit-aware batching. Just tell it your goal. - **outbound_prospecting** — Quick prospecting: find people, review profiles, send invitations - **follow_up_sequence** — Daily outreach loop: welcome new connections, follow up on silence ### Content & engagement - **post_drafter** — Research topic performance, draft posts in 3 formats - **content_engagement** — Find high-engagement posts, draft strategic comments - **weekly_report** — LinkedIn performance report with analytics ### Inbox & network - **inbox_zero** — Check unread, summarize, draft replies in your voice - **network_pulse** — See who's active, find engagement opportunities ### Setup & integrations - **notifications_setup** — Set up alerts for LinkedIn events (Slack, Zapier, Make, or any URL). No technical knowledge needed. - **competitor_intel** — Research competitor's LinkedIn presence and content - **crm_sync** — Push LinkedIn conversations to HubSpot/Salesforce/any CRM with MCP tools ## MCP Resources (4) - crispy://account/info — Account details, scope, Sales Navigator status - crispy://account/usage — Today's usage and safety limits remaining - crispy://tools/list — Tools available under current scope - crispy://account/writing-style — AI-generated messaging and posting style guides ## Webhook Events (29) HMAC-SHA256 signed. Configure via create_webhook. **Outreach:** invitation.sent, invitation.cancelled, invitation.accepted_by_us, invitation.declined_by_us, invitation.received, invitation.accepted, invitation.auto_withdrawn **Messaging:** message.sent, inmail.sent, message.received **Content:** post.published, post.reacted, post.commented, post.milestone, post.trending **Account:** account.connected, account.disconnected, profile.views_spike, profile.viewed_back, safety_limit.reached, usage.daily_summary **Billing:** billing.subscription_changed, billing.payment_failed, billing.payment_succeeded **Organization:** org.member_added, org.member_removed **Workspace:** workspace.created, workspace.member_added, workspace.member_removed ## Pricing - One plan: $49/seat/mo (or $39/seat/mo billed annually, $468/yr) - Per connected LinkedIn profile. All 105 tools included. No API call limits (LinkedIn safety limits apply per account). ## Links - Full docs: https://crispy.sh/llms-full.txt - Docs: https://crispy.sh/docs - Dashboard: https://crispy.sh/dashboard - Sign up: https://crispy.sh/signup