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 Kubis010/linkedin-mcp-server-salesbot --skill salesbot-campaigngit clone --depth 1 https://github.com/Kubis010/linkedin-mcp-server-salesbotWrote 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/kubis010/linkedin-mcp-server-salesbot/salesbot-campaign)<a href="https://agentmods.dev/skills/kubis010/linkedin-mcp-server-salesbot/salesbot-campaign"><img src="https://agentmods.dev/badge/skills/kubis010/linkedin-mcp-server-salesbot/salesbot-campaign/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/kubis010/linkedin-mcp-server-salesbot/salesbot-campaign"><img src="https://agentmods.dev/badge/skills/kubis010/linkedin-mcp-server-salesbot/salesbot-campaign.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.00048 | $0.00507 |
| Opus 5.5 | $0.00019 | $0.00203 |
| Sonnet 5.5 | $0.00010 | $0.00101 |
| Haiku 4.5 | $0.00005 | $0.00051 |
Grade A, and why
salesbot-campaign 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 12d 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.
What it actually says
Salesbot LinkedIn campaigns
A campaign sends a sequence of steps (visit, connection request, messages) to its contacts, paced within the account's daily limits and sending hours.
Create
create_campaign with name, profile_id (the LinkedIn profile that sends) and steps. The campaign is saved as a draft and sends nothing yet.
For each message step decide message_mode with the user:
template— the user's sample message (ai_template) is sent as written; AI only fills the fields such as{oslovení},{{first_name}},{{company}}(shortened, e.g. "Constellium" instead of "Constellium Extrusions Děčín s.r.o."). Choose this when the user already has a message they like.creative— AI writes its own version for every contact, followingai_prompt; the sample is only a style example.
The campaign's sender_context ("About me") is NOT used automatically. Write {{o_mne}} in ai_prompt where the AI should use it. Links in the prompt or the sample are kept exactly where they are written.
Fill and prepare
add_contacts_to_campaignwith savedcontact_ids.prepare_campaign_messages(max 10 per call; repeat whileremaining_pending> 0).list_pending_approvals— show the drafts to the user.approve_message(optionally withedited_messages) orreject_messagewith a reason.
If the user turned on AI approval (auto_approve_messages in update_campaign_settings), Salesbot checks each draft itself — the contact's name and gender, company, leftover placeholders, signature and grammar — and approves only what passes; the rest waits for the user.
Start and watch
start_campaign starts sending approved contacts. list_campaign_queue shows what is planned, stop_campaign pauses it. Remove a person with exclude_contacts_from_campaign.
Never start a campaign the user has not asked to start, and never approve messages on their behalf unless they asked you to.
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.
- 12d ago First seen · 30 lines · 48 tokens per session scan A fe87a5458257
salesbot-campaign is a skill published in the GitHub repository Kubis010/linkedin-mcp-server-salesbot (1 stars, last pushed 8d ago), licensed MIT. It adds 48 tokens to every session and 507 once invoked, about $0.0002 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-10-04.
Other skills, from other repositories
linkedin-mcp
Use LinkedIn data for profile, company, job, post, feed, inbox, recruiting, and outreach work through the bundled LinkedIn MCP server. Use only for an explicit LinkedIn request.
sanity-singletons
Configure singleton documents in a Sanity Studio using the document.singletons registry. Use when a developer wants a fixed-id document (settings, navigation, footer) edited in place, hidden from the default content list, with no "create new" or "duplicate" affordances — or when migrating a userland singleton…
sanity-best-practices
Sanity development best practices for schema design, GROQ queries, TypeGen, Visual Editing, images, Portable Text, Studio structure, localization, migrations, Sanity Functions, webhooks, Blueprints, and framework integrations such as Next.js, Nuxt, Astro, Remix, SvelteKit, Angular, Hydrogen, the App SDK, and Studios…
sanity-migration
Plans, implements, and reviews migrations from other CMSes and content systems into Sanity. Use when migrating or replatforming to Sanity from AEM, Adobe Experience Manager, Contentful, Strapi, Webflow, WordPress, Payload, Drupal, Markdown/MDX/frontmatter files, WXR/XML exports, CMS APIs, database dumps, static HTML…
portable-text-serialization
Render and serialize Portable Text to React, Svelte, Vue, Astro, HTML, Markdown, and plain text. Use when implementing Portable Text rendering in any frontend framework, building custom serializers for non-standard block types, converting Portable Text to HTML strings server-side, converting Portable Text to Markdown…
portable-text-conversion
Convert HTML and Markdown content into Portable Text blocks for Sanity. Use when migrating content from legacy CMSs, importing HTML or Markdown into Sanity, building content pipelines that ingest external content, converting rich text between formats, or programmatically creating Portable Text documents. Covers…