Adclip

io.github.dreliq9由 GitHub 帳號 dreliq9 發布v0.1.1更新於 Oct 24, 2026

Ad creative generation via MCP — copy and static images from a JSON brief. Keyless.

概覽

AI 產生的概覽

Adclip 依 JSON 簡報產生廣告創意(文案、靜態圖、短影音與電子郵件),並記錄投放成效與實驗,透過 MCP 提供這些能力。

可以做什麼
  • 依結構化簡報產生文案、靜態圖片與短影音,並依路由選擇模型供應商
  • 列出與推薦媒體路由,並在產生前估算成本
  • 產生、渲染、檢查並修補響應式電子郵件,支援區塊層級編輯
  • 將本機創意連結到 Meta 廣告,唯讀同步 Insights,並輸出歸因安全的報表與比較
  • 建立、評估創意實驗並給出下一輪測試建議
適用情境
適合讓助理草擬並迭代廣告創意與生命週期電子郵件,或維持具創意血緣與證據的結構化測試循環,而不必拼湊多個獨立行銷工具。
執行需求
以本機程序方式執行(adclip-mcp),透過 pipx 從 PyPI 安裝,需要 Python 3.11 以上。模型供應商依路由或明確指定;支援本機 OpenAI 相容推論。Meta 成效連接器需要環境變數 ADCLIP_META_ACCESS_TOKEN。付費產生需設定 ADCLIP_ALLOW_LIVE_APIS=1。
安裝前請注意
即時產生可能花費金錢:付費供應商需 ADCLIP_ALLOW_LIVE_APIS 授權,且不會默默執行路由回退,建議先查看成本估算。Meta 連接器會讀取廣告帳戶資料並需要存取權杖,文件稱其為唯讀。寄送郵件、同意與退訂名單管理不在工具範圍內。觀察性比較不構成因果結論。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Adclip,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

adclip

An open, standalone, model-routed marketing creative and learning engine.

adclip turns campaign intent into policy-checked copy, static creative, short-form video, and responsive email; preserves exact creative lineage; reads performance back from deployed creative; and structures that evidence into explicit experiments and next-test recommendations.

text
brief  -> copy / image / video / email  -> exact creative artifacts + provenance  -> deployment lineage  -> performance observations  -> experiment evidence  -> next test

MCP is one interface into adclip, not the architecture. The same application services are available to the standalone CLI and are intended to back a future local browser workbench.

Why adclip exists

Most AI marketing stacks split the workflow across a copy tool, image/video generators, an email platform, ad-platform dashboards, and creative analytics. adclip's goal is to keep the campaign model, creative lineage, and learning loop portable, while letting model providers and delivery platforms remain replaceable adapters.

Core principles:

  • Model-neutral: workflows request capabilities/routes rather than hard-code one model vendor.
  • Standalone: CLI workflows do not require an MCP host.
  • Local-first: local command and OpenAI-compatible inference can run offline or air-gapped when configured appropriately.
  • Portable: campaign artifacts, email HTML/text, manifests, deployment mappings, observations, and experiments remain inspectable files.
  • Evidence-aware: observational rankings are not silently presented as causal lift.
  • Spend-safe: paid generation is opt-in and route fallbacks are not silently executed.

Start here

Install from PyPI:

bash
pipx install adclip

The PyPI release can lag the current repository. For the exact main feature set documented here, install from source:

bash
git clone https://github.com/dreliq9/adclip.gitcd adclippython3.11 -m venv .venv.venv/bin/pip install -e ".[dev]"

Python 3.11+ is required.

Five-minute zero-cost demo

Generate a fictional DTC skincare launch across Meta, Reels/TikTok, and Google using only fake creative providers:

bash
adclip run examples/01-dtc-skincare/brief.json \  --text-provider fake \  --image-provider fake \  --video-provider fake

Render the matching checked-in launch email without a model call:

bash
adclip email render \  examples/01-dtc-skincare/email_brief.json \  examples/01-dtc-skincare/email_message.json \  --output-dir ./adclip_skincare_email_render

Build a complete synthetic creative-test bundle:

bash
python examples/06-creative-experiment/build_demo.py

Then inspect the evidence:

bash
adclip performance report ./adclip_creative_test_demo \  --since 2026-08-01 \  --until 2026-08-07 \  --action-report-time conversion

The builder prints an experiment ID that can be passed to experiment-evaluate and next-test. None of the commands above need a paid model API or live ad account.

