Skip to main content

Sprouts MCP Server Documentation

A cloud-native Model Context Protocol (MCP) server enabling AI assistants to access Sprouts.ai's prospect intelligence and data management capabilities.

Updated over 2 weeks ago

πŸ“‹ Overview

The Sprouts MCP Server provides AI assistants with powerful prospect intelligence tools through the Model Context Protocol. Built on Cloudflare Workers, it offers secure OAuth authentication, persistent storage, and advanced search capabilities across 35+ million company profiles.

Key Highlights

  • 7 Core Tools for prospect intelligence and data management

  • Advanced AI Features including decision maker analysis and career path tracking


πŸ› οΈ Available Tools

Tool Name

Purpose

Access Type

sprouts_data_intelligence

Natural language prospect search with AI-powered ranking

Read-only

move_to_sprouts

Transfer contacts/accounts to Sprouts platform

Write

query_templates

Create and manage reusable search templates

Read/Write

query_refinement

AI-powered query optimization and suggestions

Read/Write

search_history

Search analytics and pattern recognition

Read/Write

icp_analysis

Ideal Customer Profile management and analysis

Read/Write

sprouts_user_preferences

Configure user settings and field preferences

Read/Write


πŸ” Authentication

OAuth 2.0 Flow

The server implements industry-standard OAuth 2.0 authentication

Discovery Endpoint

GET /.well-known/oauth-protected-resource

Response:

json

{

"bearer_methods_supported": ["header"],

"scopes_supported": ["mcp:read", "mcp:write"],

"resource_name": "Sprouts AI MCP Server"

}

Authentication Process

  1. Discovery - MCP client fetches OAuth metadata from well-known endpoint

  2. Authorization - User redirected to OAuth portal for authentication

  3. Grant Access - User authorizes the requested scopes

  4. Token Issuance - Client receives access token

  5. API Access - Client includes token in requests: Authorization: Bearer <token>


πŸš€ Quick Start

Claude Desktop Configuration

Add to your claude_desktop_config.json:

json

{

"mcpServers": {

"sprouts-ai": {

"command": "npx",

"args": [

"mcp-remote",

]

}

}

}

ℹ️ Note: The MCP client automatically handles OAuth authentication flow


🌐 API Endpoints

Endpoint

Method

Purpose

/health

GET

Health check and system status

/sse

GET

Establish Server-Sent Events stream

/sse

POST

Send MCP JSON-RPC messages

/mcp

POST

Direct MCP JSON-RPC endpoint

/.well-known/oauth-protected-resource

GET

OAuth discovery metadata


πŸ“š Tool Reference Guide

1️⃣ sprouts_data_intelligence

Purpose: Search for prospects using natural language queries with advanced AI-powered analysis

Parameters

Parameter

Type

Required

Description

query

string

βœ…

Natural language search query

pageSize

number

❌

Results per page (1-100, default: 100)

ranking

object

❌

AI ranking configuration

decisionMaker

object

❌

Decision maker analysis settings

clustering

object

❌

Result clustering configuration

careerPath

object

❌

Career progression analysis

booleanQuery

object

❌

Boolean query parsing (AND/OR/NOT)

fieldSelection

object

❌

Optimize response fields and token usage

Example: Basic Search

json

{

"jsonrpc": "2.0",

"method": "tools/call",

"params": {

"name": "sprouts_data_intelligence",

"arguments": {

"query": "find VP of Sales at SaaS companies in San Francisco with 50-200 employees",

"pageSize": 10

}

},

"id": "1"

}


2️⃣ move_to_sprouts

Purpose: Transfer contacts or accounts from search results to your Sprouts platform

Parameters

Parameter

Type

Required

Description

type

string

βœ…

Either "contacts" or "accounts"

ids

array

βœ…

Array of IDs from sprouts_data_intelligence results

⚠️ Important: Use contact_id for contacts and account_id for accounts (32-character hex strings)

Example: Move Contacts

json

{

"jsonrpc": "2.0",

"method": "tools/call",

"params": {

"name": "move_to_sprouts",

"arguments": {

"type": "contacts",

"ids": [

"140e2602efcc47c191bda2b85e20fad5",

"3e64d01b4d194d2f8153039171302cc9"

]

}

},

"id": "4"

}


