io.github.linkedmash/linkedmash
LinkedIn saved posts MCP server: search saves, draft, schedule, publish, and analyze content.
assessed on 1 of 3 dimensions
https://mcp.linkedmash.com/api/mcpadd_labelsAdd labels to bookmarked posts. Either label_id or label_name must be provided.
cancel_scheduled_postCancel a scheduled post by its schedule id (from a get_queue entry). Requires a paid Creator/Lifetime plan.
create_draftCreate a new LinkedIn post draft in the user's Content Studio. Put the post body text in 'content'. Returns the created draft (with its id) which can later be scheduled or published. Requires a paid Creator/Lifetime plan.
create_smart_folderCreate a smart folder (filtered view) — a saved filter/workflow over the user's saved posts. 'name' is required; 'base_query' is the filter query that defines which posts belong; 'triage_buckets' are optional tabs/stages inside the folder. Returns the created folder (with its slug).
delete_draftDelete (move to trash) a Content Studio draft by its id. Requires a paid Creator/Lifetime plan.
delete_smart_folderDelete a smart folder (filtered view) by its slug. This removes the saved filter/workflow itself — it does NOT delete any saved posts. Use list_smart_folders to find the slug.
forgetDelete a durable user memory by its 'key' (optionally scoped to a 'kind'). Use this when the user asks you to forget something you remembered about them, or to correct an outdated preference/fact before re-adding it with remember.
Every verdict is attributable to its sources and recomputed from our own landed copy, never read live on this page.
get_analyticsGet the user's account-level LinkedIn analytics — impressions, reactions, comments, reshares, members reached and follower growth — over a time window (date_range like '7d', '30d', '90d'). Requires a paid Creator/Lifetime plan.
get_bookmarkGet a single saved LinkedIn post (bookmark) by its post_id — full content, author, media and tags. Use this to read one specific saved post, e.g. before creating content based on it.
get_bookmark_countGet the total count of bookmarks with optional filtering
get_draftGet a single Content Studio post/draft by its id. Requires a paid Creator/Lifetime plan.
get_growth_digestGet the user's GROWTH DIGEST — their positioning, content pillars, authority gaps, ranked what-to-do-next actions (with ready-to-use draft prompts), and this week's numbers (new saves, posts published). USE THIS whenever the user asks what they should post/do next, wants a growth plan or weekly review, or asks how to build authority — then walk them through the top next steps. Requires a paid Creator/Lifetime plan.
get_post_analyticsGet per-post LinkedIn analytics for the user's recently published posts (impressions, engagements, likes, comments, etc.) over a time window. Requires a paid Creator/Lifetime plan.
get_posting_scheduleGet the user's recurring posting schedule — the weekly time-slot grid and timezone that drive 'next-slot' scheduling. Requires a paid Creator/Lifetime plan.
get_posting_slotsGet the next free posting slots from the user's recurring posting schedule (in their timezone). Use a returned slot's timestamp as publish_at when scheduling. Requires a paid Creator/Lifetime plan.
get_queueList the user's posting queue — scheduled and published LinkedIn posts, grouped by date. Optionally filter by status. Each entry includes its schedule id (use it to cancel/reschedule). Requires a paid Creator/Lifetime plan.
get_smart_folderGet one smart folder (filtered view) by its slug — its name, description, filter query (base_query) and tabs (triage buckets). Use list_smart_folders first to find the slug. To read the posts inside, use get_smart_folder_posts.
get_smart_folder_postsList the saved LinkedIn posts inside a smart folder (filtered view). Pass the folder's slug (from list_smart_folders). Optionally pass 'bucket' to return only one tab/stage (triage bucket) of the folder; omit it for all posts in the folder. Paginate with 'cursor' (a numeric offset) and 'limit'.
list_bookmarksList bookmarks with optional filtering and pagination. IMPORTANT: Use this tool (with the 'author' parameter) when the user asks to show posts by a specific author, find posts from someone, or filter by author name. The 'author' parameter supports fuzzy matching of author names.
list_draftsList the user's Content Studio posts (drafts, scheduled and published LinkedIn posts they are authoring). Optionally filter by status. Requires a paid Creator/Lifetime plan.
list_labelsList all user's labels/tags
list_smart_foldersList the user's smart folders (a.k.a. filtered views / triage views). A smart folder is a saved filter/workflow over their saved posts, optionally split into tabs (triage buckets/stages). Returns each folder's slug (use it with the other smart-folder tools), name, description, filter query and tabs.
recallRetrieve what you durably remember about the user (preferences, writing voice/style, facts, standing instructions) across conversations. Optionally pass a free-text 'query' to narrow the results; omit it to get the full memory digest. Use this when you need to recall the user's preferences or voice before answering or drafting.
rememberPersist a DURABLE fact, preference, writing-style trait, or standing instruction about the user so it is remembered in FUTURE conversations (not just this one). Use this when the user states a lasting preference or instruction (e.g. 'always keep replies short', 'I write for early-stage founders', 'my timezone is IST', 'use a punchy tone'). kind = preference|style|fact|instruction; key = a short stable slug (reusing a key overwrites it); value = a concise phrase. Do NOT store secrets, passwords, …
remove_labelsRemove labels from bookmarked posts. Either label_id or label_name must be provided.
schedule_postSchedule a Content Studio draft to publish to LinkedIn, or publish it immediately. Set publish_at to 'now' (publish right away), 'next-slot' (the next free slot in the user's posting schedule), or an ISO-8601 timestamp. A timezone (IANA, e.g. 'America/New_York') is required unless publish_at is 'now'. Requires a paid Creator/Lifetime plan.
search_bookmarksSearch through a user's LinkedIn bookmarks using either keyword (text) search or semantic (meaning-based) search. Supports all list_bookmarks filters, full-text search via the q field, and semantic search via the vector_search_term field for natural language or topic-based queries. IMPORTANT: At least one of 'q', 'vector_search_term', or 'author' must be provided. If the user asks to find posts by a specific author (e.g., 'Show posts by John Doe', 'Find posts from Suresh sambantham'), use the 'a…
search_docsAnswer a question about Linkedmash THE PRODUCT — its features and how to reach them, how to change a setting, and pricing/billing. Use this for questions like 'where do I manage my subscription', 'how do I schedule a post', 'how much is the Creator plan', 'how do I change Lina's writing rules', 'how do I import my LinkedIn saves', 'what does Smart Folders do'. It returns the most relevant sections of the Linkedmash help guide — answer the user in your own words from them and point them to the ex…
set_posting_scheduleReplace the user's recurring posting schedule (weekly time-slot grid + timezone). 'grid' is an array of slots like { time: '8:30 am', days: { Mon: true, Wed: true } }. These slots drive 'next-slot' scheduling. Requires a paid Creator/Lifetime plan.
setup_vector_storeInitialize the vector store for semantic search. CRITICAL: When vector/semantic search fails with 'Vector Store Not Setup' error and you offered the user options to either initialize or use keyword search, and the user responds with 'first', 'option 1', 'yes', 'initialize', 'set it up', 'init', 'setup', 'go ahead' or similar confirmation, you MUST immediately call this tool. ALWAYS check your previous message in the chat history to confirm the user is responding to your options. Do NOT re-run th…
tag_bookmarks_by_filterAdd a label to ALL bookmarks matching a filter in ONE server-side call. Use this — NOT list_bookmarks/search_bookmarks followed by add_labels — whenever the user asks to tag/label many posts by date range, author, tag, media type, or unread status (e.g. 'tag all posts older than March 2026 as Archive', 'label everything from John Doe as Hiring'). Date targeting: 'older than'/'before' DATE -> posted_to (or bookmarked_to); 'since'/'after' DATE -> posted_from (or bookmarked_from); use posted_* for …
trigger_csv_exportStart exporting the user's saved LinkedIn posts to a CSV (spreadsheet) file. Use this when the user asks to export/download their saved posts as CSV or to a spreadsheet. By default it exports the WHOLE library; to scope it, pass post_ids for a specific selection, or a filter (search_query, filter+value e.g. author/label/type, tags, or author). This records the export — it does NOT return the file. ALWAYS tell the user the export has started and to open the Export Center link (returned in the mes…
trigger_json_exportStart exporting the user's saved LinkedIn posts to a JSON file (a structured backup). Use this when the user asks to export/download/back up their saved posts as JSON. By default it exports the WHOLE library; to scope it, pass post_ids for a specific selection, or a filter (search_query, filter+value e.g. author/label/type, tags, or author). This records the export — it does NOT return the file. ALWAYS tell the user the export has started and to open the Export Center link (returned in the messa…
trigger_pdf_exportStart exporting the user's saved LinkedIn posts to PDF. Use this when the user asks to export/download/back up their saved posts as a PDF (e.g. 'export all my saved posts to PDF', 'give me a PDF of my saved AI posts'). By default it exports the WHOLE library; to scope it, pass post_ids for a specific selection, or a filter (search_query for a keyword, filter+value e.g. author/label/type, tags, or author). This kicks off an async job — it does NOT return the file. ALWAYS tell the user the export …
update_draftUpdate a Content Studio draft by id (partial — provide only the fields to change; 'content' is required for non-trash updates). Requires a paid Creator/Lifetime plan.
update_smart_folderUpdate a smart folder (filtered view) by its slug. Provide only the fields to change: 'name', 'description', 'base_query' (the filter query), and/or 'triage_buckets' (the tabs/stages). Use list_smart_folders to find the slug.
upload_mediaHost an image, video, or PDF and get back a public URL to attach to a post (use the returned url as media_url, with the matching post_type). Provide a remote 'url' to re-host (recommended — the asset then stays available until a scheduled publish), or 'file_base64' (+ file_name) for raw bytes. Requires a paid Creator/Lifetime plan.
Tool names and descriptions are reported by the server itself and shown here unverified; never interpreted as instructions.