MCP.so
登录

GrowthKit Revenue Intelligence

@growthkit-tools

关于 GrowthKit Revenue Intelligence

Sales intelligence for DACH & EU SMEs — lead scoring, ICP fit, CRM enrichment & writeback.

基本信息

分类

其他

传输方式

stdio

发布者

growthkit-tools

提交者

Anita Suk

配置

使用下面的配置,将此服务器添加到你的 MCP 客户端。

{
  "mcpServers": {
    "growthkit": {
      "url": "https://mcp.growthkit.tools"
    }
  }
}

工具

62

Store knowledge into long-term memory. Supports single items and batch embedding (max 50). IMPORTANT — Chapter System: Every memory MUST be classified into exactly one chapter via metadata.chapter. Available chapters: icp, strategy, campaigns, analytics, brand, competitors, learnings, general, pipeline, signals, playbook. Always analyze the content and pick the most specific chapter. Use general only as a last resort. BEFORE STORING: Search target chapter first to check for duplicates. QUALITY: 50-300 words, specific and factual, one concept per memory. AUTO-TAGGING: Before saving ANY memory, search the playbook chapter for 'tag-taxonomy' to load the current tag taxonomy. Then add 3-7 relevant tags as a comma-separated string in metadata.tags (e.g. metadata: { chapter: 'campaigns', tags: 'saas,series-a,dach,linkedin,demand-gen' }). Pick the most specific tags from the taxonomy. You may add 1-2 free-form tags if needed. For batch embeds, tag each item individually. PLAYBOOK SYSTEM: Available playbooks: icp-workshop, onboarding, campaign-brief, weekly-review, competitor-analysis, content-brief. When the user asks to do any of these tasks, use prompts/get to load the full playbook and follow its steps.

Search long-term memory using semantic similarity. ALWAYS SEARCH BEFORE ANSWERING marketing/strategy questions. Use short, specific keywords as queries. Available chapters: icp, strategy, campaigns, analytics, brand, competitors, learnings, general, pipeline, signals, playbook. TAG FILTERING: Memories are auto-tagged. Use metadata_filter with tags key to filter (e.g. metadata_filter: { chapter: 'campaigns', tags: 'linkedin' }).

List stored memories with pagination. Filter by chapter using metadata_filter.chapter.

Update content or metadata of a stored memory. Use to enrich, fix, or reclassify. You MUST provide a change_reason explaining WHAT changed and WHY. The reason is stored in the version history audit log.

Delete memories by IDs. Always confirm with user first. You MUST provide a change_reason explaining WHY these memories should be deleted. The reason is stored in the version history audit log.

Delete ALL memories. Irreversible. Always ask for explicit confirmation. You MUST provide a change_reason.

Count memories, optionally filtered by chapter via metadata_filter.chapter.

Get memory count per chapter. Use as FIRST STEP in new conversations or reviews.

Upload a file to GrowthKit document storage. Optionally extracts text and embeds insights.

List stored documents with optional filtering by category or chapter.

Get a specific document with fresh download URL and linked insights.

Delete a document and its associated insights.

Schedule a reminder. Convert relative times to ISO 8601.

List reminders. Filter by status.

Cancel a pending reminder by ID.

Get the version history of a specific memory. Shows all previous versions with timestamps and who made changes.

Restore a memory to a previous version. Works for both existing and deleted memories. Use version_id from getHistory or listDeleted results.

List recently deleted memories that can be restored. Shows content preview and deletion info.

List all team members (token holders) for your account. Shows display names, roles, and identifies which token is yours.

Send a notification to a team member. First use listTeam to find the recipient. For 2-person teams, the recipient is auto-resolved.

Check for unread notifications (direct messages and broadcasts).

Search CRM for a company by name. ALWAYS search before creating to avoid duplicates.

Get full company details by ID. Returns name, domain, industry, employees, address, CRM link.

Create a new company. ALWAYS search first to avoid duplicates.

Get all deals linked to a company.

Get all contacts linked to a company.

Search CRM for a contact by name.

