Quickstart Guide
Welcome to Kambrium! This guide will get you from zero to your first working MCP integration in under 10 minutes . By the end, you’ll have an AI application connected to a SaaS tool through our MCP protocol.
What You’ll Build
You’ll create a simple AI assistant that can:
Connect to your Pipedrive CRM
List and search deals
Create new contacts
All through natural language commands
Prerequisites
Before you begin, ensure you have:
✅ A Kambrium account (sign up free )
✅ Python 3.7+ or Node.js 16+ installed
✅ A Pipedrive account with API access
✅ 10 minutes to spare
Don’t have Pipedrive? No problem! You can use our demo credentials to
try the integration, or substitute with any of our supported
integrations .
Step 1: Get Your API Token
First, grab your Kambrium API token:
Generate Token
Navigate to Settings → API Tokens and click Generate New Token
Copy Token
Copy your Personal Access Token (PAT) - you’ll need it for all API calls
Keep your API token secure! Never commit it to version control or share it
publicly.
Step 2: Create Your MCP Server
Now let’s create an MCP server that connects to Pipedrive:
curl -X POST https://api.kambrium.com/api/v1/mcp-servers \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"server_type": "pipedrive",
"name": "my-pipedrive-server",
"configuration": {
"api_token": "YOUR_PIPEDRIVE_API_TOKEN",
"company_domain": "your-company"
}
}'
Expected Response:
{
"server_id" : "srv_abc123" ,
"status" : "active" ,
"server_type" : "pipedrive" ,
"name" : "my-pipedrive-server" ,
"created_at" : "2025-01-26T10:30:00Z"
}
Step 3: Initialize MCP Session
Start an MCP protocol session to begin interacting with your server:
import requests
import json
# Initialize MCP session
session_response = requests.post(
"https://mcp.kambrium.com/initialize" ,
headers = {
"Authorization" : "Bearer YOUR_API_TOKEN" ,
"Content-Type" : "application/json"
},
json = {
"protocolVersion" : "2025-03-26" ,
"capabilities" : {
"tools" : {},
"resources" : {}
},
"clientInfo" : {
"name" : "my-ai-assistant" ,
"version" : "1.0.0"
}
}
)
session_data = session_response.json()
session_id = session_data[ "sessionId" ]
print ( f "Session started: { session_id } " )
List the tools available from your Pipedrive MCP server:
# List available tools
tools_response = requests.post(
"https://mcp.kambrium.com/tools/list" ,
headers = {
"Authorization" : "Bearer YOUR_API_TOKEN" ,
"X-Session-ID" : session_id,
"Content-Type" : "application/json"
},
json = {}
)
tools_data = tools_response.json()
print ( "Available tools:" )
for tool in tools_data[ "tools" ]:
print ( f "- { tool[ 'name' ] } : { tool[ 'description' ] } " )
Expected Output:
Available tools:
- get_deals: Retrieve deals from Pipedrive
- create_contact: Create a new contact in Pipedrive
- search_organizations: Search for organizations
- get_activities: Retrieve activities and tasks
Let’s retrieve some deals from Pipedrive:
# Call the get_deals tool
result = requests.post(
"https://mcp.kambrium.com/tools/call" ,
headers = {
"Authorization" : "Bearer YOUR_API_TOKEN" ,
"X-Session-ID" : session_id,
"Content-Type" : "application/json"
},
json = {
"name" : "get_deals" ,
"arguments" : {
"status" : "open" ,
"limit" : 5
}
}
)
deals_data = result.json()
print ( f "Found { len (deals_data[ 'content' ]) } open deals:" )
for deal in deals_data[ 'content' ][: 3 ]: # Show first 3
print ( f "- { deal[ 'title' ] } : $ { deal[ 'value' ] } " )
Expected Output:
Found 5 open deals:
- Enterprise Software License: $25000
- Marketing Campaign Setup: $8500
- Website Redesign Project: $12000
Step 6: Create a Complete Integration
Here’s a complete example that puts it all together:
Complete Python Example
Complete Node.js Example
import requests
import json
class KambriumMCPClient :
def ** init ** ( self , api_token):
self .api_token = api_token
self .session_id = None
self .base_url = "https://mcp.kambrium.com"
def _headers ( self ):
headers = {
"Authorization" : f "Bearer { self .api_token } " ,
"Content-Type" : "application/json"
}
if self .session_id:
headers[ "X-Session-ID" ] = self .session_id
return headers
def initialize_session ( self ):
"""Initialize MCP session"""
response = requests.post(
f " { self .base_url } /initialize" ,
headers = self ._headers(),
json = {
"protocolVersion" : "2025-03-26" ,
"capabilities" : { "tools" : {}, "resources" : {}},
"clientInfo" : { "name" : "ai-assistant" , "version" : "1.0.0" }
}
)
self .session_id = response.json()[ "sessionId" ]
return self .session_id
def list_tools ( self ):
"""List available tools"""
response = requests.post(
f " { self .base_url } /tools/list" ,
headers = self ._headers(),
json = {}
)
return response.json()[ "tools" ]
def call_tool ( self , name , arguments = None ):
"""Call a specific tool"""
response = requests.post(
f " { self .base_url } /tools/call" ,
headers = self ._headers(),
json = { "name" : name, "arguments" : arguments or {}}
)
return response.json()
# Usage example
def main (): # Initialize client
client = KambriumMCPClient( "YOUR_API_TOKEN" )
# Start session
session_id = client.initialize_session()
print ( f "✅ Session started: { session_id } " )
# Discover tools
tools = client.list_tools()
print ( f "✅ Found { len (tools) } available tools" )
# Get deals
deals = client.call_tool( "get_deals" , { "status" : "open" , "limit" : 10 })
print ( f "✅ Retrieved { len (deals[ 'content' ]) } deals" )
# Create a contact
new_contact = client.call_tool( "create_contact" , {
"name" : "John Doe" ,
"email" : "john@example.com" ,
"phone" : "+1-555-0123"
})
print ( f "✅ Created contact: { new_contact[ 'content' ][ 'name' ] } " )
if ** name ** == "**main**" :
main()
Test Your Integration
Run your code and you should see output like:
✅ Session started: sess_abc123
✅ Found 8 available tools
✅ Retrieved 12 deals
✅ Created contact: John Doe
Next Steps
🎉 Congratulations! You’ve successfully connected an AI application to Pipedrive through Kambrium’s MCP protocol.
Here’s what to explore next:
Troubleshooting
Authentication Error (401)
Double-check your API token is correct
Ensure the token hasn’t expired
Verify you’re using the Bearer
prefix in the Authorization header
Verify your SaaS tool credentials are valid - Check that the server_type
is supported - Ensure your account has sufficient permissions
Pro Tip : Use our Postman collection to
test API endpoints interactively before writing code.