> ## Documentation Index
> Fetch the complete documentation index at: https://docs.linkedcamp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ChatGPT plugin

> The official LinkedCamp plugin: what it installs, how it asks before acting, and what it will not do.

> **[LinkedCamp for ChatGPT](https://chatgpt.com/plugins?search=linkedcamp)**
>
> Run campaigns, work the inbox and pull analytics from a ChatGPT chat — no config file.

For installation steps see the ChatGPT tab in the
[quickstart](/mcp/quickstart). This page covers what the plugin is and how it
behaves once connected.

## What it connects to

The same hosted server every other client uses — the plugin is a listing, not a
separate API:

```text theme={null}
https://mcp.linkedcamp.com/mcp
```

Transport is Streamable HTTP. Authentication is OAuth 2.1 with PKCE: ChatGPT
opens a LinkedCamp sign-in page and you paste your API key, which is the only
credential that page accepts. The key is encrypted inside the access token and
never appears in a URL or a log line.

## What ships in it

| File | What it does |
| - | - |
| `plugin.json` | the public listing, prompts and review cases |
| `mcp.json` | points ChatGPT at the hosted server |
| `SKILL.md` | teaches ChatGPT the supported workflow and the safety rules below |

`SKILL.md` is the part that matters in use. It gives ChatGPT the campaign build
order, tells it which tool authors a sequence, and names the specific
consequence of every destructive call — so it asks about the right thing rather
than warning generically.

## It asks before anything irreversible

Tools that reach a real person or destroy a record are flagged destructive in
the protocol, so ChatGPT prompts before running them. The plugin treats that
prompt as the floor, not the safeguard: the skill instructs it to state what
will happen in specifics, get an explicit yes, and never put several
destructive calls behind one confirmation.

The ones whose effect is easy to misread, and which the skill spells out:

| Tool | What actually happens |
| - | - |
| `message_send` | delivers to a real person immediately and cannot be recalled |
| `message_delete` | edits **your** record only — the recipient keeps the message, it is not unsent |
| `lead_blacklist` | excludes someone from every future campaign on the account, and nothing removes it |
| `placeholder_delete` | copy using that merge field renders **empty with no error**, so live campaigns send with a hole in them |
| `blacklist_delete` | people the rule was blocking — including opt-outs — become targetable again |
| `agent_delete` | campaigns using it lose automated replies silently, so prospects mid-conversation stop getting answers |
| `campaign_launch` | begins real outreach on the campaign schedule |

> [!WARNING]
>
> `campaign_set_status` with `ACTIVE` restarts real outreach on a paused
> campaign, but it is **not** destructive — it toggles a reversible field — so
> no prompt appears. The skill tells ChatGPT to ask anyway, because a campaign
> may have been paused for a reason you have not mentioned.

## What it will not do

The skill lists these as unavailable so ChatGPT does not claim them or hunt for
a substitute:

* deleting a saved reply, a lead note, a sequence, an appointment or a notification
* rotating your API key
* archiving or completing a campaign — that is web-app housekeeping
* connecting a LinkedIn account, which takes a password and a verification PIN
* CRM integrations, and the deprecated webhooks

It will also never ask for a LinkedIn password, session cookie, verification PIN
or third-party API key in chat. Authentication belongs in the OAuth flow.

## Plan and permission limits apply

The plugin reaches the same gated surface as any other client. Tools behind Pro
or a named permission refuse on plan grounds, and sections your user
permissions do not grant are hidden from the tool list and refused on the call.
Ask ChatGPT to call `whoami` if a refusal is unclear — it reports the plan and
the granted permissions under `_derived`.

Agency owners get the same sub-account reach described in
[MCP for agencies](/mcp/agencies).

## Versions

The plugin is released from its own repository, and the ZIP attached to each
release is what ChatGPT ingests. The current release is **1.2.8**.

| Release | What it added |
| - | - |
| **1.2.8** | agency support — `subaccount_list` and the `userId` argument, so one owner key reaches every client account |
| 1.2.7 | `message_send`, nine deletions and campaign pause/resume |

The version matters because `SKILL.md` ships inside the ZIP. The tool list comes
from the server, so an older install can still *call* a newer tool — it just has
not been told the tool exists, or has been told the opposite. On 1.2.7 the skill
described `userId` as accepted from any account owner and did not mention
`subaccount_list`, so ChatGPT either omits the argument or guesses an id the
server then refuses. Reinstall from the latest release if agency questions come
back wrong or empty.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.