Resolve pnpm-lock.yaml conflict from the clawdbot→moltbot rename. Update nylas extension references (package name, config key, CLI output, README) and add missing devDependencies to memory-core so pnpm resolves the workspace root correctly.
5.1 KiB
5.1 KiB
Nylas Plugin for Moltbot
Email, calendar, and contacts integration via Nylas API v3.
Built on the official Nylas Node SDK.
Quick Start
- Get API Key - Sign up at https://dashboard.nylas.com and create an API key
- Add API key to config:
plugins: entries: nylas: config: apiKey: "nyk_v0_your_key_here" - Auto-discover grants:
This will connect to Nylas, discover all authenticated accounts, and show the recommended configuration.moltbot nylas status
Prerequisites
Before using this plugin, you need to set up a Nylas account:
- Create Nylas Account - Sign up at https://dashboard.nylas.com
- Create Application - All apps → Create new app → Choose region (US/EU)
- Get API Key - API Keys section → Create new key
- Add Grants - Grants section → Add Account → Authenticate email accounts
- Grant IDs are auto-discovered - The plugin will automatically find your authenticated accounts
Configuration
Add the following to your moltbot.yaml:
plugins:
entries:
nylas:
enabled: true
config:
apiKey: "nyk_v0_..." # Required: API key from Nylas dashboard
apiUri: "https://api.us.nylas.com" # Optional: US or EU region
defaultTimezone: "America/New_York" # Optional: Default timezone for dates
defaultGrantId: "grant-id-here" # Primary account's grant ID
grants: # Optional: Named grants for multi-account
work: "grant-id-for-work-email"
personal: "grant-id-for-personal"
CLI Commands
# Check API connection and auto-discover grants (recommended first step)
moltbot nylas status
# Discover all authenticated accounts and show config snippet
moltbot nylas discover
moltbot nylas discover --json # Output as JSON
# Test API with specific grant (auto-discovers if not configured)
moltbot nylas test
moltbot nylas test --grant work
# List configured and available grants
moltbot nylas grants
moltbot nylas grants --configured # Only show configured grants
Available Tools
Account Discovery
| Tool | Description |
|---|---|
nylas_discover_grants |
Discover all authenticated email accounts (grants) available via this API key |
Email Tools
| Tool | Description |
|---|---|
nylas_list_emails |
List/search emails with filters (folder, from, subject, date, unread, starred) |
nylas_get_email |
Get full email content by ID |
nylas_send_email |
Send email (to, cc, bcc, subject, body) |
nylas_create_draft |
Create email draft |
nylas_list_threads |
List email threads (conversations) |
nylas_list_folders |
List email folders (INBOX, SENT, etc.) |
Calendar Tools
| Tool | Description |
|---|---|
nylas_list_calendars |
List available calendars |
nylas_list_events |
List/search events with date range |
nylas_get_event |
Get event details |
nylas_create_event |
Create event with attendees, location |
nylas_update_event |
Update existing event |
nylas_delete_event |
Delete event |
nylas_check_availability |
Check availability for participants |
Contact Tools
| Tool | Description |
|---|---|
nylas_list_contacts |
List/search contacts |
nylas_get_contact |
Get contact details |
Multi-Account Support
Use the optional grant parameter on any tool to specify which account to use:
// Use the default grant
nylas_list_emails({ folder: "INBOX" })
// Use a named grant
nylas_list_emails({ grant: "work", folder: "INBOX" })
// Use a raw grant ID
nylas_list_emails({ grant: "abc123-grant-id", folder: "INBOX" })
Example Usage
List recent unread emails:
nylas_list_emails({ unread: true, limit: 10 })
Send an email:
nylas_send_email({
to: "recipient@example.com",
subject: "Hello",
body: "<p>This is the email body.</p>"
})
Create a calendar event:
nylas_create_event({
calendar_id: "primary",
title: "Team Meeting",
start: "2024-03-20T14:00:00-05:00",
end: "2024-03-20T15:00:00-05:00",
participants: "alice@example.com, bob@example.com",
location: "Conference Room A"
})
Check availability:
nylas_check_availability({
emails: "alice@example.com, bob@example.com",
start: "2024-03-20T09:00:00-05:00",
end: "2024-03-20T17:00:00-05:00",
duration_minutes: 30
})
Troubleshooting
"apiKey is required"
- Add your Nylas API key to the plugin configuration
"No grant ID provided"
- Set
defaultGrantIdor passgrantparameter to tools
401 Unauthorized
- Check that your API key is valid and not expired
- Verify the grant ID exists in your Nylas dashboard
404 Not Found
- Ensure the resource (message, event, contact) ID is correct
- Check that you're using the right grant for that resource
Support
For Nylas API issues, contact: