mcp-server-kickscale
v1.0.0
Published
Unofficial MCP Server for Kickscale API - Access meetings, calls, and transcripts. Not affiliated with or endorsed by Kickscale.
Downloads
16
Maintainers
Readme
Kickscale MCP Server
⚠️ DISCLAIMER: This is an unofficial, community-built MCP server for the Kickscale API. It is not affiliated with, endorsed by, or supported by Kickscale. Use at your own risk.
MCP (Model Context Protocol) Server for the Kickscale API. Enables access to meetings, calls, and transcripts through LLM applications like Claude Desktop.
Requirements: You must have valid Kickscale API credentials (Client ID and API Key) to use this server.
Features
- Fetch meetings: List meetings with filters by date range and company
- Meeting details: Complete meeting information including transcript, summary, action items, metrics
- Manage calls: Retrieve, list, and initialize calls
- Flexible filters: Filter by customerDomain, date range (startDate/endDate)
- Expand support: Load transcripts and additional details on-demand
Installation
Prerequisites
- Node.js >= 18.0.0
- Kickscale API credentials (Client ID and API Key)
Via npx (recommended)
The server can be run directly via npx. Configuration in Claude Desktop or other MCP clients:
{
"mcpServers": {
"kickscale": {
"command": "npx",
"args": ["-y", "mcp-server-kickscale"],
"env": {
"KICKSCALE_CLIENT_ID": "your-client-id",
"KICKSCALE_API_KEY": "your-api-key"
}
}
}
}Local Installation
# Clone repository or download package
cd kickscale-mcp
# Install dependencies
npm install
# Build project
npm run buildConfiguration
The server requires two environment variables:
KICKSCALE_CLIENT_ID: Your Kickscale Client IDKICKSCALE_API_KEY: Your Kickscale API Key
Claude Desktop Configuration
Add the following configuration to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"kickscale": {
"command": "node",
"args": ["/path/to/kickscale-mcp/dist/index.js"],
"env": {
"KICKSCALE_CLIENT_ID": "your-client-id",
"KICKSCALE_API_KEY": "your-api-key"
}
}
}
}Available Tools
1. list_meetings
Retrieve a list of meetings with optional filters.
Parameters:
page(required): Page number (starts at 0)pageSize(required): Number of meetings per pagesortingOrder(required):"ascending"or"descending"customerDomain(optional): Comma-separated list of domains, e.g."example.com,example.org"startDate(optional): Start date in ISO format, e.g."2023-01-01T00:00:00Z"endDate(optional): End date in ISO format, e.g."2023-01-31T23:59:59Z"expand(optional): Fields to expand, e.g."meeting_transcript,transcript"
Example:
{
"page": 0,
"pageSize": 10,
"sortingOrder": "descending",
"customerDomain": "acme.com",
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-01-31T23:59:59Z",
"expand": "meeting_transcript,transcript"
}2. get_meeting
Retrieve a single meeting with all details.
Parameters:
meetingId(required): The ID of the meeting
Returns:
- Complete meeting object with transcript, summary, action items, metrics, participants, insights, etc.
3. list_calls
Retrieve a list of calls with optional filters.
Parameters: (identical to list_meetings)
page,pageSize,sortingOrder(required)customerDomain,startDate,endDate,expand(optional)
4. get_call
Retrieve a single call with all details.
Parameters:
callId(required): The ID of the call
5. initialize_call
Create/initialize a new call.
Parameters:
recordingUrl(required): URL of the call recordingdate(required): Date/time in ISO formatname(required): Name/title of the callcaller(required): Object withemail,name,phoneNumbercallee(required): Object withemail,name,phoneNumberdirection(required):"inbound"or"outbound"crmReference(optional): CRM references (leadId, dealId, contactId, companyId)callTypeConfigurationId(optional): ID of the call type configuration
Example:
{
"recordingUrl": "https://example.com/recording.mp3",
"date": "2024-01-15T14:30:00Z",
"name": "Sales Call with Acme Corp",
"caller": {
"email": "[email protected]",
"name": "John Doe",
"phoneNumber": "+49123456789"
},
"callee": {
"email": "[email protected]",
"name": "Jane Smith",
"phoneNumber": "+49987654321"
},
"direction": "outbound"
}Usage Examples
Retrieve meeting transcripts for a date range
Show me all meetings from January 2024 with transcripts from customers with domain "acme.com"Claude will then call list_meetings with the appropriate parameters.
Analyze a single meeting
Load the meeting with ID "abc123" and summarize the most important action itemsClaude calls get_meeting and analyzes the returned data.
Development
# Development mode with auto-rebuild
npm run watch
# Build
npm run build
# Test locally
KICKSCALE_CLIENT_ID=xxx KICKSCALE_API_KEY=yyy node dist/index.jsTroubleshooting
Server won't start
- Check if
KICKSCALE_CLIENT_IDandKICKSCALE_API_KEYare set correctly - Check the Claude Desktop logs for errors
API errors
- Ensure your API credentials are valid
- Verify that the API URL is reachable:
https://kickscale-platform-api-182312324860.europe-west1.run.app
No transcripts in list_meetings
- Use the
expandparameter:"expand": "meeting_transcript,transcript" - Transcripts may still be processing
Legal & Disclaimer
This project is provided "as-is" without any warranty. It is an independent, community-driven project and is not affiliated with, endorsed by, or supported by Kickscale.
- Kickscale and related trademarks are property of their respective owners
- This server requires valid Kickscale API credentials
- Usage is subject to Kickscale's API Terms of Service
- The authors are not responsible for any misuse or API violations
Support
For questions about this MCP server, please open an issue on GitHub.
For questions about the Kickscale API or your credentials, please contact Kickscale Support directly.
License
MIT License - See LICENSE file for details.
This license applies only to the MCP server code, not to the Kickscale API or service.