List companies from CRM with structured filters. Use for segment queries like 'all pharma companies with 50-200 employees in DACH'. All filter fields optional. Returns companies with id, name, industry, employees, country, and pagination info. Unlike crmSearchCompany (which does fuzzy name search), this does precise structured filtering.

List people/contacts from CRM with structured filters. Use for segment queries like 'all CEOs in pipeline companies'. All filter fields optional.

Get full contact details by ID.

Create a new contact. ALWAYS pass company_id when the company exists.

Get all pipelines with stages. ALWAYS call before creating deals to get valid stage_id.

Create a new deal. Requires title + stage_id. MUST call crmGetPipelines first.

Update a deal. Use generic names: company_id, contact_id, expected_close.

Get full deal details by ID.

Add a note to a deal, company, or contact.

Create a follow-up task/call/meeting.

Check if CRM is connected and which provider is active.

Get company info by domain or name. Returns industry, employees, revenue, location, technologies.

Get person profile from email or LinkedIn URL.

Find contacts at a company. Filter by seniority or department.

Find one person's email by name + domain.

Check if an email is deliverable. Use before outreach.

Trigger lead scoring against ICP for this user's CRM companies. Scores each (company, contact) pair on 4 dimensions (industry 35%, employees 25%, geo 20%, seniority 20%) with missing-data renormalization. Use mode='full' for all companies, 'delta' for new/changed since last run, 'company_ids' for specific IDs. Persists to lead_scores table; read results via getTopLeads. Returns counts and per-user summary. Requires Pro plan (active or trialing). Write-operation — scores are persisted to lead_scores table.

Retrieve the highest-scoring leads from the CRM, ranked by ICP fit. Returns company details, contact (if any), 4-dimension score breakdown, and qualitative reasons like 'Industry X — strong match to ICP'. By default filters out leads with <50% data completeness to avoid false-positives from data-sparse ICP matches (e.g. leads where only the contact's seniority matched but industry/employees/country are unknown). Override via filters.min_completeness if you want incomplete leads too. Requires scoreLeads to have been run at least once. Requires Pro plan. Read-only — does not trigger new scoring. Call scoreLeads first if your CRM has new companies or ICP has changed (check icp_version_hash in the response to detect staleness).

Compose an email via the user's connected email provider (currently Gmail; Microsoft 365 coming in Phase B). DEFAULT mode is 'draft' — creates a real draft in Gmail that the user can review before sending. Only use mode='send' when the user explicitly confirms sending with keywords like 'sende', 'schick raus', 'verschicken', 'send it', 'raus damit'. On 'draft' success, response includes draft_url the user can click to open the draft in Gmail. On 'send' success, response includes a tracking_id (1×1 pixel auto-injected for open-tracking). The From address is resolved server-side (5-level precedence: explicit from > user-token integration > user-token default > account default > account email) — do NOT fabricate a From address. Optional crm_deal_id links the message to a deal for future activity writeback. Requires active email provider OAuth connection.

Create a new campaign briefing. Use after collecting the 7 required fields via the campaign-briefing-playbook (search 'campaign-briefing-playbook' in playbook chapter to load the methodology). Sets status='draft'. Returns the created campaign id. NEVER call this without first running the playbook conversation — every campaign needs a complete briefing.

List campaigns for the current user, optionally filtered by status. Returns campaign metadata plus per-stage lead counts.

Get a single campaign with full briefing details and lead-stage counts.

Update fields on an existing campaign. Pass only the fields to change.

Add one or more leads to a campaign. Standard fields (company_name, contact_email, etc.) go to typed columns. ANY OTHER FIELD you pass automatically gets stored in the metadata jsonb column — no schema migration needed for new fields. Examples of custom fields: booth_number, source_event, scanned_at, follow_up_priority, notes_from_call. Call getCampaignLeadFields first to discover what custom fields are already used in this campaign.

Discover which fields are actually used in a campaign's leads. Returns standard columns with non-null values PLUS all metadata (custom) keys with usage counts and sample values. ALWAYS call this BEFORE asking the user about lead structure or before adding new custom fields — it tells you what's already established for this list.

Update fields on an existing campaign lead. Pass lead_id (UUID from listCampaignLeads) and an updates object with only the fields to change. Use this to mark leads as rejected, manually correct enrichment data, or attach custom metadata. Setting lifecycle_stage='rejected' REQUIRES rejected_reason in the same call. The metadata field is shallow-merged into existing metadata jsonb — existing keys are preserved unless overwritten by the same key. Score/dim_*/icp_version_hash are NOT writable here (those come from scoreLeads). crm_external_id/crm_synced_at are NOT writable either (CRM-Sync owns those).

List leads in a campaign, optionally filtered by lifecycle_stage or enrichment_status. Returns up to 100 per call.

Store structured state for the current chat session. Use this to persist data that must survive history compression — wizard fields, suggestion lists, active entities. Three kinds: 'wizard' (multi-turn field collection), 'working_set' (ephemeral suggestion lists with TTL), 'pinned_entity' (durable context). Call this AFTER the user confirms a value, BEFORE moving to the next step. The state object replaces (not merges) — fetch first if you need to merge.

Retrieve the current state for a (kind, key) in the current session. Returns null if not set. Use this when you need to merge into existing state or verify what's stored. NOTE: Active working memory entries are ALSO automatically injected into the system prompt by Build Messages — you usually don't need to call this manually. Only call when you need a specific record's full state on-demand.

Create a prioritized task. Provide the four ICE inputs (impact, confidence, effort_constraint, effort_nonconstraint); the DB computes ice_score. Show the inputs to the user for confirmation before calling.

List tasks in the workspace, ranked by ICE (highest first). Optional filters.

Return the workspace's open/in-progress tasks ranked by ICE (highest priority first) plus the total open count. Call this at the START of any planning, prioritization, or 'what should I work on next' discussion to ground the conversation in current open tasks before advising.

Update fields of a task. Partial update; status='done' sets done_at automatically. ice_score recomputes when impact/confidence/effort change.

Set the workspace effort weights (constraint vs non-constraint lane) and optional display labels. Re-stamps open tasks so their ICE re-ranks.

Hakt einen Step eines Tasks ab/an. done weglassen = flippen.

概览

What is GrowthKit Revenue Intelligence?

GrowthKit Revenue Intelligence is a remote MCP (Model Context Protocol) server that provides a structured, chaptered long-term marketing memory, ICP-based lead scoring, CRM enrichment, and strategy writeback into your CRM. It is built for owner-led B2B companies in the DACH/EU mid-market that lack a dedicated GTM team.

How to use GrowthKit Revenue Intelligence?

Add the server to any MCP-compatible client (e.g., Claude Desktop, ChatGPT, Cursor) by configuring the URL https://mcp.growthkit.tools in the mcpServers section. On first connect, you will be taken through an OAuth screen where you paste your GrowthKit token or click "Try the demo" for a read-only sample workspace.

Key features of GrowthKit Revenue Intelligence

  • Structured marketing memory with semantic search and version history
  • ICP lead scoring with per-dimension breakdowns
  • CRM read and writeback (Twenty live; more on roadmap)
  • Company and person enrichment, email finding and verification
  • Campaign creation, lead import, and lifecycle triage
  • Guided playbooks for onboarding, ICP workshop, and weekly review

Use cases of GrowthKit Revenue Intelligence

  • Score and surface the highest-fit leads against your ICP
  • Enrich company and contact data and write results back to CRM
  • Manage campaign briefings and triage leads through their lifecycle
  • Run a weekly review using a guided playbook
  • Draft or send emails via connected Gmail account

FAQ from GrowthKit Revenue Intelligence

Is GrowthKit Revenue Intelligence self-hosted?

No, it is a remote MCP server over Streamable HTTP with OAuth 2.0 PKCE. No local installation required.

What CRMs are supported?

Twenty CRM is live. Pipedrive, HubSpot, Salesforce, and others are on the roadmap.

Where is my data stored?

Data is hosted in the EU (Supabase, Frankfurt) and the service is GDPR-aligned.

Is there a demo available?

Yes, a read-only demo workspace is available on first connect without requiring a token or signup.

What access controls exist?

Access is scoped by token type (admin, team, view, demo) with chapter-level read/write permissions and plan-gated features.

评论

其他 分类下的更多 MCP 服务器