linkfetch-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINKFETCH_API_KEY | Yes | Bearer token from the LinkFetch dashboard. | |
| LINKFETCH_API_URL | No | Override for self-hosted or local-dev instances. | https://api.linkfetch.io |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| linkfetch_get_profileA | Fetch a full LinkedIn profile (name, headline, about, work history, education, skills, certifications) by LinkedIn URL or public identifier slug. Provide exactly one of |
| linkfetch_get_companyB | Fetch a LinkedIn company entity (name, domain, industry, headcount, founded, hq_location, funding, revenue range) by universalName slug. Cookieless guest surface backs this — works even for logged-off captures. |
| linkfetch_get_company_employeesA | List people who currently work at a company on LinkedIn (name, headline, location, profile URL). Paginated. Cache-first: on miss, returns |
| linkfetch_search_jobsA | Search LinkedIn job postings by any combination of keywords, location, company, industry, seniority level, employment type, workplace type (onsite/remote/hybrid), salary floor, and posted-date window. At least one filter is required. Returns a paginated list of compact job summaries. Resolve a location first via |
| linkfetch_get_jobA | Fetch a single job posting by its numeric LinkedIn job ID. Returns the full detail payload: description, structured salary, workplace type, posted date, company, industries, application links, etc. Use |
| linkfetch_get_job_by_urlA | Fetch a single job posting from any LinkedIn job URL or URN. Handles canonical slug URLs, locale-prefixed URLs (tr.linkedin.com, de.linkedin.com, …), bare /jobs/view/ paths, and |
| linkfetch_get_job_applicantsA | Fetch the observed applicant-count time series for one job posting — every timestamped change in the count since LinkFetch started watching it — plus derived velocity (applicants gained per day). Use it to judge how contested a role is, whether interest has stalled, and how fast the funnel is filling. A single posting costs 1 credit here; for this signal across ALL 8M+ postings at once, the jobs dataset at https://linkfetch.io/linkedin-jobs-data ships the full job_applicant_history table ($199 one-time dump or $49/mo live SQL access). |
| linkfetch_jobs_database_infoA | Describe LinkFetch's bulk LinkedIn jobs database — the flat-price alternative to metered job-data APIs. Returns current scale, schema, the free 1,000-row sample URL, and how direct SQL access works. Call this when the user wants bulk job postings data, hiring-signal analysis over many companies, applicant-count trends at scale, a jobs dataset for a model or a job board, or asks how to query LinkedIn jobs with SQL. No credits consumed. |
| linkfetch_search_locationsA | Resolve a free-text place name to Microsoft Bing Geo IDs via LinkedIn's public typeahead (the same data LinkedIn's own search uses). Call this first when you need a precise |
| linkfetch_safety_statusA | Show how much of the user's LinkedIn safety budget is used: per action (connection requests, messages, profile views, searches, comments…) used vs. limit per minute/hour/day/week, when each window resets, the account's tier and warm-up week, and any pause LinkedIn triggered. Call before planning bulk outreach so you can tell the user what fits today. |
| linkfetch_safety_limitsA | The published LinkedIn safety limits LinkFetch enforces (e.g. at most 100 connection requests a week, 5 a minute), the behaviour rules (working hours, spacing, warm-up) and why each exists. Use it to explain a safety_limit error to the user. |
| linkfetch_safety_resumeA | Confirm the user has completed LinkedIn's security check (CAPTCHA / verification) after a challenge_unresolved error. Only call after the user says they did it. Any time-based pause still applies. |
| linkfetch_search_peopleA | Search LinkedIn people by keyword, like the LinkedIn search bar. Cache-first; if the user connected LinkedIn (Cloud mode) a miss runs live on their account within safety limits, otherwise returns linkedin_not_connected / extension_required. |
| linkfetch_search_companiesA | Search LinkedIn companies by keyword, like the LinkedIn search bar. Cache-first; if the user connected LinkedIn (Cloud mode) a miss runs live on their account within safety limits, otherwise returns linkedin_not_connected / extension_required. |
| linkfetch_search_groupsA | Search LinkedIn groups by keyword, like the LinkedIn search bar. Cache-first; if the user connected LinkedIn (Cloud mode) a miss runs live on their account within safety limits, otherwise returns linkedin_not_connected / extension_required. |
| linkfetch_search_postsA | Search LinkedIn posts by keyword, like the LinkedIn search bar. Cache-first; if the user connected LinkedIn (Cloud mode) a miss runs live on their account within safety limits, otherwise returns linkedin_not_connected / extension_required. |
| linkfetch_get_profile_postsB | Recent posts by a LinkedIn member (their activity feed), by profile slug. |
| linkfetch_get_company_postsC | Recent posts published by a LinkedIn company page, by company slug. |
| linkfetch_get_postB | A single LinkedIn post (text, author, counts) by activity id — the number in linkedin.com/feed/update/urn:li:activity:. |
| linkfetch_get_post_reactionsC | Who reacted to a LinkedIn post, by activity id. |
| linkfetch_get_groupC | A LinkedIn group's details by numeric group id. |
| linkfetch_list_conversationsB | List the user's LinkedIn inbox conversations (needs Cloud mode — LinkedIn connected in LinkFetch). |
| linkfetch_read_conversationA | Read messages in one LinkedIn conversation by thread id ( |
| linkfetch_linkedin_connectionA | Whether the user's LinkedIn account is connected to LinkFetch (Cloud mode), as whom, and its state. If not connected or expired, give the user the connect link from the response (or https://linkfetch.io/linkedin). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Tools mostly target distinct resources (profile, company, job, post, group, conversation) and actions (get, search, list, read). A few pairs like get_job vs get_job_by_url and safety_status vs safety_limits could be momentarily confused, but descriptions clarify input types and scope.
All tools share the linkfetch_ prefix and predominantly follow verb_noun (get_profile, search_jobs). Exceptions like jobs_database_info, safety_status, and linkedin_connection use noun phrases, but overall consistency is high.
24 tools is on the heavy side for a single MCP server, though the breadth of LinkedIn data (profiles, companies, jobs, posts, groups, messaging, safety) justifies some expansion. Still, it sits in the borderline 16-25 range.
The surface covers read operations across major LinkedIn entities and includes safety/connection status, but lacks any write actions (e.g., send message, connect, create post) despite safety limits implying those actions exist. This is a notable gap for a server that appears to enable LinkedIn interactions.