Integrations
Crow connects to 20+ external services through MCP servers. The five built-in servers (Memory, Projects, Sharing, Storage, and Blog) work out of the box. External integrations need API keys added to your environment.
Built-in Servers
These are always available — no API keys needed:
| Server | Tools | Description |
|---|---|---|
| crow-memory | 12 tools | Persistent memory (7 tools) + cross-platform context management (5 tools) |
| crow-projects | 12 tools | Project pipeline: projects, sources, notes, citations, bibliography, data backends |
| crow-sharing | 8 tools | P2P sharing: invite codes, contacts, encrypted sharing, Nostr messaging, inbox |
| crow-storage | 5 tools | S3-compatible file storage: upload, list, download (presigned URLs), delete, stats |
| crow-blog | 12 tools | Blogging platform: posts, publishing, themes, RSS/Atom feeds, export to Hugo/Jekyll |
Keeping Your Keys Safe
Each API key only grants access to that one service — a leaked GitHub key can't access your Gmail, for example. But you should still treat every key with care:
- Only add keys for services you actually use — fewer keys means less to manage and less risk
- Never share keys in screenshots, messages, or public repositories
- If a key leaks, revoke it immediately at the service's website and create a new one
For a complete, beginner-friendly security guide, see SECURITY.md.
External Integrations
Add API keys to enable these. For cloud deployments, add keys in your Render dashboard under Environment.
| Integration | Env Variables | Description | Get API Key |
|---|---|---|---|
| GitHub | GITHUB_PERSONAL_ACCESS_TOKEN | Repos, issues, PRs, code search | GitHub Settings |
| Brave Search | BRAVE_API_KEY | Web search, local search | Brave API |
| Slack | SLACK_BOT_TOKEN | Messages, channels, threads | Slack Apps |
| Notion | NOTION_TOKEN | Pages, databases, comments | Notion Integrations |
| Trello | TRELLO_API_KEY, TRELLO_TOKEN | Boards, cards, lists | Trello Power-Ups |
| Discord | DISCORD_BOT_TOKEN | Servers, channels, messages | Discord Developer Portal |
| Google Workspace | GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | Gmail, Calendar, Drive, Docs, Sheets, Slides, Chat | Google Cloud Console |
| Canvas LMS | CANVAS_API_TOKEN, CANVAS_BASE_URL | Courses, assignments, grades | Canvas account settings |
| Microsoft Teams | TEAMS_CLIENT_ID, TEAMS_CLIENT_SECRET, TEAMS_TENANT_ID | Messages, channels, teams | Azure Portal |
| Zotero | ZOTERO_API_KEY, ZOTERO_USER_ID | Citations, library management | Zotero Settings |
| arXiv | (none) | Academic paper search, full text | Works out of the box |
| Obsidian | OBSIDIAN_VAULT_PATH | Vault search, note sync | Local path to vault |
| Home Assistant | HA_URL, HA_TOKEN | Smart home device control | HA Long-Lived Tokens |
| Render | RENDER_API_KEY | Deployment management | Render API Keys |
Setup Guides
Detailed step-by-step setup instructions for each integration:
- GitHub — Personal access tokens, required scopes
- Brave Search — Free API key signup
- Slack — Bot token, OAuth scopes, workspace installation
- Notion — Internal integration setup, page sharing
- Trello — Power-Up API key and token
- Discord — Bot token, message content intent
- Google Workspace — OAuth credentials, API enablement
- Canvas LMS — Access token, institution URL
- Microsoft Teams — Azure AD app registration
- Zotero — API key and user ID
- Home Assistant — Long-lived access token
- Obsidian — Vault path configuration
- Render — API key for deployment management
Self-Hosting Add-ons (Bundles)
These are installable add-ons with Docker Compose configurations. Install with crow bundle install <id> or ask your AI.
| Add-on | Type | Description |
|---|---|---|
| Obsidian | MCP Server | Vault search, note sync, and knowledge base integration |
| Home Assistant | MCP Server | Smart home device control with safety checkpoints |
| Ollama | Bundle (Docker) | Local AI models for embeddings, summarization, classification |
| Nextcloud | Bundle (Docker) | File sync via WebDAV mount (v1: files only) |
| Immich | Bundle (Docker + custom MCP) | Photo library search, album management |
How Integration Proxy Works
When deployed via the gateway, external integrations are available through the /tools/mcp endpoint. The gateway:
- Reads which API keys are set in the environment
- Spawns only the configured MCP servers as child processes
- Aggregates all their tools into a single
/tools/mcpendpoint - Prefixes tool names to avoid conflicts
This means you add one MCP connection from your AI client (the /tools/mcp URL) and get access to all configured external services.
Adding a New Integration
See the Architecture > Gateway page for details on how the proxy system works and how to add new integrations.