3️⃣ query_templates

Purpose: Create and manage reusable search templates with variables

Available Actions

  • list - View all templates

  • search - Find templates by keyword

  • get - Retrieve specific template

  • create - Create new template

  • populate - Fill template with variables

  • categories - List template categories

  • popular - Get most-used templates

  • stats - Template usage statistics

  • export - Export templates

Example: Create Template

json

{

"jsonrpc": "2.0",

"method": "tools/call",

"params": {

"name": "query_templates",

"arguments": {

"action": "create",

"template": {

"name": "Enterprise Decision Makers",

"description": "Find C-level executives at enterprise companies",

"template": "find {title} at {industry} companies with more than {employee_count} employees in {location}",

"variables": [

{"name": "title", "default": "CTO"},

{"name": "industry", "default": "technology"},

{"name": "employee_count", "default": "1000"},

{"name": "location", "default": "United States"}

],

"category": "enterprise"

}

}

},

"id": "6"

}


4️⃣ query_refinement

Purpose: AI-powered query analysis and optimization suggestions

Available Actions

  • analyze - Analyze query effectiveness

  • refine - Get refinement suggestions

  • suggestions - Category-specific suggestions

  • options - Available refinement options

  • stats - Refinement statistics

  • preferences - View refinement preferences

  • save_preferences - Save user preferences

  • export - Export refinement data

Refinement Categories

  • location - Geographic refinements

  • industry - Industry-specific suggestions

  • company_size - Company size filters

  • job_title - Job title variations


5️⃣ search_history

Purpose: Track, analyze, and learn from search patterns

Available Actions

  • list - View search history

  • get - Retrieve specific search

  • analytics - Search performance analytics

  • patterns - Identify search patterns

  • recommendations - Get search suggestions

  • clear - Clear history

  • export - Export search data

  • import - Import historical data

  • stats - Usage statistics

Example: Get Analytics

json

{

"jsonrpc": "2.0",

"method": "tools/call",

"params": {

"name": "search_history",

"arguments": {

"action": "analytics",

"dateFrom": "2025-01-01T00:00:00Z",

"dateTo": "2025-01-14T23:59:59Z"

}

},

"id": "7"

}


6️⃣ icp_analysis

Purpose: Ideal Customer Profile management and prospect analysis

Available Actions

  • setup - Configure company ICP profile

  • analyze - Analyze prospect fit

  • update - Update ICP criteria

  • view_profile - View current ICP

  • generate_report - Create ICP report

  • recommendations - Get targeting recommendations

  • history - View analysis history

  • delete - Remove ICP profile

Analysis Types

  • demographic - People-based analysis

  • firmographic - Company-based analysis

  • behavioral - Activity-based analysis

  • technographic - Technology stack analysis

  • comprehensive - All analysis types

Example: Setup ICP

json

{

"jsonrpc": "2.0",

"method": "tools/call",

"params": {

"name": "icp_analysis",

"arguments": {

"action": "setup",

"companyInfo": {

"name": "Acme Corp",

"industry": "B2B SaaS",

"description": "Enterprise sales automation platform",

"targetIndustries": ["Technology", "Financial Services", "Healthcare"],

"targetCompanySizes": ["mid-size", "large", "enterprise"],

"targetJobTitles": ["VP Sales", "CRO", "Head of Revenue"],

"targetSeniority": ["senior", "executive"],

"targetLocations": ["United States", "United Kingdom", "Canada"]

}

}

},

"id": "5"

}


7️⃣ sprouts_user_preferences

Purpose: Configure personal preferences for optimized searches

Available Actions

  • get - View current preferences

  • set - Set all preferences

  • update - Update specific preferences

  • reset - Reset to defaults

  • stats - Preference statistics

  • export - Export preferences

  • import - Import preferences

  • list_field_sets - Available field sets

  • list_search_attributes - Available search attributes

  • list_ranking_options - Ranking configuration options

  • list_decision_maker_options - Decision maker settings

  • list_advanced_features - Advanced feature options

  • help - Get help documentation

Available Field Sets

Field Set

Purpose

Use Case

contact_essentials

Basic contact info

Quick lookups

lead_qualification

Lead scoring data

Sales qualification

sales_outreach

Outreach-ready data

Email campaigns

decision_maker

Decision maker insights

