# MCP tool reference

> Every tool on the Ghost MCP server, grouped by job: people search and enrichment, signals, campaigns, sequences, MCP campaigns, inbox, Pipeline CRM, engagement, content and ICP.

Source: https://www.growwithghost.io/docs/api/tools/

The [Ghost MCP server](https://www.growwithghost.io/docs/api/mcp-server) gives your AI assistant the same actions you have in the app: over 70 tools, all scoped to your own workspace. Daily limits, blacklists and credit balances are enforced by Ghost whatever the assistant asks for.

> **Tip:** You don't need to call tools by name. Ask for the outcome ("find 50 UK RevOps leaders at funded companies and add them to my Q4 campaign") and your assistant picks the tools. This page is for checking what's possible.

## People and enrichment

| Tool | What it does | Cost |
|------|--------------|------|
| `count_people` | Counts matches in the 600M-contact database for any combination of filters. When the count is low, it shows how many you'd get without each filter. | Free |
| `search_people` | Searches and imports people, with the same filters as [Find People](https://www.growwithghost.io/docs/find/find-people). Imports are de-duplicated, location-checked, scored and saved as a named batch. Up to 1,000 per call, with optional enrolment in a campaign. | 1 credit per lead returned |
| `enrich_profiles` | Finds work emails (and optionally refreshes profile details) for up to 20 existing contacts. | Credits only for successful finds |
| `get_scan_credit_balance` | Your credit balance and monthly allowance. | Free |

**Filters for `count_people` and `search_people`:** `job_title`, `exclude_job_title`, `country`, `location`, `exclude_location`, `keywords`, `skills`, `company_domain`, `exclude_company_domain`, `company_linkedin_url`, `first_name`, `last_name`, `years_experience_min` / `max`, `years_at_company_min` / `max`, `headcount_growth` (`min`, `max`, `timespan`), and a `company_signals` object:

| Key | Values |
|-----|--------|
| `events` | `new_funding_round`, `new_investment`, `hiring_in_sales_department`, `hiring_in_marketing_department`, `hiring_in_engineering_department`, `increase_in_all_departments`, `new_product`, `new_partnership`, `merger_and_acquisitions`, `new_office`, `company_award`, `cost_cutting` |
| `event_window` | `30 days`, `60 days` or `90 days` (default 30) |
| `size` | `1-10`, `11-50`, `51-200`, `201-500`, `501-1000`, `1001-5000`, `5001-10000`, `10001` |
| `revenue` | `0-500K`, `500K-1M`, `1M-5M`, `5M-10M`, `10M-25M`, `25M-75M`, `75M-200M`, `200M-500M`, `500M-1B`, `1B-10B` and up |
| `industry`, `country` | Company industry and HQ/operating country |
| `tech_stack`, `keywords`, `topics` | Technologies used, website keywords, buying-intent topics |
| `company_age` | `0-3`, `3-6`, `6-10`, `10-20`, `20` |

Counts are exact for person filters and size, revenue, industry and country. They're estimates when you use events, tech stack, topics or company age.

```json
{
  "job_title": ["Head of RevOps", "VP Revenue Operations"],
  "exclude_job_title": ["Assistant"],
  "country": ["United Kingdom"],
  "company_signals": {
    "events": ["new_funding_round"],
    "event_window": "60 days",
    "size": ["51-200", "201-500"]
  },
  "count": 250,
  "source_name": "Funded UK RevOps"
}
```

## ICP

| Tool | What it does |
|------|--------------|
| `get_persona` | Your persona: company, audience, voice, and active ICP with buyer personas, triggers, signals, not-a-fit and search filters. |
| `propose_icp_change` | Turns feedback like "UK founders only, exclude agencies" into a proposed ICP change, with a field-by-field diff and match counts before and after. Changes nothing yet. |
| `apply_icp_change` | Applies a proposed change. Find People, Lead Score and new campaigns use it straight away. Can be undone. |

## Contacts

| Tool | What it does |
|------|--------------|
| `list_contacts` | Contacts, filterable by source, up to 200 per page. |
| `import_contacts` | Adds contacts by LinkedIn URL, with de-duplication. |
| `get_contact_status` | One contact's details, campaign history and send log. |
| `delete_contacts` | Moves up to 500 contacts to Trash and removes them from campaigns. Use `dry_run` to preview. Recoverable for 7 days. |
| `restore_contacts` | Restores contacts from Trash within 7 days. Campaign enrolments aren't restored. |

## Signals

| Tool | What it does |
|------|--------------|
| `list_signal_sources` | Profiles, posts, company pages and searches Ghost is watching, with scan status and contacts found. |
| `add_signal_source` | Starts watching a LinkedIn profile, company page, post or search URL. |
| `list_signal_contacts` | People who engaged with your signal sources, newest first. |

## Campaigns and sequences

| Tool | What it does |
|------|--------------|
| `list_campaigns` | All campaigns with enrolment stats. |
| `create_campaign` | Creates a campaign, optionally with a sequence attached. |
| `add_contacts_to_campaign` | Enrols contacts with staggered timing. Skips anyone already enrolled, blacklisted, in Trash or excluded, and tells you who. |
| `pause_campaign` / `resume_campaign` | Pauses or resumes a campaign and its enrolments. |
| `get_campaign_insights` | Reply rate, step-by-step performance and contact statuses for one campaign. |
| `get_dashboard_stats` | Invites, messages, emails, profile views and replies per campaign for a date range (default last 7 days). |
| `list_sequences` / `get_sequence` | Your sequences and their steps. |
| `create_sequence` / `update_sequence` | Builds or edits a sequence of `connection_request`, `message` and `email` steps, with an optional email-only route for people who never accept your invite. |
| `list_linkedin_accounts` | Your connected LinkedIn profiles with their health and daily limits. |

## MCP campaigns

Campaigns where your assistant writes every message for each person. See [MCP campaigns](https://www.growwithghost.io/docs/api/mcp-campaigns) for the rules.

| Tool | What it does |
|------|--------------|
| `create_mcp_campaign` | Creates a draft with up to 12 steps, sending profiles, and an optional not-accepted email route. |
| `add_mcp_campaign_steps` | Adds steps to the end of an existing MCP campaign. |
| `add_mcp_contacts` | Adds up to 100 people per call, each with their own messages. |
| `set_contact_messages` | Writes or rewrites one person's unsent messages. |
| `start_mcp_campaign` / `pause_mcp_campaign` | Starts or pauses sending. |
| `list_mcp_campaigns` / `get_mcp_campaign_status` | Campaign list and per-person progress. |

## Inbox

| Tool | What it does |
|------|--------------|
| `list_inbox_conversations` | LinkedIn conversations, newest first. Filter by intent (`high`, `warm`, `low`, `none`), unread, awaiting your reply, or lead status. |
| `get_conversation` | Full message history for one conversation, with the AI's read of intent and a summary. |
| `send_outbound_reply` | Sends a LinkedIn reply in an existing conversation. |
| `update_lead_status` | Sets lead status: `replied`, `warm`, `meeting_request`, `opportunity`, `client` or `not_interested`. |

## Pipeline (CRM)

| Tool | What it does |
|------|--------------|
| `list_pipeline_stages` | Your stages in order. |
| `list_deals` / `get_deal` | Deals filtered by stage, search, band or open only; one deal with tasks, notes and history. |
| `create_deal` / `update_deal` | Adds a contact to the pipeline; moves stage, sets value, currency, close date, won/lost reason, or removes the deal. |
| `add_deal_note` | Adds a note, optionally pinned. |
| `list_tasks` / `create_task` / `complete_task` | Open tasks by scope (`overdue`, `today`, `upcoming`, `all`); new task; mark done or snooze. |
| `get_contact_history` | Every touchpoint with a contact across LinkedIn, email, notes, tasks, stage changes and meetings. |
| `list_meetings` / `get_meeting_notes` | Meetings linked to pipeline contacts, and full Granola notes with next steps, objections, budget and timeline. |
| `suggest_followup` | Three follow-up drafts based on the conversation, meetings, stage and timing. |
| `send_crm_message` | Sends a LinkedIn message or email to a contact and pauses their sequence. |
| `list_suggested_leads` / `accept_suggested_lead` | Enquiries found in your inbox; add one to the pipeline or dismiss it. |
| `get_pipeline_dashboard` | Value by stage, open pipeline, won this month, win rate, days to close and revenue by source. |

## Engagement

| Tool | What it does |
|------|--------------|
| `list_engagement_opportunities` | Ranks posts in your Engagement feed worth commenting on, by relevance, author Lead Score and recency. |
| `get_engagement_post` | One post's full text, author and existing comment drafts. |
| `suggest_engagement_comments` | Drafts comments in your voice. Nothing is posted. |
| `post_engagement_comment` | Posts an approved comment on LinkedIn. Public and can't be undone. |
| `dismiss_engagement_items` | Moves posts you don't want to comment on to the Engagement trash. |

## Content

| Tool | What it does |
|------|--------------|
| `list_content_pillars` | Your content pillars. |
| `generate_post_ideas` / `generate_post` | Ideas for a pillar; a draft post in your voice, or a refinement of an existing draft. |
| `generate_newsletter_draft` | A long-form newsletter draft on a topic. |
| `create_post` / `update_post` / `delete_post` / `list_posts` | Manage drafts, approved and scheduled posts. Published posts can't be edited or deleted. |
| `schedule_post` / `list_scheduled_posts` | Schedule a post to LinkedIn or X, including company pages, and list what's scheduled or published. |
| `render_card` / `render_cards_batch` | Draws on-brand quote, stat, headline or list images for posts. |
| `upload_media` / `upload_media_batch` | Uploads images or PDFs (for carousels) to your media library. |

## Errors and limits

- The MCP server has no separate rate limit, but everything it does counts toward your normal limits: LinkedIn [daily limits](https://www.growwithghost.io/docs/outbound/limits-and-safety), your mailbox's sending limits, and your [credits](https://www.growwithghost.io/docs/find/credits).
- Contacts who are blacklisted, in Trash, or already in another active campaign are skipped, and the response says who and why.
- Text from prospects (posts, replies, meeting notes) is returned as data. Ghost marks it so assistants don't treat it as instructions.
