io.github.NJ-Burrito/profile-wrap-mcp·Marketing

Profile-Wrap

Draft, gate and review LinkedIn posts in a Profile-Wrap workspace; posts only board-Allowed drafts.

Stars
1
Version
0.2.1
License
MIT
Review
Passed
Language
Python
Last commit
23m ago
Forks
0
Open issues
5
Registry update
Oct 16, 2026
automationclaude-codehyperframeslinkedinopen-sourceqa

Connect

pypi
Terminal
$claude mcp add profile-wrap-mcp \  -e PROFILE_WRAP_WORKSPACE=<profile-wrap-workspace> \  -- uvx profile-wrap-mcp==0.2.1

Environment variables

  • PROFILE_WRAP_WORKSPACE

    Absolute path of the Profile-Wrap workspace folder (the one holding config/, drafts/, research/). Leave empty to use the default lookup.

Security review

Review passed

Reviewed 16m ago.

metadata
scanned
packages
1 checked

No findings.

Tools

This server runs on your machine, so its tool list is not fetched before install — the README below describes what it offers.

profile-wrap-mcp

mcp-name: io.github.NJ-Burrito/profile-wrap-mcp

A stdio MCP server for a Profile-Wrap workspace. It lets an MCP client (Claude Code, Codex, any other) check the workspace, draft a post from a topic, run the fact gate, manage unverified facts and read the review board. It can also post, but only a draft a person already pressed Allow on, on the review board.

Independent, open source (MIT). Not affiliated with LinkedIn. The server talks to LinkedIn only through the official API with your own developer app, and only inside post_allowed.

Tools

ToolWhat it doesWrites
workspace_statusposting mode, pauses and stops, 20 h gap, token state, draft counts, posts todaynothing
calendar_listcontent-calendar entries, optional status filternothing
draft_createnew text draft from a topic with your chosen provider; verified facts only; state draftdrafts/<slug>/
gate_runthe deterministic gate on a draft (numbers, claims, language, banned patterns)gates.json
facts_listthe fact register with each fact's statusnothing
facts_addadds a fact as unverified; a person verifies it in a terminalresearch/facts.md
review_statereview-board state of one draft or all, and whether it was Allowednothing
post_allowedposts one board-Allowed draft; confirm=false (default) is a dry runledger, draft status

Resources: pw://calendar, pw://drafts, pw://drafts/{slug}.

Safety

  • post_allowed refuses every state except allowed (draft, revising, hold, rejected, needs_check, missed, posted, demo), and refuses an allowed status that has no board Allow as the latest entry in the review history.
  • It calls profile_wrap.linkedin.post.publish, the same function as profile-wrap post --now: gate PASS, 20 h gap, one post a day, posting lock, 429/403 stop, pauses, and the ledger row written before anything is sent.
  • No tool reads direct messages, sends connection invitations, comments, likes or verifies a fact.
  • No key or token is ever returned. draft_create sends the topic and your verified facts to the provider you chose.

Install

uvx profile-wrap-mcp --workspace /path/to/your/workspace
claude mcp add profile-wrap -- uvx profile-wrap-mcp --workspace /path/to/your/workspace

Without --workspace the server uses PROFILE_WRAP_WORKSPACE, then the usual Profile-Wrap lookup. More: docs/MCP.md.

From the server's repository — third-party content, read it before running anything it suggests.

More in Marketing

Listing from the official MCP Registry · repository facts from GitHub, 18m ago.