LinkedIn Evidence MCP (victoryotzev/linkedin-mcp) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 44 tools. No publisher has claimed this listing.
A local-first LinkedIn workspace that turns your own documents, CVs, repositories, and exports into a verifiable claim ledger and evidence-backed canonical profile, enabling evidence import, claim verification, profile patching, post drafting, content planning, analytics, and publication approvals through MCP tools — all stored locally in SQLite with an optional human-review dashboard.
Emerging. No concerning findings. Grades remain capped until the project builds reputation through adoption. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
victoryotzev
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
linkedin_analytics_importRecord metrics the member transcribed from their own LinkedIn UI (impressions, reactions, comments, profile views, followers). LinkedIn's member-analytics APIs require Community Management access that individuals cannot obtain, so manual import is the supported path. Duplicate (subject, metric, time…
linkedin_analytics_queryList observations, summarise metrics, or compare two groups of posts. Comparisons always return their sample size, mandatory confounders and a confidence label capped at "moderate" — a single account cannot support a causal claim.
linkedin_capability_statusList LinkedIn credential/API readiness with status, blockers, and remediation. This is separate from shared feature settings. Credentials use the dashboard or CLI; verification and non-secret feature decisions can also be performed through MCP with confirmation.
linkedin_feature_controlList every MCP/dashboard feature group with its description and effective state, or enable/disable one after explicit confirmation. All groups default enabled except live_publishing. Secrets are not a feature setting and cannot be configured through MCP.
linkedin_changeset_generateGenerate exact old/new field patches from the canonical-vs-snapshot diff, evidence-linked. Cited claims are re-verified at generation time. Applying a patch is ALWAYS a manual copy/paste by the user — no profile-edit API exists.
linkedin_changeset_reviewAccept, reject, edit, or supersede a field patch. Editing re-hashes the patch and drops it back to proposed — approvals never survive content changes. Get a change set by generating it or via the id returned earlier.
linkedin_changeset_exportCopy-paste bundle for all APPROVED patches in a change set: exact text (byte-identical to the approved patch), char counts vs limits, and where in the LinkedIn UI to paste each field. Blocks if any approved patch exceeds its char limit.
linkedin_patch_mark_appliedRecord that the user manually pasted an approved patch into LinkedIn. The next linkedin_snapshot_import auto-verifies it when the new text appears in the snapshot.
linkedin_changeset_getFetch a change set with all its patches and states.
linkedin_claim_listSearch the evidence ledger. Filters: state, stale (verified past review_by), sensitivity, artifact, full-text. With id set, returns the claim plus its evidence locations.
linkedin_claim_managePropose, verify, reject, mark_ambiguous, or merge claims. Verification and rejection are HUMAN decisions: verify requires confirm:true after the user has reviewed the evidence (>=1 primary link required; authorship-shaped statements cannot cite local_clone_reference sources). Rejections persist as p…
linkedin_conflict_listList detected evidence conflicts with their member claims.
linkedin_conflict_resolveResolve or dismiss a conflict, optionally applying member claim transitions atomically (all-or-nothing). Human decision: requires confirm:true.
linkedin_coverage_checkMap each sentence of a text to supporting VERIFIED claims (deterministic token-overlap screening). Persists a content-addressed report; identical text returns the same report.
linkedin_content_opportunitiesRank verified claims by novelty — how little they overlap with what has already been published or drafted. Each idea carries its claim id and any allowed-wording limitations, so a draft can cite it directly.
linkedin_voice_profileDescriptive statistics of the member's own published posts (length, language mix, hashtag habits, cadence). Use it to match how they actually write instead of inventing a tone. Import the history first with linkedin_published_import.
linkedin_published_importParse the Shares file of an imported LinkedIn export into the member's own published-post history (used for repetition checks and the voice profile).
linkedin_draft_writeCreate a post draft or append a new revision. Revisions are append-only and every write drops the draft back to "draft" state, invalidating any earlier validation — text and approval are always bound to one revision hash.
linkedin_draft_listList drafts, or with id return the current revision text, its latest validation report and the exact preview that a publication approval would bind to.
linkedin_draft_validateRun the deterministic gates on the current revision: evidence coverage (unsupported sentences block), secret leakage, fabricated metrics (quantities absent from verified claims), repetition against published posts and other drafts, filler language, character limit and link shape. Passing moves the d…
linkedin_calendar_planCreate or update content pillars and calendar entries, or list them. Planning metadata only — nothing is ever published from a date; publishing always requires an explicit human approval.
linkedin_capability_verifyProbe LinkedIn to confirm a configured capability actually works, then record the result. Requires a stored token, which is entered in the dashboard or masked companion CLI and never passes through MCP. Fails closed with the exact blocker while no developer app exists.
linkedin_dma_syncPull the member's own data through the EU Data Portability API: Snapshot for profile and post history, Changelog for the rolling 28-day event window. Runs only when invoked — this app ships no scheduler — and sensitive domains (messages, connections, logins, ad profiling) are excluded by default. Sn…
linkedin_profile_read_latestInitiate a NEW read of the member's own profile through the EU Data Portability lane: reconcile the Member Changelog, then fetch all ten non-sensitive profile Snapshot domains. Every call issues fresh upstream requests — unlike linkedin_profile_get, which returns the local canonical profile and call…
linkedin_backup_runCreate a verified backup (online SQLite snapshot + artifacts + hash manifest) inside the managed data directory, or produce an export bundle of the member's own data. There is no path parameter: backups only ever land in the managed location. Secrets are never included.
linkedin_purge_runRun retention, permanently delete one uncited artifact, prune or delete EU Data Portability data, or schedule a full local purge. prune_dma drops portability history older than a cutoff while keeping the current observed profile; purge_dma deletes the portability lane outright, which is how a member…
linkedin_readiness_checkReport what is configured, what needs attention, and the single most useful next step. Read-only: it never enables, imports, migrates, or verifies anything. Use this first on a new install, and whenever something appears not to work. A check reported as "unavailable" is not a task — it is something …
linkedin_intake_describeStore a short self-description as evidence, for a member who has no CV to hand. The text is stored as a self-attested artifact: it ranks below a document the member wrote earlier, and claims resting only on it are self-reported rather than evidence-backed. Ask the member to write it in their own wor…
linkedin_profile_getThe LOCAL canonical profile: evidence-backed sections this app holds as authoritative (append-only revisions; null = never written), plus the snapshot index. This is not a live LinkedIn read and makes no claim about what linkedin.com currently shows. linkedin_profile_read_latest does call LinkedIn, …
linkedin_profile_updateAppend a new revision of a canonical section (headline, about, experience, ..., audiences, positioning_brief, keyword_map). Every cited claim must be VERIFIED; based_on_revision enforces optimistic concurrency (pass the current revision id, or null for a first write).
linkedin_snapshot_importParse an imported LinkedIn source (linkedin_export archive or profile-PDF document) into a versioned snapshot with normalized fields for diffing. Import the source with linkedin_import_run first.
linkedin_profile_diffField-level diff between profile states: 'canonical', 'snapshot:latest', or 'snapshot:<id>'. Snapshot fields are mapped onto canonical section keys.
linkedin_profile_scoreExplained profile scores — completeness, evidence coverage, freshness — as transparent ratios with per-finding details. Recomputed deterministically on demand (no fake precision, no persistence). Keyword-alignment scoring activates once a positioning_brief section exists.
linkedin_publish_requestCreate a pending, revision-bound approval for a validated draft and return the exact preview a human must review. A later grant, rejection, or revision requires a separate explicit user confirmation through linkedin_approval_decide, the dashboard, or the human-control CLI.
linkedin_approval_statusList approvals and their states, or inspect one with the exact text it binds. Approvals are single-use and die when the draft is edited.
linkedin_approval_decideAct on a pending publication request only after the user explicitly confirms the decision in the current conversation. Grant binds to the exact revision hash; deny requires a reason; revise appends new text and invalidates the pending approval. Ask for confirmation first and never infer approval fro…
linkedin_publish_executeConsume a GRANTED approval and publish through an adapter. Dry-run simulates the path. The real LinkedIn adapter requires live_publishing enabled, a verified write credential, and the exact PUBLISH command from the user. The approval is consumed before sending and is never reusable; a lost response …
linkedin_publication_reconcileResolve a publication whose outcome is unknown because the response was lost. The user checks their LinkedIn activity and reports whether the post exists; a retry after "not found" requires a fresh approval.
linkedin_audit_queryRead the append-only, hash-chained audit log and optionally verify the chain. A broken chain blocks all approvals and publications until the database is restored from a verified backup.
linkedin_settings_setlinkedin_source_manageRegister, enable, disable, or archive an evidence source root. Registration lands in 'pending_review'. Enabling filesystem access requires confirm:true and the exact command ENABLE <source_id> after the user reviews the path and trust class.
linkedin_source_listList registered evidence sources with status and import stats.
linkedin_import_runCopy files from an ENABLED source into the immutable content-addressed store (originals are never moved), extract text with secret redaction, dedup by hash, and supersede changed files. Per-file failures become reject entries; the run continues. LinkedIn-export archives skip third-party-PII files by…
linkedin_artifact_listList imported artifacts (filter by source, mime, or full-text query). With id+detail, returns metadata plus a capped text preview wrapped in an UNTRUSTED-content envelope, after hash-verifying the stored bytes (fails closed on tampering).
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tests exist
No test files found
Add tests that exercise each declared tool.
Domain consistency
npm scope @linkedin-mcp doesn't match GitHub owner victoryotzev
Use the same org name across GitHub, npm, and your homepage so users can verify the publisher.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/victoryotzev/linkedin-mcp)?variant=verified to the badge URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check