easysociable-mcpBLOCK
MCP server + agent skills: Claude Code, Cursor or Codex turn a prompt into a branded multi-page carousel for TikTok, Instagram and LinkedIn.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.npmjs.com/package/@easysociable/cli) [](LICENSE) [](https://modelcontextprotocol.io/)
A Model Context Protocol (MCP) server that empowers AI agents (Claude Desktop, Claude Code, Cursor, Codex) to turn prompts, outlines, and markdown into branded, multi-page social carousels and slideshows for TikTok, LinkedIn, Instagram, Threads, and Xiaohongshu.
What is EasySociable?
EasySociable is an agent-native visual production layer that bridges the gap between text-based AI models and finished visual carousel decks:
- AI Agent writes the content: Claude or Cursor creates the story, pacing, and slide copy.
- EasySociable binds the design: Applies proven layout families, enforces Brand Kits (fonts, colors), and prepares a durable Slideshow Run.
- In-Browser Studio: Open the private review link in your browser to polish text or swap images without layout drift.
- Multi-Platform PNG Pack: One-click download optimized for TikTok (9:16), LinkedIn (4:5 / 1:1), Instagram (4:5 / 1:1), and Xiaohongshu (3:4).
Quickstart & Installation
Option 1: Claude Desktop
Add this configuration to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"easysociable": {
"command": "npx",
"args": ["-y", "@easysociable/cli", "mcp", "serve", "--transport", "stdio"]
}
}
}Option 2: Cursor
Add the MCP server to Cursor via Cursor Settings > Features > MCP Servers > Add New:
- Name:
easysociable - Type:
command - Command: `npx -y @easysociable/cli mcp ser
a9c31732b826OBSERVED · 2026-10-14Install
Commands as the repository documents them. They are shown, not run.
npm install -g @easysociable/cli
git clone https://github.com/murphywuwu/content-engine.git
git clone https://github.com/murphywuwu/content-engine.git
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| claude-desktop | mentioned | |
| codex | mentioned | |
| cursor | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: easysociable-content description: > Operate the EasySociable Content Engine: Knowledge (Karpathy LLM Wiki), hook-led Topics, formula-led Runs, profile, brand, media, workbench. Triggers: 采访我, 完善人设, interview me, who am I as a creator, 建立 profile — follow workflows/INTERVIEW.md (engine CLAUDE.md § Interview wins if present). Triggers: 记一下, 存资料, ingest, 问知识库, what do we know about, lint 知识库, 整理知识 — follow engine CLAUDE.md § Knowledge (Ingest / Query / Lint). Triggers: 列出 hooks, 选 hook, 用 H-... 生成选题, 做成选题 — follow engine CLAUDE.md § Topics (Hook → Formula → Knowledge). Triggers: 开一单, 用 T-... 开一单, 出图 — follow engine CLAUDE.md § Open a run (content straight from the Topic's Formula). If no engine exists, copy/clone the Content Engine core (see Create below; `easysociable engine init` is optional offline scaffold). Then follow Content Engine/CLAUDE.md. Render handoff: easysociable-template (1 page) or easysociable-slideshow (2+, Formula handoff). Never publish or post. --- # EasySociable Content Entry card for agents. **Do not invent a parallel workflow.** Instance SoT is that engine’s `Content Engine/CLAUDE.md`. Workflows here fill gaps or win when newer than the matching § in CLAUDE.md. ## Product boundary - Teach a **Content Engine**: knowledge you own → a hook-led decision → formula-led content → feedback that updates knowledge. - **EasySociable** supplies the **Hooks / Formulas catalog** and the **visual production layer** (Studio). It is not the content brain. ## Three loops (do not collapse) ```text Knowledge raw/ (immutable) → knowledge/pages (agent-maintained wiki) → index.md + log.md Topics Hook (H-...) → one of its Formulas (F-...) → angle from knowledge pages → T-... Runs Topic's Formula beats → content.md + content-pack.v1 → Studio → feedback ``` | Stage | Owns | Does not | |-------|------|----------| | `raw/` | Verbatim sources + URL | Ever get edited after save | | `knowledge/pages` | `source` / `concept` / `entity` / `synthesis` pages with `[[links]]` | Viral-post teardowns; facts no raw source supports | | Topic `T-` | `hook_id` + `formula_id` + `knowledge_ids` + Beat plan | Exist without a hook and a formula | | Run | One platform; one page per formula beat | Re-pick hook/formula; idea → brief → packet → draft → editor → rubric chain | | Workbench | Read-only observatory (Knowledge graph, Topics, Runs) | Source of truth (markdown is) | ## Hard rules 1. **No invented facts or quotes** — slot text and Beat plans come from knowledge pages only; gaps go in **Do not claim**. 2. **No hook → no topic.** Never invent `H-` / `F-` ids; read them from `easysociable hooks list` / `formulas get`. 3. **Knowledge is compiled, not re-derived** — ingest updates every touched page, records contradictions instead of overwriting, regenerates `knowledge/index.md`, appends `knowledge/log.md`. 4. **Runs follow the Formula** — same beat count, order and roles; `layoutFamilyId = look.slides[n] ?? look.layouts[role]`. 5. **Rebuild workbench** after markdown writes in the engine vault (`python3 workbench/build.py`); after knowledge writes also `python3 scripts/lint-knowledge.py --engine .`. 6. Hook link for the user: `https://easysociable.com/hooks/<hook_id>`. ## Create / serve / build **This skill** is installed only via EasySociable CLI (`easysociable install --skills content...`). It is **not** shipped inside the public Content Engine git repo. **Primary (public core — preferred):** clone the Content Engine repo, then run workbench from that folder. See `LAYOUT.md` (core vs vault; optional `engine.json` `vault_root`). ```bash git clone https://github.com/murphywuwu/content-engine.git cd content-engine python3 workbench/build.py python3 workbench/serve.py --no-open ``` **Optional:** `easysociable engine init --root <parent> --yes` clones the same repo into `<parent>/Content Engine` (never overwrites an existing engine). ```bash easysociable engine serve --engine <parent>/Content Engine --no-open easysociable engine build --engine <parent>/Content Engine ``` `python3` is required for the workbench. Observatory: `http://127.0.0.1:8765/workbench/` — tabs **Knowledge** (graph) / Topics / Runs. If `serve.py` is already up, do not start a second server; rebuild only. ## Operate 1. Resolve account → profile (engine `CLAUDE.md`). 2. Route by intent (table below). Prefer engine `CLAUDE.md` sections; use `workflows/*` when that file is newer or the § is missing. 3. Always return a short result card in chat. 4. Rebuild workbench after writes. | Intent | Action | |--------|--------| | 采访我 / interview me / 完善人设 / 建立 profile | **workflows/INTERVIEW.md** (not a render) | | 记一下 / 存资料 / ingest + link or file | Engine **§ Knowledge · Ingest** | | 问知识库 / what do we know about X | Engine **§ Knowledge · Query** (offer to file back as `synthesis`) | | lint 知识库 / 整理知识 | Engine **§ Knowledge · Lint** | | 列出 hooks / 选 hook / 用 H-... 生成选题 | Engine **§ Topics** | | 开一单 / 用 T-... 开一单 | Hard gate → engine **§ Open a run** (ask platform; multi → N runs) | | 1 page | **easysociable-template** with `Formula: <id>` (after hard gate) | | 2+ pages (any platform) | **easysociable-slideshow** *Formula handoff* (after hard gate + **ADR-0036 identity chain**: Studio login → API key → `easysociable auth login` → create) | | X / xiaohongshu text-only | No render skill — ship copy from `content.md` | ## Render hard gate **Before any template/slideshow call:** Identity in `profiles/<active>/voice.md` — Role / What I build / Point of view — no `(fill)` and non-empty; `boundaries.md` exists with Not covering and Never claim both non-empty. Public handle MAY stay `(fill)`. On fail: **stay in this skill**. List missing files. Do not call template or slideshow. User must say **强制继续** / **force continue** to proceed. ```bash easysociable engine validate --root <engine> --require-knowledge ``` ## Out of scope No social posting, Content MCP, Local API, or SQLite content lib
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (8)
.replace(/style=\{\{([\s\S]*?)\}\}/g, (_, body) => 'style="' + toCss(Function('return {' + body + '}')()).replace(/"/g, "'") + '"')`python3` is required for the workbench. Observatory: `http://127.0.0.1:8765/workbench/` — tabs **Knowledge** (graph) / Topics / Runs. If `serve.py` is already up, do not start a second server; rebuil
`data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNjAnIGhlaWdodD0nMTYwJyB2aWV3Qm94PScwIDAgMTYwIDE2MCc+PHJlY3Qgd2lkdGg9JzE2MCcgaGVpZ2h0PScxNjAnIGZpbGw9JyNDOUNER
@easysociable/cli
8. When the user says publish → run `workflows/PUBLISH_FROM_DRAFT.md`.
If the user asks for any of the following, **do not** execute them under this skill:
curl -fsSL https://easysociable.com/install.sh | bash
curl -fsSL https://easysociable.com/install.sh | bash
Gates applied: no_behavioural_pass.
a9c31732b826full audit observations/trust-audit/skill/murphywuwu__easysociable-mcp.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-14 | a9c31732b826 | BLOCK | D | 69 | first audit |
Questions
What does the easysociable-mcp skill do?
MCP server + agent skills: Claude Code, Cursor or Codex turn a prompt into a branded multi-page carousel for TikTok, Instagram and LinkedIn.
Is easysociable-mcp safe to install?
No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.
What can easysociable-mcp access on my machine?
The audit observed that it runs shell commands. Each of those is consistent with what it says it does. Secrets in the source: none found.
Which assistants does easysociable-mcp work with?
Its documentation mentions claude-code, claude-desktop, codex and cursor. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (a9c31732b826), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.