Flux LinkedIn MCP

app.fluxgraphPublished by fluxgraph.appOfficial publisherv1.0.1Updated Nov 7, 2026

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

Overview

AI-generated overview

Remote LinkedIn intelligence server for post analytics, profile and company research, and audience segments, billed in credits.

What you can do
  • Preview and claim public LinkedIn profiles or company pages, then read tracked posts, KPI summaries and posting insights
  • Analyze engagement trends, topics, best posting day/hour/format, and score drafts or suggest content angles
  • Search the local post library by keyword or semantic similarity, and find similar posts to a text block
  • Run LinkedIn searches for posts, people, companies, jobs and ads, and fetch profile details, posts, reactions and comments
  • Create and manage scheduled research streams (profiles, companies, topics, hiring signals, ad watch) and browse their feeds
  • Manage audience segments and check credit balance, usage history and per-tool cost estimates
When to use it
Useful when you want an assistant to analyze LinkedIn content performance, research prospects or competitors, track hiring or ad activity, or draft and score posts against your own historical engagement data.
Requirements
Runs as a remote streamable HTTP endpoint; no package or environment variables are declared. A Flux account is needed for most tools, and some preview tools prompt the person to sign in. Paid tools draw on a credit balance, so a funded account is required for LinkedIn pulls and searches.
Before you install
Many tools spend credits per call or per page (for example 5 credits for a profile fetch or search, 10 for ad search), and streams charge on their schedule; check cost estimates and balance first. Claiming a preview is irreversible and creates a dashboard. Streams can be created, paused, resumed and deleted, and segments and people records are written. LinkedIn data about third parties is stored in your library and some tools send content to OpenAI.

Installation

In SourceWeft

  1. Open Flux LinkedIn MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/app.fluxgraph%2Flinkedin/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "flux-linkedin": {
      "type": "http",
      "url": "https://www.fluxgraph.app/mcp"
    }
  }
}

README

Flux LinkedIn MCP server

Flux (fluxgraph.app) is a hosted MCP server for LinkedIn intelligence. Connect it to Claude, Cursor, or another MCP client, then ask about the posts and engagement of any public LinkedIn profile or company page.

https://www.fluxgraph.app/mcp

This repository holds documentation and an agent skill. The server itself is hosted and closed source, so there is nothing to install or run.

If your client needs a local command instead of a remote URL, the flux-linkedin-mcp npm package wraps the hosted endpoint over stdio:

json
{  "mcpServers": {    "flux-linkedin": {      "command": "npx",      "args": ["-y", "flux-linkedin-mcp"]    }  }}

The package source is in npm/.

What it does

  • Audit posting patterns. Find which days, hours, formats, and lengths beat an account's own baseline, with the sample size behind each finding.
  • Research any public account. Use it on your own profile, a client's, a prospect's, or a competitor's.
  • Search and track over time (paid). Paid plans add full post history, weekly refresh, trends over time, search, and the engagement graph.

Flux is read-only on LinkedIn. It cannot publish, like, comment, connect, or message.

Where the data comes from

Flux reads public LinkedIn data through a third-party data provider. It does not use an official LinkedIn API, and it is not affiliated with or endorsed by LinkedIn. You do not give Flux a LinkedIn password or cookie, and nothing runs under your LinkedIn account.

Flux has no impressions, profile viewers, or other private data. LinkedIn's User Agreement restricts automated data collection, so please decide whether this approach fits your own use.

The free preview

Two tools offer a free preview of a public profile or company page:

ToolWhat it does
preview_profileTakes a linkedin_url, pulls up to about 50 recent posts, and returns a preview_id and a short summary. Needs no account.
preview_posting_insightsTakes the preview_id and returns the breakdown by day, hour, format, and length. Needs a free Flux account: your client asks you to sign in the first time.

Things to know:

  • Previews cover at most 50 posts and are pulled once per profile, so check last_pull_at to see how old the data is.
  • Hours and days are in UTC.
  • Usage limits apply. A signed-in account can pull one new profile per day; profiles Flux already holds are free to look at.

Connect it

Claude (web, desktop, mobile). Open Settings → Connectors → Add custom connector, name it Flux, and paste the URL above. Choose Sign in when needed and Register automatically.

Claude Code

bash
claude mcp add --transport http --scope user flux https://www.fluxgraph.app/mcp

Cursor and other clients that read mcpServers

json
{  "mcpServers": {    "flux": {      "type": "http",      "url": "https://www.fluxgraph.app/mcp"    }  }}

For account tools in developer clients, generate a key under Settings → MCP → Developer setups in Flux, then send it as an Authorization: Bearer YOUR_KEY header. Tools outside the preview need a sign-in or a key, and most need a paid plan. See the setup guide and tool reference.

Then try a prompt like this:

