Skip to main content
Glama
horizonbymuneeb

linkedin-mcp-pro

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LI_ATNoLinkedIn li_at cookie value
JSESSIONIDNoLinkedIn JSESSIONID cookie value
LI_AT_FILENoPath to file containing LinkedIn li_at cookie
WARMUP_ENABLEDNoEnable warmup modetrue
JSESSIONID_FILENoPath to file containing LinkedIn JSESSIONID cookie
DAILY_LIMIT_POSTSNoDaily limit for posts2
BUSINESS_HOURS_ENDNoEnd hour for business hours (UTC)20
BUSINESS_HOURS_STARTNoStart hour for business hours (UTC)9
DAILY_LIMIT_CONNECTION_REQUESTSNoDaily limit for connection requests20

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_my_profileA

Get the authenticated user's LinkedIn profile (name, headline, summary, current position).

get_person_profileA

Get a LinkedIn member's profile by their public identifier (vanity name).

search_peopleB

Search for LinkedIn members by keyword, with optional location and company filters.

search_jobsC

Search for jobs by keyword, with optional location and experience filters.

get_job_detailsA

Get full details for a specific job posting by its ID.

search_companiesC

Search for LinkedIn company pages by keyword.

get_company_profileC

Get a LinkedIn company page profile.

get_company_employeesC

List employees at a company from the /people/ page.

get_feedC

Get recent posts from your home feed.

get_inboxC

List recent conversations from your LinkedIn messaging inbox.

get_conversationA

Read a specific messaging conversation by participant public ID or thread URN.

get_pending_invitationsA

List sent connection invitations awaiting response.

send_connection_requestA

Send a connection request to a LinkedIn member, with optional personalized note. Subject to daily quota (default 20), warm-up ramp, business hours, and jitter. Set dry_run=true to preview without sending.

create_postA

Publish a new LinkedIn post (text + optional local image/video file). Subject to daily quota (default 2), warm-up, business hours, jitter. Set dry_run=true to preview.

delete_postA

Permanently delete one of your own posts by URL or URN.

comment_on_postB

Post a comment on a LinkedIn post (by URL or URN).

react_to_postC

Add a reaction (like, celebrate, insightful, etc.) to a post.

send_messageC

Send a direct message to a LinkedIn member you're connected with.

accept_invitationC

Accept an incoming connection invitation.

decline_invitationB

Decline an incoming connection invitation.

withdraw_invitationB

Withdraw a sent (still pending) connection invitation.

list_templatesA

List all saved LinkedIn post templates (name, description, tags). Templates live in ~/.linkedin-mcp/templates/ by default; override with LINKEDIN_MCP_TEMPLATES_DIR.

get_templateA

Return one template's full YAML document (name, body, tags, default_vars).

render_templateA

Render a template's body with the given variables. Built-in variables {date}, {time}, {day_of_week}, {week_number}, {month}, {year} are auto-filled. With strict=true, missing variables raise an error instead of being left verbatim.

save_templateA

Create or overwrite a post template. Body may contain {variable} placeholders. Tags are searchable labels; default_vars are values filled in at render time unless overridden by the caller.

delete_templateC

Delete a saved template by name.

deadman_statusA

Read-only dead-man switch check: last_post_at, days_since, status, should_alert. No side effects, no Telegram call.

deadman_check_and_alertA

Force a dead-man check and send a Telegram alert if status=='alert' and the 24h cooldown has elapsed. Telegram is configured via LINKEDIN_MCP_TELEGRAM_BOT_TOKEN + LINKEDIN_MCP_TELEGRAM_CHAT_ID.

deadman_test_alertA

Send a one-off test Telegram message (bypasses the 24h cooldown) so the operator can verify bot token + chat id are wired up.

list_schedulesA

List all post schedules from ~/.linkedin-mcp/schedule.yaml.

add_scheduleA

Add a new post schedule. Provide one of: cron (5-field), at (ISO datetime), or days+time. Provide either template (name) or text (direct body).

