Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add markifact/markifact-mcp --skill edit-meta-creativegit clone --depth 1 https://github.com/markifact/markifact-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/markifact/markifact-mcp/edit-meta-creative)<a href="https://agentmods.dev/skills/markifact/markifact-mcp/edit-meta-creative"><img src="https://agentmods.dev/badge/skills/markifact/markifact-mcp/edit-meta-creative/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/markifact/markifact-mcp/edit-meta-creative"><img src="https://agentmods.dev/badge/skills/markifact/markifact-mcp/edit-meta-creative.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00093 | $0.01634 |
| Opus 5.5 | $0.00037 | $0.00654 |
| Sonnet 5.5 | $0.00019 | $0.00327 |
| Haiku 4.5 | $0.00009 | $0.00163 |
Grade A, and why
edit-meta-creative scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Goal
Apply a creative-content change to one or more existing Meta ads without losing learning, frequency caps, ad post engagement, or the ad ID. The same ad_id keeps running with a new creative attached.
The Meta reality this command exists to handle
Meta does not allow in-place edits of creative content (URL, text, headline, image, CTA). The only way to change an existing ad's creative is:
get_ad_creative → modify payload locally → create_ad_creative → replace_ad_creative
Anything else (deleting + recreating the ad) destroys learning, frequency capping, social proof (likes/comments), and breaks any link people have to the ad post. Always use replace_ad_creative — never delete-and-recreate for a creative change.
Inputs to confirm (batch)
- Account name (substring) — required.
- Scope — required. One of:
- Single ad ID(s).
- All ads in a campaign / ad set (by name or ID).
- All active ads in the account matching a filter (e.g. status=ACTIVE).
- What to change — required. Examples:
- Landing page URL (the most common bulk edit).
- Primary text / headline / description / link description.
- Call-to-action button.
- Display link / deep link.
- Old → new mapping if it's a find-and-replace (e.g. swap
utm_campaign=springforutm_campaign=summer, or replaceoldsite.comwithnewsite.com).
Workflow
- Discover ops:
meta_ads_select_accounts,meta_ads_list_ads,meta_ads_list_adsets,meta_ads_list_campaigns,meta_ads_get_ad_creative,meta_ads_create_ad_creative,meta_ads_replace_ad_creative. - Inspect each with
get_operation_inputs. - Resolve account via
meta_ads_select_accounts(substring). - Resolve scope to a list of
ad_ids viameta_ads_list_adswith the right filters (campaign, ad set, status). Show the user the ad list and the count before doing anything else. - For each ad in scope:
a.
meta_ads_get_ad_creative(ad_id)→ returns the raw creative payload. b. Modify the payload locally based on the requested change. Preserve all fields the user did not ask to change. Common fields to patch:object_story_spec.link_data.link(URL for link/single-image ads)object_story_spec.link_data.message(primary text)object_story_spec.link_data.name(headline)object_story_spec.link_data.description(link description)object_story_spec.link_data.call_to_action.value.link(CTA link)object_story_spec.link_data.call_to_action.type(CTA button type, e.g.LEARN_MORE,SHOP_NOW)- For video ads:
object_story_spec.video_data.* - For carousel: each item under
object_story_spec.link_data.child_attachments[]c.meta_ads_create_ad_creative(modified_payload)→ returns newcreative_id. Only works when the existing media (image_hash / video_id) is reused. If the user is also swapping in fresh media that isn't already in Meta, see "Fresh media" below. d.meta_ads_replace_ad_creative(ad_id, creative_id)→ attaches the new creative.
- Build a diff preview before executing. Show the user a table of every ad with old → new for each changed field. Wait for explicit confirmation. Then run all replaces, batched into a single
request_human_approvalif approval is required. - Confirm: count succeeded, count failed (with reason), list of new
creative_ids.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 99 lines · 93 tokens per session scan A 8f19946b3b5b
edit-meta-creative is a skill published in the GitHub repository markifact/markifact-mcp (54 stars, last pushed 23d ago), licensed MIT. It adds 93 tokens to every session and 1,634 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-21.
Other skills, from other repositories
chief-financial-officer
Owns the financial position: planning, budgeting, forecasting, unit economics, cash, and the numbers the business is run and reported on. Use this to build or challenge a budget, model a decision's financial consequence, assess unit economics or runway, evaluate an investment or spend request, set financial controls…
chief-strategy-officer
Owns where the business plays and how it wins over a multi-year horizon — portfolio choices, corporate development, strategic partnerships, and planning under uncertainty. Use this for a decision about which markets or businesses to be in, whether to build, buy, or partner, how to allocate capital across business…
seo-strategy
Audits and improves organic search performance — technical health, site architecture, internal linking, structured data, and the content decisions that determine what can rank. Use this to run an SEO audit, diagnose why pages are not ranking or were deindexed, plan a site's URL and navigation structure, add structured…
service-desk
Runs the IT service desk — intake, triage, prioritization, escalation, knowledge, and the metrics that improve service rather than distort it. Use this to set up or fix a service desk, design ticket priority and escalation, reduce repeat contacts, structure a knowledge base, or work out why a desk hitting its targets…
telephony-and-conferencing
Runs voice and meeting infrastructure — phone systems and numbers, emergency calling obligations, conference rooms and their AV, call recording and its retention consequences, and the porting that makes provider changes go badly. Use this to replace a phone system, fix rooms nobody can start a meeting in, meet…
head-of-pmo
The EPMO lead's remit — what the PMO governs, what it must never become, and how it earns standing rather than compliance. Use this to stand up or reform a PMO, decide what it should and should not control, judge whether it is adding value or overhead, or work out why teams route around it.