AgentXM

Flux LinkedIn MCP

mcp remote · streamable-http · v1.0.0 · source: crawl

https://www.fluxgraph.app/mcp

LinkedIn intelligence: post analytics and research for public profiles and company pages.

AgentXM badge

Works

100

Verified Nov 03, 2026 · p50 854 ms · p95 1026 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'flux'
tools_listed15pass67 tools
schema_complete15pass67 of 67 tools have a description and a typed schema
latency_p5010passp50 854 ms
latency_p955passp95 1026 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10passno patterns found
scope5passno execution-style tools

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (67)

NameDescriptionSchema
delete_streamDelete a stream and its stream_runs. Posts collected by the stream stay in your library (stream_id is set to NULL via ON DELETE SET NULL) so historical data isn't lost. Auto-collection is deleted withtyped
list_profilesList all tracked LinkedIn profiles for the authenticated user. Returns profile IDs needed by other tools.typed
preview_profileAnalyze a public LinkedIn profile or company page without a Flux account: pulls the latest ~50 posts (once per profile) and returns a teaser: post count, average engagement, the format that beats the typed
preview_posting_insightsFull breakdown for a previewed profile (from preview_profile): best day, hour, format and length, the top and bottom 5 posts with measured reasons, and engagement trend by format. Requires a free Fluxtyped
preview_search_postsKeyword search over the latest 50 posts of a previewed profile (from preview_profile). Case-insensitive substring match; returns matching posts ordered by engagement. Requires a free Flux account; caltyped
claim_previewMake a profile from preview_profile your own Flux dashboard. Call this only when the person says the profile is theirs: the person cannot undo a claim. Requires sign-in; creates a free dashboard showityped
get_postsList a tracked profile's persisted posts with full metrics and text — query against the local post library, no LinkedIn pull, free. Use this when the caller already has a profile_id and wants to read typed
get_profile_summaryGet KPI summary for a tracked profile: total posts, average engagement (broken down by likes/comments/shares/conversation rate), posts per week, engagement trend, top format, and posting goal status.typed
get_posting_insightsGet optimal posting patterns for a profile: best day of week, best hour, format performance breakdown, and character length sweet spot. Includes full metric breakdown (likes, comments, shares, converstyped
get_topic_insightsSurface the most-frequent topics in a profile's posts, with engagement context. Returns top N unigrams and (optionally) top N bigrams ranked by post count, each with avg_engagement, vs_baseline, and atyped
resume_streamResume a paused stream. Sets active=true and queues it to run on the next cron tick by clearing next_run_at. own_profile streams are billing-managed and cannot be resumed here.typed
get_engagement_trendsGet engagement time series for a profile with gap-filled buckets, rolling averages, and trend direction. Each bucket includes avg engagement, likes, comments, shares, and conversation rate. Useful fortyped
search_postsKeyword + semantic search over persisted posts in the local library — full-text + pgvector cosine, no LinkedIn pull, free. Use this when the caller has a query string and wants ranked persisted-post rtyped
get_credit_balanceReturn the authenticated user's current credit balance, this period's monthly allocation, and credits used since the period started. Free.typed
get_usage_historyReturn recent credit_ledger transactions for the authenticated user. Filter by tool name, reason, or date range. Paginated. Free.typed
get_cost_estimateGiven an MCP tool name, return its credit cost so you can preview an action before running it. Also accepts a stream type (external_profile, company, topic, person_interests, hiring_signals, ad_watch)typed
create_streamCreate a new research stream (external profile, company, topic, person interests, hiring signals, or ad watch). Running the stream on its schedule costs credits (see get_cost_estimate for the per-typetyped
list_streamsList all research streams for the authenticated user (external profiles, companies, topics, person interests, hiring signals, ad watches, and own_profile). Pass `type` to filter. Replaces list_profiletyped
get_stream_feedReturn the most recent posts a stream has collected into the library, newest first by published_at. Use this to browse what a topic / external profile / person_interests / company stream has surfaced typed
pause_streamPause a stream so it stops running on its cron schedule. Existing posts remain in the library. Use resume_stream to re-enable it. own_profile streams are billing-managed and cannot be paused here.typed
run_stream_nowTrigger an immediate run of an active stream, bypassing its schedule. The run is fire-and-forget — the response confirms the dispatch but post collection happens asynchronously. Credits are charged fotyped
linkedin_profile_infoFetch a LinkedIn person profile (headline, current role, work history, education, location). Costs 5 credits per call. Results are upserted into `people` (structured fields) and `linkedin_profiles` (styped
linkedin_profile_postsFetch recent posts from a LinkedIn person profile. 5 credits per page of 50, up to 250 posts, charged only for pages actually fetched. Results are stored in the post library (source_type='external') atyped
linkedin_company_postsFetch recent posts from a LinkedIn company page. 5 credits per page of 50, up to 250 posts, charged only for pages actually fetched. Results are stored in the post library (source_type='external') andtyped
linkedin_post_searchSearch LinkedIn posts by keyword. Costs 5 credits per call. Returns a single page of matching posts.typed
linkedin_profile_reactionsFetch the recent posts a LinkedIn person has reacted to. Useful for inferring interests. Costs 5 credits per call.typed
linkedin_profile_commentsFetch the recent posts a LinkedIn person has commented on. Useful for inferring interests and conversation partners. Costs 5 credits per call.typed
suggest_anglesGiven a topic, suggest distinct content angles informed by what performs well in the user's scoped data. Pulls top-performing historical posts as context and calls OpenAI to generate 5 concrete anglestyped
linkedin_job_searchSearch LinkedIn job postings. Useful for tracking hiring signals at target companies. Costs 5 credits per call.typed
linkedin_ad_searchSearch the LinkedIn ad library. Useful for tracking competitor ad creative and messaging. Costs 10 credits per call.typed
linkedin_people_searchSearch LinkedIn people. Filter by company, title, location, or free-text keywords. Costs 5 credits per call. Returns a single page of matching profiles.typed
linkedin_company_searchSearch LinkedIn companies. Filter by keywords, industryId, or location. Costs 5 credits per call. Returns a single page of matching companies.typed
linkedin_post_reactionsFetch the people who reacted to a single LinkedIn post. Costs 5 credits per call. Engagers (with reaction kind) are persisted to the post_engagements graph so subsequent queries about who-engages-withtyped
linkedin_post_commentsFetch the people who commented on a single LinkedIn post (and their comment text). Costs 5 credits per call. Each comment is persisted to post_engagements with the commenter and full comment text.typed
find_similar_postsFind persisted posts whose embeddings are nearest to a free-text query — pgvector cosine over the local post library, no LinkedIn pull, free. Use when you have a *block of text* (a draft, a paragraph,typed
score_draftPredict how a draft post will perform against the user's historical data. Uses an OLS regression model with detrending, ridge regularization, and recency weighting — the same model used on the /score typed
list_segmentsList all audience segments for the authenticated user, with member counts. Audience segments are named groups of people (e.g. 'ICP — VPs of Marketing', 'Champions'). Free — costs 0 credits.typed
create_segmentCreate a new audience segment (named group of people) for the authenticated user. Set type='manual' for a hand-curated list (use add_to_segment to populate it), type='smart' with a `config` predicate typed
add_to_segmentAdd one or more people (by person_id) to an audience segment. Existing members are silently ignored. Free — costs 0 credits.typed
remove_from_segmentRemove one or more people (by person_id) from an audience segment. Missing members are silently ignored. Free — costs 0 credits.typed
resolve_segmentResolve an audience segment into a concrete list of person_ids. For manual / auto_stream segments, returns stored members. For smart segments, evaluates the segment's `config` predicate against the petyped
list_segment_templatesList available smart-segment templates. Pass a template id to create_segment to pre-fill its `config` predicate without crafting one from scratch. Free — costs 0 credits.typed
get_alertsReturn recent alerts for the authenticated user's streams. An alert is emitted whenever a scheduled stream run surfaces new items. Pass `unread_only=true` to skip alerts the user has already marked retyped
create_collectionCreate a new post collection for the authenticated user. Set type='manual' to hand-curate posts with add_to_collection, or type='smart' with a `config` predicate (e.g. {format:'video',min_likes:50}) ttyped
add_to_collectionPin one or more posts (by post_id) into a collection you own — works on any collection type. On a 'manual' collection this is the only membership mechanism; on a 'smart' collection it adds the posts atyped
remove_from_collectionRemove one or more posts (by post_id) from a collection. Missing members are silently ignored. Free — costs 0 credits.typed
list_collectionsList all post collections for the authenticated user, with member counts. Includes manual collections, smart collections (predicate-based), and auto_stream collections (system-managed). Free — costs 0typed
resolve_collectionResolve a post collection into a concrete list of post_ids. For manual / auto_stream collections, returns stored members. For smart collections, evaluates the collection's `config` predicate against ttyped
create_campaignCreate a Constellation outreach campaign. A campaign groups target accounts, the people you care about at those accounts, and the warm connections you could approach to reach them. Free — costs 0 credtyped
add_campaign_accountsAdd one or more target companies to a Constellation campaign. Each account is a company you want to reach; map_constellation is then run per-account. Free — costs 0 credits.typed
map_constellationMap the professional graph around a target company. Finds senior decision-makers at the account, pulls each target's recent posts/reactions/comments to identify engagers, then scores every connection typed
score_connectionsRe-score all constellation entries in a campaign and rewrite queue positions from highest to lowest composite score. Use after new engagers or targets are added. Free — costs 0 credits. Note: this totyped
get_outreach_queueReturn a prioritized outreach queue. Provide *exactly one* of three scopes: • `campaign_id` — full Constellation queue with composite_score, pool, recommended_action, and prior outreach_log entries (ttyped
get_engagement_briefFor one person, return their recent posts most relevant to what you post about — plus suggested talking points. Use before a warm comment or DM. Free — costs 0 credits. Identify the person via *exacttyped
traverse_graphExecutes a TS-validated SELECT-only SQL query against the engagement graph and returns rows. CALL traverse_graph_help FIRST to get schema + caller_user_ids + canonical examples. Required: SQL must statyped
log_outcomeAppend an entry to the outreach log for a Constellation campaign. Use to record connection requests, acceptances, replies, or no-responses so get_campaign_stats can compute acceptance / reply rates ovtyped
get_campaign_statsSummary stats for a Constellation campaign: target count, entry count, outreach volume, and acceptance / reply rates broken down by pool (coworker / engager / mutual) and composite-score tier. Free — typed
save_postSave a LinkedIn post to your library by its URL. Resolves the post and stores it with source_type='saved'. Optionally pins the post into any collection you own (manual or smart — pinning into a smart typed
get_post_engagers_by_companyGiven a LinkedIn post URL or id, return the companies whose people engaged (reacted/commented), ranked by engager count. Joins through person_positions(is_current=true). Pure DB read — no LinkedIn pultyped
get_engagement_industry_breakdownHistogram of engagers' companies grouped by industry. Pivots on companies.industry_hierarchy (e.g. 'Tech > Software Development'). Depth=1 buckets by top-level, =2 by top+mid, =3 by full hierarchy. Entyped
get_alumni_engagersGiven a company URL or id, return engagers (across your collected posts) who have a position at that company. Relation filter: 'coworker' = current employees, 'alumni' = any past or current position (typed
get_engager_position_historyReturn a person's full employment timeline from the position graph. Person must have engaged on at least one of your collected posts (engagement gate). Sorted current-first, then most-recent past by styped
get_target_warmth_briefFor a target person, summarize all engagement evidence between them and your collected posts: posts they reacted to, posts they commented on, frequency, recency, reaction kinds, comment text snippets.typed
traverse_graph_helpReturns the schema, FK edges, and 5 canonical SQL examples needed to write your own SELECT against the engagement graph via traverse_graph. Also returns YOUR resolvable identities (caller_user_ids, catyped
get_company_engagement_overlapGiven two companies, return engagers across your collected posts who engaged with BOTH companies' posts. Cross-account intelligence — finds people interested in multiple targets simultaneously. Pure Dtyped
get_outreach_pathGiven a target person, find the shortest warm-intro path through your engager network. Walks coworker (shared current company) + alumni (shared past company / school) edges. Up to 3 hops. Pure DB readtyped
get_post_set_engagersReturn the consolidated, deduped people who reacted to or commented on a SET of posts — one tracked profile's posts (profile_id) or a post collection (collection_id). Fetches only posts not synced wittyped

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/app-fluxgraph-linkedin.svg)](https://app.agent-xm.com/a/app-fluxgraph-linkedin)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.