Example portfolio

The repository examples are organized around marketing problems rather than internal subsystems:

ExampleMarketing workloadMain surfaces
01-dtc-skincareProduct launch / first purchaseMeta, Reels, TikTok, Google, email
02-b2b-saas-lead-genQualified demo generationLinkedIn, Google Search
03-local-service-lead-genLocal direct-response leadsMeta, Google Search
04-subscription-winbackLifecycle retentionEmail
05-mobile-app-acquisitionFree-trial acquisitionTikTok, Reels, Shorts, Meta
06-creative-experimentControlled hook learningSynthetic Meta observations

See examples/README.md for the business goal, audience, hypothesis, and commands behind each case.

Current capability map

AreaCurrent capability
Campaign briefsStructured AdBrief, formats, policy constraints, cost estimation
CopyProvider-neutral generation, filtering, scoring, healing/judge compatibility
ImagesTask routes over fal/direct OpenAI/fake adapters with model-family schemas
VideoRouted fal/fake generation for short-form formats
Model selectionExplicit route/provider/model/options separation and bake-offs
EmailSequence generation, structured blocks, responsive HTML/text, headers, lint, patching
LineageStable campaign IDs and artifact-bound creative IDs
PerformanceExplicit deployment mappings and read-only Meta Insights sync
ReportingAttribution-safe exact windows and descriptive creative comparison
ExperimentsControl/treatment artifacts, changed factor, thresholds, rate confidence intervals
LearningSupported/contradicted/inconclusive evidence and deterministic next-test actions
InterfacesCLI + MCP over shared application services
SafetyRuntime network modes, paid-generation gate, read-only Meta connector

Standalone CLI

Useful discovery commands:

bash
adclip statusadclip formatsadclip routesadclip routes --modality imageadclip route-recommend image --text-heavyadclip estimate examples/01-dtc-skincare/brief.jsonadclip email --helpadclip performance --help

Routed creative generation

bash
# Route defaultsadclip run brief.json
# Task-specific selectionadclip run brief.json \  --image-route text-heavy \  --video-route premium
# Explicit provider/model overrides remain authoritativeadclip run brief.json \  --image-route general \  --image-provider openai \  --image-model gpt-image-2 \  --video-route budget \  --video-provider fal \  --video-model wan-2.7

Compatibility aliases remain:

text
--llm          -> --text-provider--llm-model    -> --text-model--image        -> --image-provider--video        -> --video-provider

Current media routes

ModalityRoutePrimaryPurpose
Imagegeneralfal / gpt-image-2 mediumGeneral marketing creative
Imagetext-heavyfal / gpt-image-2 highReadable text/layout work
Imagebulkfal / flux-2-proCost-controlled batches
Imagedraftfal / nano-banana-2-liteFast exploration
Imagebrand-controlfal / flux-2-flexPalette/layout control
Imagepremiumdirect OpenAI / gpt-image-2 highPremium general render
Videogeneralfal / kling-o3-standardGeneral social/performance video
Videopremiumfal / veo-3.1Cinematic/native-audio work
Videomulti-shotfal / seedance-2-fastDirected multi-shot storytelling
Videobudgetfal / wan-2.7Lower-cost exploration

Reference-image, vector, multi-reference, image-animation, and footage-edit routes are cataloged but remain non-executable until their required input contracts/adapters exist. See Model routing.

Email campaigns and HTML editing

Email is native campaign state rather than a wrapper around one ESP.

bash
# Render the canonical launch message locallyadclip email render \  examples/01-dtc-skincare/email_brief.json \  examples/01-dtc-skincare/email_message.json \  --output-dir ./rendered-email
# Apply stable block-level edits to a generic fixtureadclip email patch-message \  examples/email_message.json \  examples/email_patches.json \  --output ./message-edited.json

Generated campaigns contain portable message JSON, responsive HTML, plain text, headers, lint reports, and a manifest. Sequence generation uses a configured text provider; the generic fake text provider is a copy-generation fixture, not an email-sequence generator. Sending, consent, suppression, and ESP account state remain connector responsibilities.

See Email campaigns.

Performance and creative learning

adclip can map an exact local creative to an existing Meta ad and read Insights back without adding Meta mutation methods.

