MCP Tools Reference
The MCP Server exposes 10 high-level tools for Claude Desktop and other MCP clients, which internally use 28 primitive functions for data access and processing.
Table of Contents
- MCP Tools (10) - Tools exposed to MCP clients
- Primitive Functions (28) - Internal implementation details
MCP Tools
These are the tools available when connecting via MCP (Claude Desktop, HTTP/SSE transport).
natural_query (Recommended)
The recommended entry point. Routes your question to the optimal handler automatically.
"Show my rooms"
"Summarize my last meeting"
"Create a meeting for tomorrow at 2pm"
"Who do I collaborate with most?"
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string |
Yes | Natural language question or command |
showReasoning |
boolean |
No | Include step-by-step reasoning for complex queries |
query_data
Query meeting data using natural language. Translates your question into database queries.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
question |
string |
Yes | Natural language question about your data |
Examples:
- "Show my meetings this week"
- "How many rooms have I used?"
- "List recordings from January"
agent_query
AI agent for complex queries requiring multi-step reasoning.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string |
Yes | Complex question requiring multiple operations |
showReasoning |
boolean |
No | Include step-by-step reasoning |
forceAgent |
boolean |
No | Always use agent even for simple queries |
Examples:
- "Find meetings with John and summarize what we discussed"
- "Schedule a follow-up with everyone from yesterday's standup"
summarize_meeting
Get an AI-powered summary of a meeting.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
roomName |
string |
No | Room name to summarize |
participant |
string |
No | Find meeting with this person |
meetingOffset |
number |
No | 0=most recent, 1=second to last, etc. |
summaryType |
string |
No | meeting-summary, action-items, key-decisions, full |
query_meeting_context
Analyze meeting mood, sentiment, and engagement.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string |
Yes | Question about mood/sentiment |
roomName |
string |
No | Room to analyze |
search_content
Search through transcriptions, chat messages, and documents using semantic similarity.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string |
Yes | What to search for |
contentTypes |
array |
No | Types: transcriptions, chats, documents |
limit |
number |
No | Max results (default: 10) |
roomId |
string |
No | Limit to specific room |
start_meeting
Start an instant meeting or create a persistent room.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
roomName |
string |
Yes | Name for the meeting room |
createOnly |
boolean |
No | Create room without starting |
participants |
array |
No | Emails to invite |
copyLinkToClipboard |
boolean |
No | Copy room link to clipboard |
create_room
Create a new persistent room.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
roomName |
string |
Yes | Name for the room |
enableOffline |
boolean |
No | Enable transcription and AI |
usePassword |
boolean |
No | Require password |
useWaitingRoom |
boolean |
No | Enable waiting room |
create_schedule
Create a new scheduled meeting.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
roomName |
string |
Yes | Name for the meeting room |
startDateTime |
string |
Yes | Start date/time in ISO format |
endDateTime |
string |
No | End date/time |
duration |
number |
No | Duration in minutes |
description |
string |
No | Meeting description |
participants |
array |
No | Emails to invite |
timezone |
string |
No | Timezone (default: UTC) |
cancel_schedule
Cancel a scheduled meeting.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
scheduleId |
string |
Yes | ID of the schedule to cancel |
reason |
string |
No | Reason for cancellation |
Primitive Functions
The 28 primitive functions are internal building blocks used by the MCP tools. They are organized into five categories.
| Category | Count | Purpose |
|---|---|---|
| Data | 9 | Query meeting data, recordings, files |
| Search | 1 | Semantic content search |
| Graph | 8 | Network and relationship analysis |
| AI | 4 | Text processing and AI assistance |
| Action | 6 | Create meetings, schedules, send invites |
Common Parameters
All primitives accept these parameters internally:
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey |
string |
Yes | Organization/tenant ID |
userId |
string |
Yes | User identifier |
_userContext |
Object |
Yes | Security context from buildSecurityContext() |
Data Query Tools
query_rooms
Query meeting room sessions with filtering and pagination.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit |
number |
No | 20 | Max results to return |
offset |
number |
No | 0 | Skip first N results |
startDate |
string |
No | - | Filter by start date (ISO 8601) |
endDate |
string |
No | - | Filter by end date (ISO 8601) |
roomName |
string |
No | - | Filter by room name pattern |
sortBy |
string |
No | 'createdAt' |
Sort field |
sortOrder |
string |
No | 'desc' |
Sort direction |
Response:
{
success: true,
rooms: [
{
_id: 'room_id',
name: 'Weekly Standup',
owner: 'user@example.com',
participants: ['user1@example.com', 'user2@example.com'],
startTime: '2026-01-10T10:00:00Z',
endTime: '2026-01-10T10:30:00Z',
hasRecording: true,
hasTranscription: true
}
],
total: 42,
page: 1,
limit: 20
}
Example:
const result = await toolHandlers.query_rooms({
limit: 10,
startDate: '2026-01-01',
endDate: '2026-01-11',
apiKey: userContext.apiKey,
userId: userContext.userId,
_userContext: securityContext
});
query_schedules
Query scheduled meetings.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit |
number |
No | 20 | Max results |
offset |
number |
No | 0 | Skip results |
startDate |
string |
No | - | Filter by scheduled start |
endDate |
string |
No | - | Filter by scheduled end |
status |
string |
No | - | Filter by status (pending, completed, cancelled) |
includeAttendees |
boolean |
No | true | Include attendee details |
Response:
{
success: true,
schedules: [
{
_id: 'schedule_id',
title: 'Project Review',
description: 'Quarterly review meeting',
scheduledStart: '2026-01-15T14:00:00Z',
scheduledEnd: '2026-01-15T15:00:00Z',
organizer: 'user@example.com',
attendees: ['attendee1@example.com', 'attendee2@example.com'],
roomName: 'project-review-q1',
status: 'pending',
recurring: false
}
],
total: 15
}
query_stored_rooms
Query saved/persistent rooms.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit |
number |
No | 20 | Max results |
offset |
number |
No | 0 | Skip results |
name |
string |
No | - | Filter by room name |
includeSettings |
boolean |
No | false | Include room settings |
Response:
{
success: true,
storedRooms: [
{
_id: 'stored_room_id',
name: 'team-standup',
displayName: 'Team Standup',
owner: 'user@example.com',
createdAt: '2025-06-01T00:00:00Z',
lastUsed: '2026-01-10T10:00:00Z',
settings: {
autoRecord: true,
autoTranscribe: true,
maxParticipants: 20
}
}
],
total: 5
}
query_files
Query uploaded files and documents.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit |
number |
No | 20 | Max results |
offset |
number |
No | 0 | Skip results |
roomSession |
string |
No | - | Filter by room session |
fileType |
string |
No | - | Filter by MIME type |
filename |
string |
No | - | Filter by filename pattern |
Response:
{
success: true,
files: [
{
_id: 'file_id',
filename: 'presentation.pdf',
mimeType: 'application/pdf',
size: 2048576,
uploadedBy: 'user@example.com',
uploadedAt: '2026-01-10T09:30:00Z',
roomSession: 'room_123',
url: 'https://s3.../file.pdf'
}
],
total: 25
}
query_recordings
Query meeting recordings.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit |
number |
No | 20 | Max results |
offset |
number |
No | 0 | Skip results |
roomSession |
string |
No | - | Filter by room session |
hasTranscription |
boolean |
No | - | Filter by transcription availability |
startDate |
string |
No | - | Filter by recording date |
endDate |
string |
No | - | Filter by recording date |
Response:
{
success: true,
recordings: [
{
_id: 'recording_id',
roomSession: 'room_123',
roomName: 'Weekly Standup',
duration: 1800,
fileSize: 104857600,
hasTranscription: true,
transcriptionId: 'trans_456',
createdAt: '2026-01-10T10:30:00Z',
url: 'https://s3.../recording.mp4'
}
],
total: 100
}
get_transcript
Get transcript metadata and content for a recording.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
recordingId |
string |
Yes* | - | Recording ID |
transcriptionId |
string |
Yes* | - | Transcription ID |
includeContent |
boolean |
No | false | Include full transcript text |
includeSpeakers |
boolean |
No | true | Include speaker information |
*Either recordingId or transcriptionId is required.
Response:
{
success: true,
transcript: {
_id: 'trans_456',
recordingId: 'recording_id',
roomName: 'Weekly Standup',
duration: 1800,
speakers: ['user1@example.com', 'user2@example.com'],
wordCount: 5432,
createdAt: '2026-01-10T10:30:00Z',
content: [ // if includeContent: true
{
speaker: 'user1@example.com',
text: 'Good morning everyone...',
timestamp: 0
}
]
},
actionType: 'VIEW_TRANSCRIPT'
}
open_file
Open a file for viewing.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
fileId |
string |
Yes | - | File ID to open |
Response:
{
success: true,
file: {
_id: 'file_id',
filename: 'presentation.pdf',
mimeType: 'application/pdf',
url: 'https://s3.../signed-url',
expiresAt: '2026-01-11T10:00:00Z'
},
actionType: 'VIEW_FILE'
}
summarize_transcript
Generate a summary of a meeting transcript.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
recordingId |
string |
Yes* | - | Recording ID |
transcriptionId |
string |
Yes* | - | Transcription ID |
summaryType |
string |
No | 'comprehensive' |
Type of summary |
maxLength |
number |
No | 500 | Max summary length |
*Either recordingId or transcriptionId is required.
Summary Types:
comprehensive- Full meeting summary with key pointsbrief- Short executive summaryaction_items- Focus on action items and decisionstopics- Topic-based summary
Response:
{
success: true,
summary: {
type: 'comprehensive',
content: '## Meeting Summary\n\nThe team discussed...',
keyPoints: [
'Agreed on Q1 priorities',
'Budget approved for new hire'
],
actionItems: [
{ task: 'Send proposal', assignee: 'John', deadline: '2026-01-15' }
],
participants: ['user1@example.com', 'user2@example.com'],
duration: 1800
}
}
query_meeting_context
Query meeting sentiment, mood, and engagement data.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
roomSession |
string |
Yes | - | Room session ID |
includeTimeline |
boolean |
No | false | Include sentiment timeline |
Response:
{
success: true,
context: {
roomSession: 'room_123',
overallSentiment: 'positive',
sentimentScore: 0.72,
engagementLevel: 'high',
participationBalance: 0.85,
keyMoments: [
{ timestamp: 300, type: 'decision', description: 'Budget approved' },
{ timestamp: 900, type: 'action_item', description: 'Follow-up scheduled' }
],
timeline: [ // if includeTimeline: true
{ timestamp: 0, sentiment: 0.65 },
{ timestamp: 60, sentiment: 0.70 }
]
}
}
Search Tools
search_content
Semantic search across all content (transcripts, files, messages).
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string |
Yes | - | Search query text |
limit |
number |
No | 10 | Max results |
contentTypes |
array |
No | all | Filter content types |
startDate |
string |
No | - | Filter by date range |
endDate |
string |
No | - | Filter by date range |
threshold |
number |
No | 0.5 | Relevance threshold (0-1) |
Content Types:
transcript- Meeting transcriptsfile- Uploaded filesmessage- Chat messages
Response:
{
success: true,
results: [
{
type: 'transcript',
id: 'trans_456',
roomName: 'Project Review',
snippet: '...discussed the budget allocation for Q1...',
relevance: 0.92,
timestamp: '2026-01-10T10:15:00Z',
speaker: 'user@example.com'
},
{
type: 'file',
id: 'file_789',
filename: 'Q1-Budget.xlsx',
snippet: '...quarterly budget projections...',
relevance: 0.85
}
],
total: 15,
query: 'budget allocation'
}
Example:
const result = await toolHandlers.search_content({
query: 'project timeline discussion',
limit: 5,
contentTypes: ['transcript'],
startDate: '2026-01-01',
apiKey: userContext.apiKey,
userId: userContext.userId,
_userContext: securityContext
});
Graph Analysis Tools
find_collaborators
Find people the user collaborates with most.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
targetUser |
string |
No | current user | User to analyze |
limit |
number |
No | 10 | Max collaborators |
minMeetings |
number |
No | 1 | Min meetings together |
startDate |
string |
No | - | Filter by date range |
endDate |
string |
No | - | Filter by date range |
Response:
{
success: true,
collaborators: [
{
email: 'colleague@example.com',
name: 'John Smith',
meetingCount: 45,
totalDuration: 81000,
lastMeeting: '2026-01-10T10:00:00Z',
commonTopics: ['project-alpha', 'budget', 'planning']
}
],
total: 32
}
get_person_meetings
Get all meetings involving a specific person.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
personEmail |
string |
Yes | - | Person's email |
limit |
number |
No | 20 | Max results |
startDate |
string |
No | - | Filter by date |
endDate |
string |
No | - | Filter by date |
Response:
{
success: true,
person: {
email: 'colleague@example.com',
name: 'John Smith'
},
meetings: [
{
roomName: 'Weekly Standup',
date: '2026-01-10T10:00:00Z',
duration: 1800,
participants: ['user@example.com', 'colleague@example.com'],
hasRecording: true
}
],
total: 45
}
get_graph_stats
Get network statistics for the user.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startDate |
string |
No | - | Filter by date range |
endDate |
string |
No | - | Filter by date range |
Response:
{
success: true,
stats: {
totalCollaborators: 32,
totalMeetings: 271,
totalDuration: 489600,
avgMeetingDuration: 1806,
topCollaborators: [
{ email: 'john@example.com', meetings: 45 }
],
topTopics: [
{ topic: 'project-alpha', mentions: 156 }
],
meetingsByMonth: [
{ month: '2026-01', count: 42 }
]
}
}
find_related_topics
Find topics related to a given topic.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
topic |
string |
Yes | - | Topic to find relations for |
limit |
number |
No | 10 | Max related topics |
minRelevance |
number |
No | 0.3 | Min relevance score |
Response:
{
success: true,
topic: 'project-alpha',
relatedTopics: [
{
topic: 'budget-planning',
relevance: 0.85,
coOccurrences: 23,
lastMentioned: '2026-01-10T10:00:00Z'
}
]
}
get_meeting_topics
Get topics discussed in a meeting.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
roomSession |
string |
Yes | - | Room session ID |
limit |
number |
No | 20 | Max topics |
Response:
{
success: true,
roomSession: 'room_123',
topics: [
{
topic: 'quarterly-review',
confidence: 0.95,
mentions: 12,
speakers: ['user1@example.com', 'user2@example.com']
}
]
}
find_similar_topics
Find semantically similar topics.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
topic |
string |
Yes | - | Topic to find similar |
limit |
number |
No | 10 | Max similar topics |
threshold |
number |
No | 0.5 | Similarity threshold |
Response:
{
success: true,
topic: 'budget planning',
similarTopics: [
{
topic: 'financial forecasting',
similarity: 0.89
},
{
topic: 'resource allocation',
similarity: 0.76
}
]
}
get_network_stats_graph
Get network statistics with graph visualization data.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startDate |
string |
No | - | Filter by date range |
endDate |
string |
No | - | Filter by date range |
maxNodes |
number |
No | 50 | Max graph nodes |
Response:
{
success: true,
stats: { /* same as get_graph_stats */ },
graph: {
nodes: [
{ id: 'user@example.com', label: 'You', type: 'user' },
{ id: 'john@example.com', label: 'John', type: 'collaborator' }
],
edges: [
{ source: 'user@example.com', target: 'john@example.com', weight: 45 }
]
},
actionType: 'VIEW_GRAPH'
}
get_collaborator_graph
Get graph data focused on collaborator relationships.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
centerUser |
string |
No | current user | Center of graph |
depth |
number |
No | 2 | Relationship depth |
maxNodes |
number |
No | 30 | Max graph nodes |
Response:
{
success: true,
graph: {
center: 'user@example.com',
nodes: [
{ id: 'user@example.com', type: 'center', meetings: 271 },
{ id: 'john@example.com', type: 'direct', meetings: 45 },
{ id: 'sarah@example.com', type: 'indirect', meetings: 12 }
],
edges: [
{ source: 'user@example.com', target: 'john@example.com', meetings: 45 },
{ source: 'john@example.com', target: 'sarah@example.com', meetings: 12 }
]
},
actionType: 'VIEW_GRAPH'
}
AI Helper Tools
summarize_text
Summarize provided text using AI.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
text |
string |
Yes | - | Text to summarize |
maxLength |
number |
No | 200 | Max summary length |
style |
string |
No | 'concise' |
Summary style |
Styles:
concise- Brief, to the pointdetailed- Comprehensive summarybullet_points- Bullet point format
Response:
{
success: true,
summary: 'The meeting covered three main topics...',
originalLength: 5432,
summaryLength: 187
}
extract_info
Extract structured information from text.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
text |
string |
Yes | - | Text to extract from |
extractionType |
string |
Yes | - | Type of extraction |
schema |
Object |
No | - | Custom extraction schema |
Extraction Types:
action_items- Tasks and action itemsdecisions- Decisions madequestions- Questions raiseddates- Dates and deadlinespeople- People mentionedcustom- Use custom schema
Response:
{
success: true,
extractionType: 'action_items',
extracted: [
{
task: 'Send proposal to client',
assignee: 'John',
deadline: '2026-01-15',
priority: 'high'
}
]
}
answer_question
Answer a question about provided text.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
text |
string |
Yes | - | Context text |
question |
string |
Yes | - | Question to answer |
Response:
{
success: true,
question: 'What was decided about the budget?',
answer: 'The team approved a $50,000 budget for Q1...',
confidence: 0.92,
relevantExcerpts: [
'...after discussion, we agreed to allocate $50,000...'
]
}
generate_response
Generate a formatted response from data.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
data |
Object |
Yes | - | Data to format |
format |
string |
No | 'markdown' |
Output format |
template |
string |
No | - | Response template |
Formats:
markdown- Markdown formattedplain- Plain texthtml- HTML formatted
Response:
{
success: true,
response: '## Meeting Summary\n\n- **Date:** Jan 10, 2026\n...',
format: 'markdown'
}
Action Tools
start_meeting
Start an instant meeting or join existing room.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
roomName |
string |
No | auto-generated | Room name |
displayName |
string |
No | - | Display name for room |
autoRecord |
boolean |
No | false | Start recording |
autoTranscribe |
boolean |
No | false | Enable transcription |
Response:
{
success: true,
room: {
name: 'instant-meeting-abc123',
displayName: 'Quick Meeting',
joinUrl: 'https://app.example.com/room/instant-meeting-abc123'
},
actionType: 'NAVIGATE_TO_ROOM'
}
create_room
Create a persistent room.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name |
string |
Yes | - | Room name (URL-safe) |
displayName |
string |
No | - | Display name |
settings |
Object |
No | - | Room settings |
Settings:
{
autoRecord: boolean,
autoTranscribe: boolean,
maxParticipants: number,
waitingRoom: boolean,
allowGuests: boolean
}
Response:
{
success: true,
room: {
_id: 'stored_room_id',
name: 'team-standup',
displayName: 'Team Standup',
settings: { ... },
joinUrl: 'https://app.example.com/room/team-standup'
},
actionType: 'CREATE_ROOM'
}
create_schedule
Schedule a future meeting.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
title |
string |
Yes | - | Meeting title |
description |
string |
No | - | Meeting description |
scheduledStart |
string |
Yes | - | Start time (ISO 8601) |
scheduledEnd |
string |
Yes | - | End time (ISO 8601) |
attendees |
array |
No | [] | Attendee emails |
roomName |
string |
No | auto-generated | Room name |
sendInvites |
boolean |
No | true | Send email invitations |
recurring |
Object |
No | - | Recurrence settings |
Recurring Settings:
{
frequency: 'daily' | 'weekly' | 'monthly',
interval: number,
daysOfWeek: number[], // 0=Sunday
endDate: string,
count: number
}
Response:
{
success: true,
schedule: {
_id: 'schedule_id',
title: 'Project Review',
scheduledStart: '2026-01-15T14:00:00Z',
scheduledEnd: '2026-01-15T15:00:00Z',
roomName: 'project-review-abc123',
attendees: ['attendee@example.com'],
joinUrl: 'https://app.example.com/room/project-review-abc123'
},
actionType: 'SCHEDULE_CREATED'
}
cancel_schedule
Cancel a scheduled meeting.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
scheduleId |
string |
Yes | - | Schedule ID |
reason |
string |
No | - | Cancellation reason |
notifyAttendees |
boolean |
No | true | Send cancellation emails |
Response:
{
success: true,
schedule: {
_id: 'schedule_id',
title: 'Project Review',
status: 'cancelled',
cancelledAt: '2026-01-11T10:00:00Z',
cancelledBy: 'user@example.com',
reason: 'Rescheduling to next week'
},
actionType: 'SCHEDULE_CANCELLED'
}
send_invites
Send meeting invitations via email.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
scheduleId |
string |
Yes* | - | Schedule ID |
roomName |
string |
Yes* | - | Room name for instant invite |
recipients |
array |
Yes | - | Email addresses |
message |
string |
No | - | Custom message |
*Either scheduleId or roomName is required.
Response:
{
success: true,
invitesSent: 3,
recipients: ['user1@example.com', 'user2@example.com', 'user3@example.com'],
failedRecipients: [],
actionType: 'SEND_INVITES'
}
request_input
Request additional input from the user via form.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
fields |
array |
Yes | - | Form field definitions |
message |
string |
No | - | Message to user |
context |
Object |
No | - | Context for follow-up |
Field Definition:
{
name: string, // Field identifier
label: string, // Display label
type: 'text' | 'email' | 'date' | 'select' | 'multiselect',
required: boolean,
options: string[], // For select/multiselect
defaultValue: any
}
Response:
{
success: true,
message: 'Please provide the following information:',
fields: [
{ name: 'attendees', label: 'Attendees', type: 'multiselect' }
],
actionType: 'NEEDS_INFO'
}
Related Documentation
- Getting Started - Quick start guide
- Hosted Server Guide - Using the hosted MCP servers
- Authentication - OAuth 2.1, MCP tokens, and API keys
- HTTP Transport - Streamable HTTP and SSE endpoints
- Architecture - System design and data flows