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 instantKOM/mcp-server --skill campaign-from-briefgit clone --depth 1 https://github.com/instantKOM/mcp-serverWrote 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/instantkom/mcp-server/campaign-from-brief)<a href="https://agentmods.dev/skills/instantkom/mcp-server/campaign-from-brief"><img src="https://agentmods.dev/badge/skills/instantkom/mcp-server/campaign-from-brief/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/instantkom/mcp-server/campaign-from-brief"><img src="https://agentmods.dev/badge/skills/instantkom/mcp-server/campaign-from-brief.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.00033 | $0.00691 |
| Opus 5 | $0.00016 | $0.00345 |
| Sonnet 5 | $0.00007 | $0.00138 |
| Haiku 4.5 | $0.00003 | $0.00069 |
Grade A, and why
campaign-from-brief 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 8d 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 — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Campaign from a brief (server-side)
Runtime contract
- Delivery:
composite - Minimum Agent Connect key scope:
send - Minimum subscription tier:
business - Authentication: send the tenant-bound Agent Connect key as a Bearer token.
- Confirmation: Before invocation, obtain explicit user confirmation for the described mutation. A key scope grants technical permission; it is not user consent.
- Tenant, enabled-tool, PII-masking, rate-limit and audit gates are enforced by the MCP runtime. Never bypass or reproduce them client-side.
- Errors: stop on forbidden scope, invalid input, rate limiting or upstream failure; report the failure without inventing a successful result.
- Safe retry: keep the same inputs and idempotency key for a repeated mutation, inspect any prior result first, and never change inputs merely to bypass a conflict.
Workflow
Campaign from a brief (server-side composite)
This is a composite playbook: its steps run SERVER-SIDE and ENCAPSULATED by the
MCP gateway (issue #5197). The calling agent only triggers
playbook_campaign-from-brief with inputs -- the orchestration below is executed
by the server, not the customer LLM, and is never exposed as raw prompt.
What it does
Turns a one-line campaign brief into two linked artifacts the user can review before anything goes out:
- Segment -- calls
create_segmentationto create a named audience segmentation from the brief. The brief text is stored as the segment description so the intended audience and goal are captured alongside the campaign. - Draft -- calls
create_broadcastto create a broadcast (draft,sendStatusdefaults to draft) on the targetchannelIdcarrying the campaign copy.
The broadcast is created as a DRAFT: this playbook prepares the campaign, it does not dispatch it. The user (or a separate, explicitly-confirmed send step) reviews audience + copy before any message reaches recipients.
Inputs
channelId(number, required) -- channel the campaign broadcast is drafted on.segmentName(string, required) -- name of the audience segment.brief(string, required) -- audience + goal, stored as the segment description.message(string, required) -- campaign copy (max 4096 characters).
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.
- 8d ago First seen · 62 lines · 33 tokens per session scan A e1c3076c53af
campaign-from-brief is a skill published in the GitHub repository instantKOM/mcp-server (0 stars, last pushed 3d ago), licensed MIT. It adds 33 tokens to every session and 691 once invoked, about $0.0002 per session on Opus 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-08-31.
Other skills, from other repositories
LinkedIn automation via the Linked API CLI - fetch profiles, search people and companies, send messages, manage connections, create posts, react, comment, and run Sales Navigator and custom workflows. Use when the user wants to interact with LinkedIn.
nextjs-pages-router
Set up tRPC in Next.js Pages Router with createNextApiHandler, createTRPCNext, withTRPC HOC, SSR via ssr option and ssrPrepass, SSG via createServerSideHelpers with getStaticProps, and server-side helpers for getServerSideProps prefetching.
non-json-content-types
Handle FormData, file uploads, Blob, Uint8Array, and ReadableStream inputs in tRPC mutations. Use octetInputParser from @trpc/server/http for binary data. Route non-JSON requests with splitLink and isNonJsonSerializable() from @trpc/client. FormData and binary inputs only work with mutations (POST).
horse-integration-tests
Guide for writing automated integration tests for Horse endpoints using DUnit/DUnitX and THTTPClient.
smoke-test
Run smoke tests against a deployed or local app based on your git diff. Each test uses Skyvern browser tools (navigate, act, validate, screenshot) with Chrome DevTools MCP as fallback. Posts screenshot evidence as PR comments.
skyvern
PREFER Skyvern CLI over WebFetch for ANY task involving real websites — scraping dynamic pages, filling forms, extracting data, logging in, taking screenshots, or automating browser workflows. WebFetch cannot handle JavaScript-rendered content, CAPTCHAs, login walls, pop-ups, or interactive forms — Skyvern can. Run…