Notion and Trello productivity integrations¶
Keprix connects to Notion and Trello through three complementary paths. Pick the path that matches your goal: live edits in chat, search over indexed Notion content, or lightweight API calls without installing MCP.
Overview: three paths¶
| Path | Notion | Trello | Best for |
|---|---|---|---|
| MCP (live) | OAuth hosted MCP or token stdio server | Community stdio MCP | Create, update, and query pages/cards during chat |
| RAG (search) | Notion source connector | Not supported | Agent searches a pre-indexed Notion corpus |
| Skills (lightweight) | notion skill (ntn or curl) | trello skill (curl) | One-off API calls when MCP is not installed |
Routing guidance for the agent lives in the productivity-integrations skill. Operator UI entry points:
| Surface | Route |
|---|---|
| MCP admin | /admin/mcp |
| RAG pipeline builder | /rag-pipeline (Notion: ?source=notion) |
| Skills hub | /skills |
| Vault | /vault |
| Settings hub | /settings |
Related docs: MCP, RAG pipelines, Skills, Vault.
Quick start: Notion live (MCP OAuth)¶
Recommended for interactive chat where the agent reads and writes Notion pages and databases.
- Open Settings → MCP servers (
/admin/mcp). - Open the Browse catalog tab.
- Find Notion and click Add.
- On My servers, click Connect next to the
notionserver (or runkeprix mcp login notionfrom the CLI). - Complete OAuth in the browser; return to the MCP page and confirm status Connected.
- Click List tools to verify
mcp_notion_*tools are available. - Start a new chat and try:
- "Search my Notion workspace for pages about onboarding."
- "Create a new page titled Weekly standup under page
{parent_page_id}."
Catalog key: notion
Transport: HTTP → https://mcp.notion.com/mcp
Auto-spawn: off (credentials/OAuth required before use).
Quick start: Notion headless (API token)¶
For automation, CI, or servers without a browser for OAuth.
- Create an integration at notion.so/my-integrations.
- Copy the integration token (
secret_...orntn_...). - In Notion, open each target page or database → ... → Connect to → your integration name.
Without this step the API returns 404 even when the page exists. - At
/admin/mcp→ Browse catalog → add Notion (API token) (notion-token). - Enter
NOTION_TOKENin the credential dialog, or pick a Vault key (see Vault). - Enable the server and List tools (
mcp_notion_token_*prefix).
Alternative without MCP: set NOTION_TOKEN or NOTION_API_KEY in .env and use the notion skill via the terminal tool.
Quick start: Trello¶
- Open trello.com/power-ups/admin.
- Create or open a Power-Up and copy the API key.
- Generate a token with the scopes you need (read/write boards and cards).
- Add to
${KEPRIX_HOME:-~/.keprix}/.env:TRELLO_API_KEY=your_key TRELLO_TOKEN=your_token - At
/admin/mcp→ Browse catalog → add Trello (trello). - Confirm credentials (or map Vault keys on catalog add).
- List tools and verify
mcp_trello_*tools. - In chat: "List my Trello boards" or "Show open cards on board
{board_id}."
Catalog key: trello
Package: @delorenj/mcp-server-trello (stdio via npx).
Search Notion with RAG¶
Use RAG when the agent should search indexed Notion content without calling live Notion MCP on every question. Trello is not indexed by RAG; use MCP or the trello skill instead.
1. Set a token¶
KEPRIX_NOTION_TOKEN=secret_your_integration_token
Same integration token as headless Notion; share pages with the integration first.
2. Index content¶
UI: open /rag-pipeline?source=notion. Select Notion as source type, set pipeline ID and store kind, optionally paste page or database IDs, then Ingest from Notion.
API:
curl -s -X POST http://127.0.0.1:3333/api/rag-pipeline/ingest/notion \
-H "Content-Type: application/json" \
-d '{
"pipeline_id": "production-default",
"page_ids": ["your-page-id"],
"store_kind": "memory"
}'
From /admin/mcp, connected Notion servers show Index for search linking to the RAG builder.
3. Query indexed content¶
curl -s -X POST http://127.0.0.1:3333/api/rag-pipeline/query \
-H "Content-Type: application/json" \
-d '{
"pipeline_id": "production-default",
"question": "What does the handbook say about HVAC maintenance?",
"source_types": ["notion"]
}'
See RAG pipelines for connector details and GET /api/rag-pipeline/connectors.
Skills fallback¶
When MCP is not configured, load bundled skills:
| Skill | Purpose |
|---|---|
notion | Notion API via ntn CLI or curl |
trello | Trello REST via curl |
productivity-integrations | Decision tree: MCP vs RAG vs skills |
List installed skills:
keprix skills list
Toggle skills globally or per platform:
keprix skills config
Bundled productivity skills are enabled by default. Opt out in ~/.keprix/config.yaml:
skills:
disabled:
- trello
The MCP admin page Also available without MCP box links to /skills and /rag-pipeline?source=notion.
Vault¶
Store integration tokens encrypted instead of plain .env values.
- Open
/vaultand save secrets (e.g.notion_api_token,TRELLO_TOKEN). - When adding Trello or notion-token from the catalog, map env var names to Vault keys in the credential dialog.
- RAG ingest resolves
KEPRIX_NOTION_TOKEN,NOTION_TOKEN, or Vault-backed values when configured.
See Vault for backup and key rotation.
Auto-spawn¶
Notion and Trello catalog entries set auto_spawnable: false. The agent will not spawn these servers automatically during tasks; you must add them from /admin/mcp and supply OAuth or API credentials first.
The Auto-spawn toggle on /admin/mcp controls the global catalog auto-spawn feature (KEPRIX_AUTO_MCP_SPAWN). It does not bypass per-entry auto_spawnable: false for Notion/Trello.
Environment variables¶
| Variable | Used by |
|---|---|
KEPRIX_NOTION_TOKEN | RAG Notion ingest (/api/rag-pipeline/ingest/notion) |
NOTION_TOKEN | notion-token MCP, notion skill |
NOTION_API_KEY | notion skill (alias for integration token) |
TRELLO_API_KEY | Trello MCP, trello skill |
TRELLO_TOKEN | Trello MCP, trello skill |
NEXT_PUBLIC_MCP_API_URL | Frontend MCP admin API base (defaults to main API URL) |
KEPRIX_AUTO_MCP_SPAWN | Agent auto-spawn for spawnable catalog entries only |
KEPRIX_MCP_ALLOWED_SERVERS | Optional allow list for MCP server names |
Frontend: see frontend/.env.example for NEXT_PUBLIC_MCP_API_URL when the dashboard runs on a different port than the main API.
Troubleshooting¶
| Symptom | Likely cause | Fix |
|---|---|---|
| Notion OAuth Connect fails or loops | Callback URL or session mismatch | Retry keprix mcp login notion; confirm API reachable at NEXT_PUBLIC_API_URL |
| Notion API 404 on a known page | Integration not connected to page | In Notion UI: page menu → Connect to → your integration |
| Notion RAG ingest finds no pages | Empty workspace search or wrong IDs | Pass explicit page_ids / database_ids; confirm KEPRIX_NOTION_TOKEN |
| Trello 401 | Invalid key/token pair | Regenerate token at Power-Up admin; update .env or Vault |
| Trello MCP needs_credentials | Env vars missing at server start | Set TRELLO_API_KEY and TRELLO_TOKEN; restart gateway or re-add from catalog |
| MCP admin empty / wrong catalog | Frontend pointing at wrong API port | Set NEXT_PUBLIC_MCP_API_URL to main API (e.g. http://localhost:3333) |
mcp_notion_* tools missing | Server disabled or OAuth not finished | Enable server; complete Connect; run List tools |
| Agent uses curl instead of MCP | MCP not connected or skill loaded first | Add MCP server; load productivity-integrations skill for routing |
Example playbook¶
Multi-step Trello → Notion summary workflow:
examples/productivity/notion-trello-sync/
See playbook.yaml and README.md in that directory.
Verification¶
Automated smoke: tests/evals/test_productivity_integrations.py and tests/integrations/test_productivity_notion_trello_pack.py.
Eval suite: evals/suites/productivity/notion-trello.yaml.