API & MCP Server
Access your IceCubes meetings, transcripts, and action items programmatically via the REST API, or connect Claude, ChatGPT, and other AI tools via the MCP server.
REST API
Query meetings, transcripts, and action items with simple HTTP requests.
MCP Server
Connect Claude Desktop, Claude Code, Cursor, or ChatGPT to your meeting data.
API Keys
Secure authentication with per-user API keys. Create up to 5 keys.
Authentication
All API and MCP requests require an API key. Create one from Settings → Developer.
Include your API key in the Authorization header:
Authorization: Bearer ik_a1b2c3d4_e5f6789012345678901234567890abcdef01234567
API keys start with ik_. The full key is only shown once when created — store it securely. You can revoke keys at any time from the Developer settings.
MCP Server Setup
The IceCubes MCP server lets AI tools like Claude and ChatGPT access your meeting data through the Model Context Protocol.
Claude Desktop
Add this to your claude_desktop_config.json (found at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"icecubes": {
"command": "npx",
"args": [
"mcp-remote",
"https://icecubes.app/api/mcp",
"--header",
"Authorization: Bearer YOUR_API_KEY"
]
}
}
}Restart Claude Desktop after saving. You should see "icecubes" in the MCP tools list.
Claude Code
Add to your project's .mcp.json or global MCP settings:
{
"mcpServers": {
"icecubes": {
"command": "npx",
"args": [
"mcp-remote",
"https://icecubes.app/api/mcp",
"--header",
"Authorization: Bearer YOUR_API_KEY"
]
}
}
}Cursor
Go to Cursor Settings → MCP and add a new server with the same configuration as Claude Desktop above.
ChatGPT
In ChatGPT Settings → Connectors → Create, enter the MCP server URL:
https://icecubes.app/api/mcp
Select Bearer Token authentication and paste your API key.
MCP Tools
The MCP server exposes 13 tools that AI assistants can call:
get_userGet your profile including meeting count and organization info. No parameters required.
get_meetingsSearch and list your meetings with optional filters.
keyword — Search by title
from_date / to_date — Date range (ISO 8601)
participant — Filter by participant email
tag — Filter by tag name
scope — "personal" (default) or "org"
hubspot_deal_id — Filter by HubSpot deal ID
salesforce_opportunity_id — Filter by Salesforce opportunity ID
limit — Max results (default 20, max 50)
get_meetingGet full details of a specific meeting including summary and action items.
meeting_id — Required. The meeting ID.
get_transcriptGet the full transcript with speaker names and timestamps.
meeting_id — Required. The meeting ID.
get_action_itemsList action items across all meetings or for a specific meeting.
meeting_id — Optional. Filter by meeting.
completed — Optional. Filter by completion status.
tag — Optional. Filter by tag name (only items from tagged meetings).
limit — Max results (default 20, max 50)
search_meetingsSearch across all meeting content by keyword.
query — Required. Search query.
content_type — Filter by content type.
speaker — Filter by speaker name.
tag — Filter by tag name.
limit — Max results.
get_insightsGet sales insights for a meeting.
meeting_id — Required. The meeting ID.
category — Filter by insight category.
create_action_itemCreate an action item for a meeting.
meeting_id — Required. The meeting ID.
text — Required. Action item text.
assignee_email — Optional. Assignee email.
due_date — Optional. Due date (ISO 8601).
update_action_itemUpdate an existing action item.
action_item_id — Required. The action item ID.
completed — Optional. Mark as complete/incomplete.
text — Optional. Updated text.
get_notesGet meeting notes.
meeting_id — Required. The meeting ID.
update_notesUpdate meeting notes.
meeting_id — Required. The meeting ID.
content — Required. The notes content.
get_contactsList contacts from your meetings.
search — Search by name or email.
domain — Filter by email domain.
limit — Max results.
get_tagsList all available tags including smart tags (AI-auto-applied). No parameters required.
Example Prompts
Once connected, try asking Claude or ChatGPT:
- "What were the key action items from my meetings last week?"
- "Summarize my meeting with [client name]"
- "What competitor mentions came up in recent sales calls?"
- "Show me all open action items assigned to me"
- "What were the main topics discussed in my last 5 meetings?"
For advanced usage with Claude Code including slash commands and workflows, see the Claude Code Plugin guide.
REST API
The REST API provides direct HTTP access to your meeting data. Endpoints support both read and write operations with API key authentication.
Base URL: https://icecubes.app/api/public
| Endpoint | Method | Description |
|---|---|---|
/user | GET | Your profile and meeting stats |
/meetings | GET | List and search meetings |
/meetings/:id | GET | Full meeting details with summary |
/meetings/:id/transcript | GET | Full transcript with speakers |
/meetings/:id/insights | GET | AI-extracted sales insights |
/meetings/:id/notes | GET / PUT | Read and write meeting notes |
/action-items | GET / POST | List or create action items |
/action-items/:id | PATCH | Update an action item |
/search | GET | Full-text search across all content |
/contacts | GET | List contacts from meetings |
/tags | GET | List all tags |
View full REST API reference →
Error Handling
All errors follow a consistent JSON format:
{
"error": {
"code": "not_found",
"message": "Meeting not found"
}
}| HTTP Status | Code | Description |
|---|---|---|
| 401 | unauthorized | Missing, invalid, or revoked API key |
| 403 | forbidden | Not authorized to access this resource |
| 404 | not_found | Resource not found |
| 500 | internal_error | Server error |