Use Flux to preview linkedin.com/in/janedoe. Which days, hours, formats, and lengths beat this account's own baseline, and how many posts back each finding?

The skill

skills/linkedin-mcp-posting-audit teaches an agent to run that audit carefully. It labels thin samples as anecdotes, reports how old the data is, avoids claims about reach, and ends with one specific test to run. It also works on pasted posts if you would rather not make a network call.

To use it, copy the folder into your agent's skills directory (for Claude Code, ~/.claude/skills/).

Support

Please open an issue for problems with these docs or the skill. For account questions, use the contact details at fluxgraph.app.

License

The documentation and skill in this repository are under the MIT License. The Flux service is governed by its terms.

Source: README.md at commit a70f41a

Tools

67

list_profiles

List Profiles

List all tracked LinkedIn profiles for the authenticated user. Returns profile IDs needed by other tools.

Takes no parameters.

preview_profile

Preview a LinkedIn profile

Analyze 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 baseline, the top post and the recent trend, plus a preview_id. The full breakdown (best day and hour, top and bottom posts with reasons, trends by format) and keyword search need a free Flux account: call preview_posting_insights or preview_search_posts with the preview_id, which asks the person to sign in where the client supports it, or give the person the continue_url if that call fails. Call claim_preview after sign-in only when the person says the profile is theirs.

Parameterslinkedin_urlrequired

preview_posting_insights

Preview posting insights

Full 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 Flux account; calling it asks the person to sign in where the client supports it, otherwise use continue_url from preview_profile.

Parameterspreview_idrequired

preview_search_posts

Search previewed posts

Keyword 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; calling it asks the person to sign in where the client supports it, otherwise use continue_url from preview_profile.

Parametersqueryrequiredpreview_idrequired

claim_preview

Claim a previewed profile

Make 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 showing the latest 50 posts, one per account. Refuses if the account already has a dashboard; the breakdown tools still work then.

Parameterspreview_idrequired

get_posts

Get Posts

List 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 its posts. Filter by date range, post type, minimum engagement, or text. Pass `scope` (a post_collections.id) to restrict to a specific collection (e.g. an external profile, topic stream, or hand-curated set). Paginated. For keyword/semantic search across posts, use `search_posts`. For fresh LinkedIn pulls, use `linkedin_profile_posts`.

Parameterspagescopesearchdate_tosort_bysort_dirdate_frompage_sizepost_typeprofile_idrequiredmin_engagement

get_profile_summary

Get Profile Summary

Get 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.

Parametersprofile_idrequired

get_posting_insights

Get Posting Insights

Get 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, conversation rate) for every bucket. All metrics relative to the user's own baseline. Pass `scope` (a post_collections.id) to recompute the patterns against a specific collection.

Parametersscopedate_todate_fromprofile_idrequired

get_topic_insights

Get Topic Insights

Surface 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 a sample_post_url. Mirrors the dashboard topics chart, server-side. Pass `scope` (a post_collections.id) to scope the analysis to a collection.

Parametersnscopebigramsdate_todate_fromprofile_idrequired

search_posts

Search Posts

Keyword + 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 results. Pass `scope` (a post_collections.id) to limit to a specific collection. For fresh LinkedIn keyword pulls, use `linkedin_post_search` instead (5 credits).

Parametersmodelimitqueryrequiredscopeprofile_idrequired

get_credit_balance

Get Credit Balance

Return the authenticated user's current credit balance, this period's monthly allocation, and credits used since the period started. Free.

Takes no parameters.

get_usage_history

Get Usage History

Return recent credit_ledger transactions for the authenticated user. Filter by tool name, reason, or date range. Paginated. Free.

Parameterslimitreasondate_todate_fromtool_name

get_cost_estimate

Get Cost Estimate

Given 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) to preview the per-page cost create_stream / run_stream_now will charge. Returns { tool_name, cost, balance, sufficient, stream_cost? }. Tools not in the registry are assumed to cost 0. Free.

Parametersparamstool_namerequired

create_stream

Create Stream

Create 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-type cost). own_profile streams are not created here — they come from subscription checkout.

Parametersnamerequiredtyperequiredparamsschedulesource_urlhistory_daysinitial_max_pages

list_streams

List Streams

List 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_profiles for the streams-first world, but list_profiles continues to work for V1-compatible callers.

Parameterstypeinclude_inactive

get_stream_feed

Get Stream Feed

Return 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 on its schedule.

Parameterslimitstream_idrequired

pause_stream

Pause Stream

Pause 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.

Parametersstream_idrequired

resume_stream

Resume Stream

Resume 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.

Parametersstream_idrequired

delete_stream

Delete Stream

Delete 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 with the stream. own_profile streams cannot be deleted through this tool; the own profile is managed from Settings and billing.

Parametersstream_idrequired

run_stream_now

Run Stream Now