remove_scheduleB

Remove a post schedule by name.

enable_scheduleB

Re-enable a disabled post schedule.

disable_scheduleA

Disable a post schedule (keeps it in the YAML, won't run).

run_due_nowA

Enqueue all currently-due schedules into the action queue. The scheduler worker drains them through SafetyGuard + create_post.

get_daily_statsA

Get today's quota usage for all action types (used / limit / zone).

get_audit_logB

Get the most recent audit log entries (every action, with status and details).

get_post_volumeA

Per-day count of post audits in the last days days (UTC). Days with zero posts are included so the series is dense. Returns {date: count}.

get_post_success_rateB

Roll-up of post outcomes in the last days days: total, success, failed, dry_run, blocked, rate. Read-only.

get_quota_usageA

Today's per-action-type quota usage (raw counts from daily_quotas). Caps are not joined in — use get_daily_stats for cap-aware output.

get_top_posting_hoursA

Distribution of post audits by hour-of-day (0..23, UTC) over the last days days. All 24 hours are present (zero-filled).

get_top_posting_daysA

Distribution of post audits by weekday name (Monday..Sunday) over the last days days. All seven days are present (zero-filled).

get_recent_postsB

Most recent limit post audit rows, newest first. Each row has id, action, target, status, dry_run, detail, created_at.

get_analytics_summaryA

One-call roll-up: success rate, today's quota, top hour, top weekday. Read-only — no LinkedIn calls.

get_safety_statusA

Get the current safety gate status: config, daily/hourly usage, active pauses, cooldowns. All Tier 3 features go through this gate.

set_safety_configB

Update safety config. Pass any subset of: enabled, dry_run, tz, whitelist, blacklist, business_hours_start, business_hours_end, cooldown_min, cooldown_max, like_daily, comment_daily, connect_daily, feed_watch_daily, account_age_days, warmup_days, warmup_multiplier, like_hourly, comment_hourly, connect_hourly, negative_response_threshold, shadowban_pause_hours. Lists (whitelist/blacklist) are replaced entirely.

clear_safety_pauseA

Manually clear any active pauses (negative feedback / shadow-ban). Use this after reviewing and addressing the cause.

poll_feedB

Run a single poll cycle against the feed. Returns what was added, denied, and the safety gate decision.

build_digestC

Build a digest of the last N hours of feed activity (top posts, mentions, keyword alerts, trending, warnings).

get_digest_markdownB

Return the digest as Markdown text (ready to send to Telegram or email).

auto_like_by_keywordB

Search posts by keyword and like them through the safety gate. Defaults to dry-run. Each like is gated by daily quota (default 30/day), hourly quota (5/hr), whitelist/blacklist match, and randomized cooldown. Returns detailed per-post decisions.

auto_comment_by_keywordA

Search posts by keyword and comment on them through the safety gate. VERY HIGH BAN RISK: defaults to 5/day, 1/hour, requires author in 1st-degree network, blocks spam phrases, requires personalized draft. ALWAYS start with dry_run=true.

auto_connect_by_criteriaA

Find people matching criteria and send connection requests through the safety gate. HIGH BAN RISK: defaults to 20/day, 3/hour, requires personalized note (no blank invites), blocks recruiters/agencies by default. ALWAYS start with dry_run=true.

voice_to_draftA

Transcribe an audio file (mp3/m4a/wav/ogg) via Whisper, clean filler words, and produce an AI-drafted LinkedIn post. Returns draft for human review — does NOT post automatically. Requires ffmpeg + faster-whisper on host.

llm_list_providersA

List all configured LLM providers with status (masked keys, last test result).

llm_add_keyC

Add or update an LLM API key.

llm_remove_keyC

Remove an LLM provider's stored key.

llm_test_keyB

Test if a provider's key works (1-token ping).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/horizonbymuneeb/linkedin-mcp-pro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server