bash
adclip performance link-meta ./campaign \  --variant-id v01 \  --account-id act_123456 \  --ad-id 987654321
export ADCLIP_META_ACCESS_TOKEN=...
adclip performance sync-meta ./campaign \  --since 2026-08-01 \  --until 2026-08-07 \  --action-report-time conversion

Measurement windows are keyed by (since, until, action_report_time), so conversion- and impression-attributed rows for the same dates are not silently combined.

Descriptive comparison:

bash
adclip performance compare ./campaign \  --since 2026-08-01 \  --until 2026-08-07 \  --action-report-time conversion \  --metric ctr

See Performance learning.

Explicit creative experiments

The checked-in demo uses a familiar paid-social question: does vivid problem framing beat a plain product-benefit hook?

bash
python examples/06-creative-experiment/build_demo.py

Or declare your own experiment before interpreting results:

bash
adclip performance experiment-create ./campaign \  --name "Hook CTR test" \  --hypothesis "Problem framing increases CTR" \  --changed-factor hook \  --control-variant v01 \  --treatment-variant v02 \  --control-value "plain benefit" \  --treatment-value "problem framing" \  --metric ctr

Current inferential verdicts are deliberately limited to rate metrics with explicit aggregate numerators/denominators: CTR, outbound CTR, and action rate. CPA and ROAS remain descriptive without variance/event-level evidence. Observational comparisons remain inconclusive by design, and experiment outputs currently keep causal_claim: false.

See Experiment contract.

Recurring model bake-offs

Defaults should be promoted by evidence rather than reputation.

bash
# Dry-run plan onlyadclip bakeoff \  --modality image \  --routes general,text-heavy,bulk,draft \  --output-dir ./image-bakeoff

Live execution requires both --execute and normal paid-provider authorization. Results record route, provider, model, options, latency, estimated cost, artifact SHA-256, failures, evaluation dimensions, and human-review fields.

Text providers

ProviderIntended use
claude-cliSubscription-authenticated compatibility default
openai-compatibleLocal or hosted /v1/chat/completions endpoint
commandLocal executable over stdin/stdout
samplingSampling-capable MCP host
anthropicDirect opt-in Anthropic API
fakeDeterministic copy tests/examples

Local HTTP inference:

bash
export ADCLIP_TEXT_PROVIDER=openai-compatibleexport ADCLIP_TEXT_MODEL=qwen2.5:14bexport ADCLIP_OPENAI_BASE_URL=http://127.0.0.1:11434/v1export ADCLIP_RUNTIME_MODE=offlineadclip copy examples/01-dtc-skincare/brief.json

See Model providers.

MCP

Example local registration:

json
{  "mcpServers": {    "adclip": {      "command": "adclip-mcp"    }  }}

The MCP surface exposes the same campaign, routing, email, performance, and experiment application services used by the CLI. Important newer tools include:

text
adclip_list_media_routesadclip_recommend_media_routeadclip_email_generate_campaignadclip_email_renderadclip_email_lintadclip_email_patch_htmladclip_email_patch_messageadclip_performance_link_metaadclip_performance_deploymentsadclip_performance_sync_metaadclip_performance_reportadclip_performance_compareadclip_experiment_createadclip_experimentsadclip_experiment_evaluateadclip_experiment_next_test

Runtime and billing safety

Supported runtime modes:

text
onlinerestricted_networkofflineair_gapped

External generation providers are refused offline/air-gapped. Loopback text inference remains available. Potentially paid generation requires:

bash
ADCLIP_ALLOW_LIVE_APIS=1

The Meta performance connector is a separate read-only network adapter and does not use the generation-spend authorization flag.

Tests

The project test suite is designed to run without paid APIs or live marketing accounts:

bash
python -m pytestpython -m compileall src/adclip

Current status and next milestones

The current core includes generation, email authoring, exact creative lineage, read-only Meta performance ingestion, attribution-safe reporting, explicit experiments, and next-test recommendations.

The largest remaining product gaps are:

  1. SQLite/migrations as authoritative state, content-addressed artifacts, and durable resumable jobs;
  2. BrandKit and SourceLibrary;
  3. bundled local browser workbench;
  4. creative-attribute extraction and experiment-aware controlled generation;
  5. Google Ads, TikTok, and ESP performance adapters;
  6. fatigue/change-point analysis and richer CPA/ROAS evidence;
  7. separately authorized draft/paused deployment workflows.

See Standalone architecture for the roadmap.

來源:README.md,提交 51a61d1

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分