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:

1

Access Dashboard

Log in to your Kambrium Dashboard

2

Generate Token

Navigate to SettingsAPI Tokens and click Generate New Token

3

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}")

Step 4: Discover Available Tools

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

Step 5: Call Your First Tool

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:

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


Pro Tip: Use our Postman collection to test API endpoints interactively before writing code.