social-flowBLOCK
Claude Code plugin: a channel-based short-form/long-form social content pipeline — storyboard with adversarial quality gates, video production, HITL-approved publishing, and autonomous growth loops. Built-in MCP server, 46 tools.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://github.com/ttalkkaklab/social-flow/actions/workflows/check.yml) [](LICENSE) · Docs: English · 한국어
A Claude Code plugin that runs a channel-based short-form/long-form content pipeline — storyboard (plan only — nothing is generated) → per-platform video & text production → HITL-approved publishing — over a data/[channel]/episodes/[topic]/ directory tree.
A channel is one content brand you operate: one data/ directory per channel, with tone, voice, theme, and publish targets pinned in profile.md. Publish targets: Threads · Instagram (Reels) · Facebook Pages · YouTube (Shorts and long-form).
Before production, HITL offers 100% 이상, 50% 이상, 30% 이상 and 훅만 영상 (100%, at least 50%, at least 30% of new cuts, or the opening hook only), with model, resolution, audio setting, first-pass and retry-inclusive video costs and an explicit budget cap. The read-only cost comparison uses the same API price table and routing as production, including minimum billed clip lengths. It labels KRW conversion as an assumption and excludes image, voice, editing and tax costs. The choice contract persists approval and detects changed quotes. Existing recordings and shared outros retain their source.
Full-video image planning ships the tactile miniature style pack: five generated PNG references, a versioned manifest, and material, lighting, composition and content-review instructions. The prompt assembler returns actual reference-image arguments resolved from the installed plugin, so another machine does not need this episode's images. Use the references for appe
86a9da47d5bcOBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add social-flow-mcp-server --env ARK_API_KEY=${ARK_API_KEY} --env DATA_GO_KR_API_KEY=${DATA_GO_KR_API_KEY} --env ELEVENLABS_API_KEY=${ELEVENLABS_API_KEY} --env FACEBOOK_PAGE_TOKEN_FILE=${FACEBOOK_PAGE_TOKEN_FILE} -- npx -y @zeans/[email protected]{
"mcpServers": {
"social-flow-mcp-server": {
"command": "npx",
"args": [
"-y",
"@zeans/[email protected]"
],
"env": {
"ARK_API_KEY": "${ARK_API_KEY}",
"DATA_GO_KR_API_KEY": "${DATA_GO_KR_API_KEY}",
"ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}",
"FACEBOOK_PAGE_TOKEN_FILE": "${FACEBOOK_PAGE_TOKEN_FILE}"
}
}
}
}Exposed tools (1)
0 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
threads_draft_create | write | Store a Threads growth draft before review. Returns draftId and bodyHash (SHA-256 of NFC, LF, trimmed body + selfReply). Edits require a new draft and reviews. No public posting. |
Trust audit
BLOCKgrade F · trust 58/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 | WARN |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (12 observation(s))
- Network
- declared (10 observation(s))
- Shell
- declared (4 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
below is written against it. Without ego lite, stop and tell the user; SKILL.md
below is written against it. Without ego lite, stop and tell the user; SKILL.md
below is written against it. Without ego lite, stop and tell the user; SKILL.md
const secret = 'tks_test_never_print_this_key';
writeFileSync(credFile, JSON.stringify({ apiUrl: 'https://portal.test', workspace: 'lab', apiKey: 'tks_test_image_upload', holder: 'test@local' }));writeFileSync(join(root,'test','ttalkkakstory.json'),JSON.stringify({apiUrl:'https://portal.test',workspace:'lab',apiKey:'tks_0123456789abcdefghijklmnopqrstuvwxyzABCDEF'}));const mutant=t=>new Function('return ('+groupTextRows.toString().replace('*.5','*'+t)+')')();exec(compile(source, '<installed watcher hook>', 'exec'), namespace)
hashes.push(createHash('md5').update(readFileSync(f)).digest('hex').slice(0, 8));REC_SRC="../../skills/ingest/references/record.sh"
import { authorizeSpeed } from '../../skills/produce/references/tts-speed-policy.js';const pricesFile = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../skills/autoproduce/references/prices.tsv');
import { authorizeSpeed } from '../../skills/produce/references/tts-speed-policy.js';const checker = resolve(dirname(fileURLToPath(import.meta.url)), '../../skills/platform-guide/references/check-style.py');
| `MLX_SERVE_URL` | mlx_* | `http://127.0.0.1:11234` | MLX Core / mlx-serve HTTP base. This plugin never launches the app; a down server fails closed |
<tr><td><code>MLX_SERVE_URL</code><br>(default <code>http://127.0.0.1:11234</code>)</td><td><code>mlx_*</code></td><td>Loopback mlx-serve. This plugin never launches the app; a down server fails close
<tr><td><code>MLX_SERVE_URL</code><br>(기본 <code>http://127.0.0.1:11234</code>)</td><td><code>mlx_*</code></td><td>루프백 mlx-serve. 이 플러그인은 앱을 띄우지 않고, 서버가 꺼져 있으면 닫힌다. <code>brew install --cask mlx-core</
<tr><td><code>mlx_image_generate</code> · <code>mlx_image_edit</code> · <code>mlx_tts_generate</code> · <code>mlx_music_generate</code> · <code>mlx_video_generate</code> · <code>mlx_3d_generate</code>
<tr><td><code>mlx_image_generate</code> · <code>mlx_image_edit</code> · <code>mlx_tts_generate</code> · <code>mlx_music_generate</code> · <code>mlx_video_generate</code> · <code>mlx_3d_generate</code>
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAAHgCAYAAABU/4NXAAD36ElEQVR42uz93XIry5IkjEUUOWaSnkJmMtOd3kYy+y708HqOrzfLdVGVmfHjkZkFgGvt0z1nZvciQRAECaSXh4eHh/5//4//9/9HD8VxHDj0/vc4cIzbZNzWb5fjOPAVPm
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAEOCAYAAABRmsRnAADcaUlEQVR42u39W5IrzZKliamGRGeWFDkFPlA4Ij60SPfsOYrKYhcFiw9wN9PLUjVzBxA79n/OzvxPRAAOhwNw+Gdr6U3/z//9//1/qCpUVfxPIbfZn/P+L77d+P3rvO3LP5
background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABrCAYAAAArd+E9AAAGDUlEQVR42u2c3W6jOhSFtykvcd7/ISr1Vapc9aoK0ygkEAw261wMRMaxwQYbSKZIURjiDHxea//YrcoA/Ed/D3Qv0t5dr4V4d/1s7PzhGmPsfjFx+chtml.wide body::before{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAAA8CAYAAABhNERDAAAEe0lEQVR42u2ZzW6jMBDHx4m777Dv/1A9pVKlVjm0h0gpTcDYs5c667gY/DW2aRnJwmBCYH7znzGGIeJf+G9Yqbackground:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABrCAYAAAArd+E9AAAGDUlEQVR42u2c3W6jOhSFtykvcd7/ISr1Vapc9aoK0ygkEAw261wMRMaxwQYbSKZIURjiDHxea//YrcoA/Ed/D3Qv0t5dr4V4d/1s7PzhGmPsfjFx+c@google/genai, @modelcontextprotocol/sdk, openai, zod, @types/node, esbuild, typescript
Gates applied: instruction_override, no_behavioural_pass.
86a9da47d5bcfull audit observations/trust-audit/mcp-server/ttalkkaklab__social-flow.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 86a9da47d5bc | BLOCK | F | 58 | first audit |
Questions
What is the social-flow MCP server?
Claude Code plugin: a channel-based short-form/long-form social content pipeline — storyboard with adversarial quality gates, video production, HITL-approved publishing, and autonomous growth loops. Built-in MCP server, 46 tools.
What tools does social-flow expose?
1 in total: 0 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is social-flow safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (58/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does social-flow need?
It reads ARK_API_KEY, DATA_GO_KR_API_KEY, ELEVENLABS_API_KEY, FACEBOOK_PAGE_TOKEN_FILE, GEMINI_API_KEY, GOOGLE_API_KEY, INSTAGRAM_TOKEN_FILE, MEDIA_UPLOAD_API_KEY, MELEON_MEDIA_API_KEY, MLX_SERVE_API_KEY, NAVER_CLIENT_SECRET and OPENAI_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does social-flow run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as @zeans/social-flow-mcp-server at 0.111.1.
How current is this page?
The grade is for one exact copy of the source (86a9da47d5bc), read on 2026-10-12. The repository is watched and re-audited when it changes.