ToolPin

io.github.linkedmash/linkedmash

io.github.linkedmash/linkedmash · v1.0.0 · MCP 2025-11-25

LinkedIn saved posts MCP server: search saves, draft, schedule, publish, and analyze content.

Reachability reachable
checked 2026-07-14 04:08 UTC
Registry status active
Tools pinned 40
5cd43b077ace
Tools last changed unchanged since first capture 2026-07-14

Provenance

Registry namespace io.github.linkedmash (GitHub-account verified by the official registry)
Website https://www.linkedmash.com/for-ai-agents
Remote endpoints
https://mcp.linkedmash.com/api/mcp (streamable-http)

Observed changes

When (UTC)EventDetail
2026-07-14 04:08 first capture 40 tools pinned

Pinned tool definitions (40)

ToolDescription
search_docs Answer 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...
list_bookmarks List bookmarks with optional filtering and pagination. Defaults: read AND unread bookmarks are both included (set is_unread_only=true only if the user asks for unread); archived bookmarks are excluded (set hide_archived=false to include...
search_bookmarks Search 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...
get_bookmark_count Get the count of bookmarks matching the given filters. Supports the SAME filters as list_bookmarks (dates, author, tag, media_type, unread, q, comment) and the count respects all of them, so it is always consistent with a list_bookmarks...
list_labels List all user's labels/tags
add_labels Add a label to a FEW explicitly chosen posts (specific post_ids the user picked or is looking at). Either label_id or label_name must be provided. NEVER use this to label 'all posts matching a filter' (a date range, an author, a tag,...
remove_labels Remove labels from bookmarked posts. Either label_id or label_name must be provided.
tag_bookmarks_by_filter Add 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...
remove_labels_by_filter REMOVE a label from ALL bookmarks matching a filter in ONE server-side call — the mirror of tag_bookmarks_by_filter. Use this — NOT list/search + remove_labels on page ids — whenever the user asks to remove/clear a label from many posts...
archive_bookmarks_by_filter ARCHIVE all bookmarks matching a filter in ONE server-side call (reversible — archived posts stay recoverable in the app's Archive). Use for 'archive all posts <filter>' style requests, even phrased as 'fetch then archive'. BEFORE...
delete_bookmarks_by_filter DELETE all bookmarks matching a filter in ONE server-side call. Deletion is soft (recoverable from the app for a while) but MUST be treated as destructive: BEFORE calling, tell the user exactly what will be deleted (use...
setup_vector_store Initialize 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...
get_bookmark Get 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.
list_drafts List 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.
create_draft Create 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.
get_draft Get a single Content Studio post/draft by its id. Requires a paid Creator/Lifetime plan.
update_draft Update 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.
delete_draft Delete (move to trash) a Content Studio draft by its id. Requires a paid Creator/Lifetime plan.
upload_media Host 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...
schedule_post Schedule 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...
get_queue List 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_posting_slots Get 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.
cancel_scheduled_post Cancel a scheduled post by its schedule id (from a get_queue entry). Requires a paid Creator/Lifetime plan.
get_posting_schedule Get the user's recurring posting schedule — the weekly time-slot grid and timezone that drive 'next-slot' scheduling. Requires a paid Creator/Lifetime plan.
set_posting_schedule Replace 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...
get_analytics Get 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_post_analytics Get 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_growth_digest Get 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...
remember Persist 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....
recall Retrieve 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....
forget Delete 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.
list_smart_folders List 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...
get_smart_folder Get 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_posts List 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...
create_smart_folder Create 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...
update_smart_folder Update 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.
delete_smart_folder Delete 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.
trigger_pdf_export Start 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...
trigger_csv_export Start 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...
trigger_json_export Start 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...

Status badge

ToolPin status badge for io.github.linkedmash/linkedmash

[![ToolPin](https://toolpin.dev/badge/io.github.linkedmash/linkedmash.svg)](https://toolpin.dev/servers/io.github.linkedmash/linkedmash)

Maintain this server? Add the badge to your README — it links your users to this live status page.