Insaight
Research and record-keeping for manual outreach: it briefs you on a person or a company, mines a post's comment thread, and keeps a local ledger of what you sent and what replied. It has no send path at all. An Apify API token. No LinkedIn credentials of any kind.
- Last read
What it is built for, and the jobs it cannot do
The second card is the one a repository README never contains. Both are written from the project's own documentation and source, read on 20 September 2026.
Someone doing manual LinkedIn outreach who wants the research and the record-keeping automated but intends to write and send every message themselves. Building a brief before a cold message, mining a post's comment thread for warm leads, and keeping a local ledger of what was sent and what got a reply, with a reflection loop that proposes style-memory updates you approve.
Anyone who wants sending automated: no messages, no connection requests, no InMail, no posting, no commenting, no reacting. Not for reading your LinkedIn inbox. Not for Sales Navigator or Recruiter data. Not for anyone unwilling to pay Apify per record, or to accept that scraping may conflict with LinkedIn's terms. Not production-grade: one author, six commits, version 0.1.0.
- Publisher
- Spiros Baxevanakis — independent developer, no company behind it — not affiliated with LinkedIn or Microsoft.
- Licence
- MIT — open source
- Version
- 0.1.0
- Runs
- Self-hosted
- Transport
- stdio
- Repository
- github.com/spirosbax/insaight
- Last read
Hosting and transport are as the project documents them: Runs locally as a stdio process. The fetching happens inside hosted Apify actors; the cache is a local SQLite file.
An Apify API token. No LinkedIn credentials of any kind.
A third-party data vendor's key. No LinkedIn login, cookie or grant is involved, and the vendor's own infrastructure does the fetching.
No account of yours can be restricted, because no account of yours is used. You are instead paying someone else to do what LinkedIn’s terms forbid, so the exposure is contractual and legal rather than account-level.
No LinkedIn account is behind the server, or it acts only through LinkedIn’s own approved API and only to read. Nothing here can get an account restricted.
An Apify API token is required, written to a local dotfile or passed in the client's env block; Apify's LinkedIn actors do the fetching and the results are cached locally in SQLite. An Anthropic API key is optional and is used only by a command-line post categoriser — the MCP server itself never reads it. The optional Notion skill needs the separate Notion MCP server. No session cookie, no LinkedIn username or password, no OAuth.
Account risk is derived from the authentication class and from whether the server writes to LinkedIn — not judged per project. The 5 classes and the rule that maps them are on the LinkedIn MCP server directory; the ceilings LinkedIn enforces on any account, automated or not, are on LinkedIn limits. What this particular server exposes, and what it does with your credentials, is below.
Its write tools land off LinkedIn, not on it
These are the tool names the server registers, as a client sees them. An assistant can call any tool the server exposes once it is connected, so the list below is the whole surface, not a feature summary.
- list_accounts
- scrape_profile
- scrape_people
- scrape_person_profile
- scrape_post_comments
- list_posts
- get_posts
- search_posts
- list_people
- list_comments
- get_stats
- log_outreach
- record_outcome
- list_outreach
- get_outreach_stats
- get_memory
- update_memory
- get_config
All 18 tools it registers are named above. Four tools fetch through Apify. The rest query the local cache, which is why most of them are instant and free.
What it can read
15 read actions, written as what they return rather than as the tool signature.
- Fetch fresh posts for any LinkedIn URL, through Apify.
- Fetch a company's employees and leadership, through Apify, in a short or a full mode.
- Enrich one person — experience, education, skills, volunteering, languages — through Apify.
- Fetch a post's comment thread with author information, through Apify.
- Query the local index of stored posts: metadata plus a short snippet.
- Return full content for selected posts by identifier, at most twenty per call, from the local store.
- Full-text keyword search across stored posts, locally.
- Query stored employees and leadership, locally and instantly.
- Query stored comments for a post, ranked by likes, locally.
- Discover which companies and personal profiles are being tracked.
- Database overview: counts, date range, categories.
- Query the outreach ledger: whether someone was contacted before, what is pending, what the history is.
- Reply-rate breakdown by hook type, variant and channel.
- Read the learned style guide and strategy playbook.
- Read the configured Notion pages and company configuration.
What it can write, and where the write lands
3 write actions, none of which touches LinkedIn. They change a vendor workspace, a connected system or a file on your own machine.
| Action | Where it lands | What it does |
|---|---|---|
log_outreach | Off LinkedIn | Records that you sent something, in the local SQLite ledger. It sends nothing. |
record_outcome | Off LinkedIn | Records a reply or a non-reply, locally. There is no inbox access: outcomes exist because you reported them. |
update_memory | Off LinkedIn | Writes to the local Markdown memory files that hold the learned style guide. |
Read the middle column before the third. A write that lands off LinkedIn — a vendor workspace, a CRM, a local file — is undone by deleting a row. A write that lands on LinkedIn has already been seen by another member.
Installing it, in the project's own commands
Every command and every configuration block below is the project's own, copied unchanged on 20 September 2026. Where a project publishes no config block, this page says so rather than composing one — a snippet written here would be a snippet the maintainer never tested.
Prerequisite
curl -LsSf https://astral.sh/uv/install.sh | shSkip if uv is already installed. The plugin runs the server with uvx, so without uv on PATH the tools never load.
Claude Code plugin
/plugin marketplace add spirosbax/insaight
/plugin install insaight@insaightApify token
mkdir -p ~/.insaight && echo "APIFY_API_TOKEN=apify_api_..." >> ~/.insaight/.envRestart the client afterwards. The first uvx run builds the server before it answers.
The configuration block
Client config keys are not interchangeable, and a block pasted under the key a different client expects fails silently rather than erroring. That is why the blocks below are the project's own, in the clients it names, rather than one block normalised here.
uvx from the Git repository
{
"mcpServers": {
"insaight": {
"command": "uvx",
"args": ["--from", "git+https://github.com/spirosbax/insaight", "insaight"],
"env": { "APIFY_API_TOKEN": "apify_api_..." }
}
}
}uv and Python 3.11 or newer on the local machine. No Docker. No headless browser locally — the browser work happens inside Apify's hosted actors. An Apify account and API token are required; the free tier is usable, with per-run costs above it. A local SQLite database and Markdown memory files live in a dotfolder in your home directory. Optionally an Anthropic API key for the categoriser, and the Notion MCP server for one skill.
Claude Code (installed as a plugin from the repository's own marketplace); Claude Desktop; Any stdio MCP client that can run uvx (not documented, but the repository's own entry is a plain stdio one). Where the file goes in each Claude surface.
stdio only. The client launches it as a local process through uvx; there is no remote endpoint.
Runs locally as a stdio process. The fetching happens inside hosted Apify actors; the cache is a local SQLite file.
The vendor's own figures, quoted rather than computed
The server is free and MIT-licensed. The cost is Apify usage. The README states a free Apify tier works and publishes approximate actor costs: around $1.50 per 1,000 posts; company employees around $4 per 1,000 in short mode or $8 per 1,000 in full mode; profile enrichment around $4 per 1,000. The optional categoriser additionally bills Anthropic API tokens.
Does not touch Sales Navigator. All data comes from Apify actors over public LinkedIn pages.
No Recruiter, Recruiter Lite or applicant-tracking surface.
None of the figures above are LinkedIn's. They are third-party prices in the currency and the tiering each project publishes, read on 20 September 2026 and quoted rather than converted.
The code has moved recently
20 days between the last code change and the day these figures were read. Code changed within 90 days of the day this directory was checked.
Early. Created April 2026, first public release 30 August 2026, six commits in total, all inside a two-day window. One author, no releases or tags published, no contributors beyond the owner.
Active means code changed within 90 days of the observation date; stale means up to 365 days. It is measured from the last change to code, not to the README, and never from the maintainer's own adjective. Anything past a year is dropped from this directory rather than published as dormant.
- Stars
- 31 — 3 forks, 0 watchers.
- Last commit
- Open issues
- 0
- Status
- Active
- Observed
Every figure in this section was read from GitHub on , and star and issue counts move daily. The issue count is the Issues tab, not the API field of the same name — that one counts pull requests as issues and overstates every repository in this directory.
What to check before you point it at a real account
Both cards below are read from the repository and its own security documentation. A project saying what it does with a session is evidence of intent, not proof of behaviour.
No LinkedIn account risk from automation, because the server never logs into LinkedIn and never acts as you: there is no cookie, no session and no write path to the platform. The risk moves to the scraping layer. The README states it plainly: "Insaight fetches public LinkedIn data through third-party Apify actors; automated collection may conflict with LinkedIn's Terms of Service, and you are responsible for how you use this tool. Keep volumes reasonable and respect the people behind the profiles."
The Apify token sits in plaintext in a local dotfile or in the client's config env block. Scraped third-party profile data — names, employers, education, comment history — is persisted indefinitely in a local SQLite file, which is a GDPR consideration for anyone in the EU or UK storing profiles of people who never opted in. The README's own claim is that "Everything stays local: posts, people, the outreach ledger, and learned memory live in SQLite and Markdown on your machine, and nothing is sent anywhere except your own Apify/Anthropic/Notion accounts." That still means the LinkedIn URLs you research are sent to Apify, and post text is sent to Anthropic if you use the categoriser.
1 thing that will waste an hour
Small, checkable and specific to this project — a stale package name, a broken link, a manifest that advertises something the code removed.
- Version 0.1.0, one author, six commits. It has not yet survived a change at either LinkedIn or Apify.
The servers that do a comparable job, and how they differ
Same rows, same sources, same observation date. The first column is this server.
| Insaightv0.1.0 | Anysite MCP Serverv3.0.0 | Bright Data MCP (LinkedIn tools)v2.11.3 | |
|---|---|---|---|
| Authenticates with | Vendor API key | Vendor API key | Vendor API key |
| Account risk | Low | Low | Low |
| Writes to LinkedIn | None | None | None |
| Tools registered | 18 | 15 | 69 |
| Sales Navigator tools | No | No | No |
| Recruiter tools | No | No | No |
| Runs | Self-hosted | Hosted by the vendor | Either |
| Last code change | 31 August 2026 — active | 6 August 2026 — active | 15 September 2026 — active |
| Licence | MIT, open source | MIT, open client, closed service | MIT, open source |
Anysite MCP Server
Vendor API keyA hosted, paid server that returns structured LinkedIn data — profiles, people search, companies, posts, jobs, the Ad Library — plus a dozen other sources, with server-side filtering and export. No LinkedIn login goes anywhere near it, and it cannot write to LinkedIn at all.
stdio and Streamable HTTP15 toolsRead 20 September 2026Bright Data MCP (LinkedIn tools)
Vendor API keyA general web-access server with five LinkedIn extractors: hand it a profile, company, job, post or people-search URL and it returns structured JSON. It holds no LinkedIn credential, so there is no account to restrict.
stdio and Streamable HTTP69 toolsRead 20 September 2026
Every page this profile was read from
6 pages — the repository, its documentation and, where one exists, the vendor's own pricing page. Nothing on this profile is summarised from another directory or from a blog post about the project.
- github.com/spirosbax/insaight
- raw.githubusercontent.com/spirosbax/insaight/main/README.md
- api.github.com/repos/spirosbax/insaight
- api.github.com/repos/spirosbax/insaight/commits
- raw.githubusercontent.com/spirosbax/insaight/main/insaight/mcp_server.py
- raw.githubusercontent.com/spirosbax/insaight/main/.env.example
All of them read on . A repository moves faster than a price does: if a tool list or a command here no longer matches the project, the project changed and this page has not been re-read yet.
Check what it cannot reach before you build on it
No account of yours can be restricted, because no account of yours is used. You are instead paying someone else to do what LinkedIn’s terms forbid, so the exposure is contractual and legal rather than account-level.