Strategic selling

company_research

Deep company data

Market research

recruiting

Hiring-focused data

Talent acquisition

market_research

Market intelligence

Competitive analysis

data_enrichment

Comprehensive data

CRM enrichment

event_targeting

Event attendance data

Event marketing

content_marketing

Content engagement

Content strategy

full_dataset

All available fields

Complete analysis


πŸ’‘ Advanced Features

  • Boolean Query Support

Perform complex searches using Boolean operators:

json

{

"query": "(Marketing Manager OR Growth Lead) AND SaaS NOT agency",

"booleanQuery": {

"enabled": true,

"parseComplexQueries": true

}

}

  • Career Path Analysis

Track prospect career progression and readiness:

json

{

"careerPath": {

"enabled": true,

"includeProgression": true,

"includeReadiness": true

}

}

  • Result Clustering

Organize results by common attributes:

json

{

"clustering": {

"enabled": true,

"strategy": "industry_focused", // or "geographic", "seniority_levels"

"maxClusters": 10,

"minClusterSize": 3

}

}

  • Decision Maker Analysis

Identify key decision makers with AI scoring:

json

{

"decisionMaker": {

"industry": "fintech",

"companySize": "startup",

"saleType": "enterprise",

"solution": "software"

}

}

  • Smart Field Selection

Optimize token usage and response size:

json

{

"fieldSelection": {

"fieldSet": "sales_outreach",

"excludeHighVolume": true,

"responseMode": "data",

"maxEstimatedTokens": 5000

}

}


🎯 Complete Usage Examples

Example 1: Enterprise Sales Prospecting

Scenario: Find CTOs at Series A fintech startups in New York

json

{

"jsonrpc": "2.0",

"method": "tools/call",

"params": {

"name": "sprouts_data_intelligence",

"arguments": {

"query": "CTO or VP Engineering at fintech startups in New York that raised Series A",

"pageSize": 25,

"ranking": {

"targetCompanySize": "startup",

"targetIndustry": "fintech",

"targetSeniority": "executive",

"boostKeywords": ["AI", "machine learning", "blockchain"]

},

"decisionMaker": {

"industry": "fintech",

"companySize": "startup",

"saleType": "enterprise",

"solution": "software"

},

"clustering": {

"enabled": true,

"strategy": "seniority_levels"

}

}

},

"id": "2"

}


Example 2: Boolean Search with Field Optimization

Scenario: Find marketing leaders at SaaS companies (excluding agencies)

json

{

"jsonrpc": "2.0",

"method": "tools/call",

"params": {

"name": "sprouts_data_intelligence",

"arguments": {

"query": "(Marketing Manager OR Growth Lead) AND SaaS NOT agency",

"pageSize": 50,

"booleanQuery": {

"enabled": true,

"parseComplexQueries": true

},

"fieldSelection": {

"fieldSet": "sales_outreach",

"excludeHighVolume": true

}

}

},

"id": "3"

}


Example 3: Complete Workflow - Search, Analyze, and Import

Step 1: Search for prospects

json

{

"name": "sprouts_data_intelligence",

"arguments": {

"query": "VP of Sales at e-commerce companies in California",

"pageSize": 20

}

}

Step 2: Move qualified leads to Sprouts

json

{

"name": "move_to_sprouts",

"arguments": {

"type": "contacts",

"ids": ["140e2602efcc47c191bda2b85e20fad5", "3e64d01b4d194d2f8153039171302cc9"]

}

}

Step 3: Analyze search patterns

json

{

"name": "search_history",

"arguments": {

"action": "patterns"

}

}


⚠️ Error Handling

Standard Error Format

json

{

"jsonrpc": "2.0",

"id": "1",

"error": {

"code": -32600,

"message": "Invalid request format"

}

}

Error Code Reference

Code

Error Type

Description

Solution

-32600

Invalid Request

Malformed JSON-RPC

Check JSON syntax

-32601

Method Not Found

Unknown MCP method

Verify method name

-32602

Invalid Params

Missing/invalid parameters

Check required fields

-32603

Internal Error

Server-side error

Retry or contact support

-32001

Authentication Required

Missing/invalid OAuth token

Re-authenticate

Authentication Error Example

json

{

"jsonrpc": "2.0",

"id": null,

"error": {

"code": -32001,

"message": "Authentication required: Missing Authorization header"

}

}


πŸ”§ Troubleshooting Guide

Issue: 401 Unauthorized Error

Symptoms: Requests fail with authentication error

Possible Causes:

  • Missing Bearer token

  • Expired access token

  • Invalid token format

Solutions:

  1. Verify MCP client supports OAuth 2.0

  2. Confirm client discovers /.well-known/oauth-protected-resource

  3. Check token hasn't expired

  4. Re-authenticate through OAuth flow


Issue: Empty Search Results

Symptoms: Query returns zero results

Possible Causes:

  • Query too restrictive

  • Malformed natural language query

  • Invalid search parameters

Solutions:

  1. Use complete natural language sentences

  2. Broaden search criteria

  3. Enable query expansion:

json

{

"queryHandling": {

"allowTimeExpansion": true,

"allowNumberExpansion": true,

"expansionStrategy": "moderate"

}

}


Issue: Invalid Tool Name Error

Symptoms: -32601 Method not found error

Possible Causes:

  • Incorrect tool name spelling

  • Wrong case sensitivity

  • Hyphen vs underscore confusion

Solutions: Use exact tool names:

  • βœ… sprouts_data_intelligence

  • ❌ sprouts-data-intelligence

  • ❌ sproutsDataIntelligence


Issue: Move Operation Fails

Symptoms: move_to_sprouts returns error

Possible Causes:

  • Invalid ID format

  • Wrong ID type (contact vs account)

  • IDs not from search results

Solutions:

  1. Extract IDs directly from sprouts_data_intelligence results

  2. Use account_id field for accounts

  3. Use contact_id field for contacts

  4. Verify IDs are 32-character hex strings

  5. Ensure IDs exist in the system


πŸ—οΈ Development Guide

Local Development Setup

bash

# Clone repository

cd mcp-server

# Install dependencies

npm install

# Run development server

npm run dev

# Run tests

npm test

# Deploy to production

npm run deploy


Environment Configuration

Required Secrets

Configure via wrangler.toml or using Wrangler CLI:

bash

# OAuth Configuration (Scalekit)

wrangler secret put SCALEKIT_ENVIRONMENT_URL

wrangler secret put SCALEKIT_CLIENT_ID

wrangler secret put SCALEKIT_CLIENT_SECRET

wrangler secret put SCALEKIT_RESOURCE_ID

# Sprouts API Configuration

wrangler secret put SPROUTS_API_KEY

wrangler secret put SPROUTS_API_SECRET

# Move to Sprouts Configuration

wrangler secret put MOVE_TO_SPROUTS_TOKEN

wrangler secret put MOVE_TO_SPROUTS_EMAIL

wrangler secret put MOVE_TO_SPROUTS_CUSTOMER_ID


Configuration File Example

wrangler.toml:

toml

name = "sprouts-mcp-server"

main = "src/index.js"

compatibility_date = "2024-01-01"

[[kv_namespaces]]

binding = "SPROUTS_MCP_KV"

id = "your-kv-namespace-id"

[vars]

ENVIRONMENT = "production"


πŸ“Š Performance Metrics

Service Level Objectives

Metric

Target

Current

Response Time (P95)

< 200ms

~150ms

Uptime

99.9%

99.95%

Rate Limit

100ms between requests

Enforced

Request Timeout

30 seconds

Configured

Max Token Result

25,000 tokens

Compliant

Rate Limiting

  • Minimum 100ms between consecutive requests

  • Burst capacity: 10 requests

  • Recovery time: 1 second


πŸ“ž Support & Resources

Contact Information


Legal & Privacy


Technical Resources


πŸ“„ Server Information

Property

Value

Status

🟒 Production Ready

Version

1.0.0

Last Updated

January 2025

License

MIT License

Maintained By

Sprouts.ai Team


πŸŽ‰ Getting Started Checklist

  • Review authentication requirements

  • Configure OAuth credentials

  • Add server to Claude Desktop config

  • Test with basic search query

  • Explore advanced features

  • Set up field preferences

  • Create custom query templates

  • Configure ICP profile

  • Review error handling

  • Bookmark support resources


πŸ’‘ Need Help? Contact our support team at [email protected] or visit our documentation portal

Did this answer your question?