Trigger 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 for pages actually walked, not pages requested: one page is taken upfront and the rest settled when the run finishes, so a run that stops early (or fails) costs less than max_pages implies. Paused streams must be resumed first. Use list_streams or get_stream_feed to see results once the run completes.

Parametersresumemax_pagesstream_idrequiredhistory_days

linkedin_profile_info

LinkedIn Profile Info

Fetch 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` (so profile-brief renders) — same enrichment side-effect as the other linkedin_profile_* tools.

Parametersrefreshlinkedin_urlrequired

linkedin_profile_posts

LinkedIn Profile Posts

Fetch 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') and linked to a linkedin_profiles row so profile-brief can render research-only prospects.

Parametersrefreshmax_postslinkedin_urlrequired

linkedin_company_posts

LinkedIn Company Posts

Fetch 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') and linked to a linkedin_profiles row (profile_type='company').

Parametersrefreshmax_postslinkedin_urlrequired

linkedin_post_search

LinkedIn Post Search

Search LinkedIn posts by keyword. Costs 5 credits per call. Returns a single page of matching posts.

Parametersqueryrequiredfiltersrefresh

linkedin_profile_reactions

LinkedIn Profile Reactions

Fetch the recent posts a LinkedIn person has reacted to. Useful for inferring interests. Costs 5 credits per call.

Parametersrefreshlinkedin_urlrequired

linkedin_profile_comments

LinkedIn Profile Comments

Fetch the recent posts a LinkedIn person has commented on. Useful for inferring interests and conversation partners. Costs 5 credits per call.

Parametersrefreshlinkedin_urlrequired

linkedin_post_reactions

LinkedIn Post Reactions

Fetch 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-with-whom are SQL, not API calls.

Parametersrefreshpost_urlrequired

linkedin_post_comments

LinkedIn Post Comments

Fetch 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.

Parametersrefreshpost_urlrequired

find_similar_posts

Find Similar Posts

Find 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, a competitor's post) and want similar posts you've already collected. For keyword search prefer `search_posts`; for fresh LinkedIn keyword pulls use `linkedin_post_search`. Pass `profile_id` to scope to a tracked profile, `collection_id` to scope to a collection, or neither to search the entire library.

Parameterstextrequiredlimitprofile_idcollection_id

score_draft

Score Draft

Predict 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 page. Returns a predicted engagement percentile, projected engagement range, factor breakdown, similar past posts, and improvement suggestions. Free. Pass `profile_id` to scope to a tracked profile, `collection_id` to scope to a collection, or neither to score against the user's full library.

Parametershourrequiredtextrequiredformatprofile_idday_of_weekrequiredcollection_id

suggest_angles

Suggest Angles

Given 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 angles. Costs 5 credits per call. Pass `profile_id` to scope to a tracked profile, `collection_id` to scope to a collection, or neither to use the user's full library.

Parameterstopicrequiredprofile_idcollection_id

list_segments

List Audience Segments

List 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.

Parameterstype

create_segment

Create Audience Segment

Create 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 (e.g. {title_contains:'VP'}) to define a dynamic segment resolved on-demand by resolve_segment, or pass `template` to pre-fill `config` from a built-in template (type defaults to 'smart'). Free — costs 0 credits.

Parametersnametypeconfigtemplatedescriptionsource_stream_id

add_to_segment

Add People to Audience Segment

Add one or more people (by person_id) to an audience segment. Existing members are silently ignored. Free — costs 0 credits.

Parametersperson_idsrequiredsegment_idrequired

remove_from_segment

Remove People from Audience Segment

Remove one or more people (by person_id) from an audience segment. Missing members are silently ignored. Free — costs 0 credits.

Parametersperson_idsrequiredsegment_idrequired

resolve_segment

Resolve Audience Segment

Resolve 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 people table and returns matches. Free — costs 0 credits.

Parameterslimitsegment_idrequired

list_segment_templates

List Segment Templates

List 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.

Takes no parameters.

get_alerts

Get Stream Alerts

Return 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 read. Free — costs 0 credits.

Parameterslimitunread_only

create_collection

Create Post Collection

Create 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}) to define a dynamic collection resolved on-demand by resolve_collection. Free — costs 0 credits.

Parametersnamerequiredtyperequiredconfigdescription

add_to_collection

Add Posts to Collection

Pin 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 as extras alongside whatever the rule already matches (resolve_collection returns the union). Existing members are silently ignored. Free — costs 0 credits.

Parameterspost_idsrequiredcollection_idrequired

remove_from_collection

Remove Posts from Collection

Remove one or more posts (by post_id) from a collection. Missing members are silently ignored. Free — costs 0 credits.

Parameterspost_idsrequiredcollection_idrequired

list_collections

List Post Collections

List 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 0 credits.

Parameterstype

resolve_collection

Resolve Post Collection

Resolve 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 the user's posts and returns matches. Free — costs 0 credits.

Parameterslimitcollection_idrequired

create_campaign

Create Campaign

Create 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 credits.

Parametersnamerequireddescription

add_campaign_accounts

Add Campaign Accounts

Add 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.

Parametersaccountsrequiredcampaign_idrequired

map_constellation

Map Constellation

Map 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 and produces a prioritized outreach queue. Credit cost scales with targets — bounded by `max_targets`. Max spend per call is ~175 credits; actual cost is reported in the response.

Parametersmax_targetstitle_keywordscampaign_account_idrequired

score_connections

Score Connections

Re-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 tool requires a `campaign_id` because it writes back to the `constellation_entries` table. Segment- and url-list-scoped scoring is not yet supported — use `get_outreach_queue({segment_id})` or `get_outreach_queue({linkedin_urls})` for engagement-count ordering on those scopes; full composite scoring will land alongside the unified person-positions schema in a later phase.

Parameterscampaign_idrequired

get_outreach_queue

Get Outreach Queue

Return 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 (the original campaign-scoped behavior). • `segment_id` — people in a saved audience segment, ranked by their engagement count against your tracked profiles' posts. No composite_score. • `linkedin_urls` — an ad-hoc list of LinkedIn URLs, same engagement-count ranking as segments. Free — costs 0 credits.

Parameterspoollimitsegment_idcampaign_idlinkedin_urls

get_engagement_brief

Get Engagement Brief

For 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 *exactly one* of: `target_id` (a Constellation target — original input), `person_id` (a row in `people`), or `linkedin_url` (any form). The non-campaign forms work even when no Constellation campaign exists.

Parametersperson_idtarget_idlinkedin_url

log_outcome

Log Outreach Outcome

Append 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 over time. Free — costs 0 credits.

Parametersnoteactionrequiredperson_idrequiredcampaign_idrequired

get_campaign_stats

Get Campaign Stats

Summary 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 — costs 0 credits.

Parameterscampaign_idrequired

save_post

Save LinkedIn Post

Save 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 collection adds it as an extra alongside the rule's matches). Costs 1 credit per call. Failed lookups don't charge.

Parametersurlrequiredcollection_id

get_post_engagers_by_company

Engagers Grouped by Company

Given 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 pull, no credits charged. Engagers without a known current company are bucketed as `_unknown_company`. Optional industry_urn filter narrows to one industry.

Parameterslimitpost_idpost_urlindustry_urntop_engagers_per_company

get_engagement_industry_breakdown

Engagement Industry Breakdown

Histogram 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. Engagers with no current company / no industry hierarchy bucket as `_unknown`. Pure DB read — no LinkedIn pull, no credits charged.

Parametersdepthpost_idpost_urlsample_companies_per_bucket

get_alumni_engagers

Alumni / Coworker Engagers for a Company

Given 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 (most useful for page_type='SCHOOL' companies), 'any' = both. Pure DB read — no LinkedIn pull, no credits charged.

Parameterslimitrelationcompany_idcompany_url

get_engager_position_history

Engager Position History

Return 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 started_at desc. Pure DB read — no LinkedIn pull, no credits charged.

Parametersperson_idlinkedin_url

get_target_warmth_brief

Target Warmth Brief

For 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. Computes a v0 warmth score from engagement count, comment signal, and recency. Pure DB read — no LinkedIn pull, no credits charged.

Parametersdays_backperson_idlinkedin_url

traverse_graph_help

Engagement Graph Schema + Examples (for traverse_graph)

Returns 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, caller_tracked_lp_ids) — substitute these into example SQL when you write your query. Pure DB read — 0 credits. Free.

Takes no parameters.

traverse_graph

Execute a SELECT against the Engagement Graph

Executes 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 start with SELECT or WITH, contain no DML/DDL keywords, and reference one of your caller_user_ids or caller_tracked_lp_ids verbatim. Cap: 1000 rows, 5s statement timeout. Pure DB read — 0 credits.

Parameterssqlrequired

get_company_engagement_overlap

Company Engagement Overlap

Given 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 DB read — no LinkedIn pull, no credits charged.

Parameterslimitcompany_a_idcompany_b_idcompany_a_urlcompany_b_url

get_outreach_path

Outreach Path to Target

Given 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 read — no LinkedIn pull, no credits charged.

Parameterslimitmax_hopstarget_person_idtarget_linkedin_url

get_post_set_engagers

Get Post-Set Engagers

Return 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 within freshness_days, and enriches (title/company via a profile lookup) only never-seen people, up to max_enrich. Costs 2 credits per post synced + 3 per person enriched; cached posts are free.

Parametersforcemax_postsmax_enrichprofile_idcollection_idfreshness_days

Version history

2
  1. v1.0.1LatestNov 7, 2026
  2. v1.0.0Nov 3, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts