check_function_availability
Verify which MCP functions you can use based on your Fastmail account permissions to ensure compatibility before performing email, contact, or calendar operations.
Instructions
Check which MCP functions are available based on account permissions
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:1131-1192 (handler)Handler for check_function_availability tool. Checks JMAP session capabilities to determine availability of contacts and calendar functions, returns structured availability info for all tools.case 'check_function_availability': { const client = initializeClient(); const session = await client.getSession(); const availability = { email: { available: true, functions: [ 'list_mailboxes', 'list_emails', 'get_email', 'send_email', 'search_emails', 'get_recent_emails', 'mark_email_read', 'delete_email', 'move_email', 'get_email_attachments', 'download_attachment', 'advanced_search', 'get_thread', 'get_mailbox_stats', 'get_account_summary', 'bulk_mark_read', 'bulk_move', 'bulk_delete' ] }, identity: { available: true, functions: ['list_identities'] }, contacts: { available: !!session.capabilities['urn:ietf:params:jmap:contacts'], functions: ['list_contacts', 'get_contact', 'search_contacts'], note: session.capabilities['urn:ietf:params:jmap:contacts'] ? 'Contacts are available' : 'Contacts access not available - may require enabling in Fastmail account settings', enablementGuide: session.capabilities['urn:ietf:params:jmap:contacts'] ? null : { steps: [ '1. Log into Fastmail web interface', '2. Go to Settings → Privacy & Security → Connected Apps & API tokens', '3. Check if contacts scope is enabled for your API token', '4. If not available, you may need to upgrade your Fastmail plan or contact support' ], documentation: 'https://www.fastmail.com/help/technical/jmap-api.html' } }, calendar: { available: !!session.capabilities['urn:ietf:params:jmap:calendars'], functions: ['list_calendars', 'list_calendar_events', 'get_calendar_event', 'create_calendar_event'], note: session.capabilities['urn:ietf:params:jmap:calendars'] ? 'Calendar is available' : 'Calendar access not available - may require enabling in Fastmail account settings', enablementGuide: session.capabilities['urn:ietf:params:jmap:calendars'] ? null : { steps: [ '1. Log into Fastmail web interface', '2. Go to Settings → Privacy & Security → Connected Apps & API tokens', '3. Check if calendar scope is enabled for your API token', '4. If not available, you may need to upgrade your Fastmail plan or contact support' ], documentation: 'https://www.fastmail.com/help/technical/jmap-api.html' } }, capabilities: Object.keys(session.capabilities) }; return { content: [ { type: 'text', text: JSON.stringify(availability, null, 2), }, ], }; }
- src/index.ts:623-630 (registration)Tool registration in ListTools response, including name, description, and input schema.{ name: 'check_function_availability', description: 'Check which MCP functions are available based on account permissions', inputSchema: { type: 'object', properties: {}, }, },
- src/index.ts:626-629 (schema)Input schema for check_function_availability tool (empty object, no parameters required).inputSchema: { type: 'object', properties: {}, },