Add a Todoist task

flurryport:todoist-adddeliveryv1first-partysha256:f152e5682ac5Needs: read/write agent token

Let your AI add Todoist tasks; the API token never enters the conversation.

Create a task in the Todoist Inbox via the REST API. The personal API token rides the Authorization header and is resolved server-side at delivery. No install-time parameters: tasks land in Inbox, and natural-language due dates ride the intent.

The credential never enters the model context: it lives in the FlurryPORT secret store, deliveries are signed server-side, and every send returns a receipt your agent can quote.

What this is

Your AI adds Todoist tasks with your API token held server-side. No install-time parameters at all: tasks land in your Inbox, and natural-language due dates like 'tomorrow 9am' ride straight through the intent.

Setup in two steps

  1. Todoist side. Settings, Integrations, Developer tab, copy the API token.
  2. FlurryPORT side. Your AI requests secret setup and FlurryPORT emails you a secure page. Paste the token and the pipe is live.

Credential custody

Stored encrypted, sent as a Bearer header at delivery, scrubbed from stored responses. The AI composes tasks; the token that creates them never enters the conversation.

What to expect

Two quirks worth knowing: the API's priority numbers run backwards from the app's labels (API 4 is the app's p1), and the old v2 endpoints are gone, answering 410. The pipe already targets the current API, so receipts carry the created task on success. Tasks go to Inbox on purpose; project routing is a future enrichment, not a fork.

Install with your agent

npx flurryport mcp

Point your agent at the FlurryPORT MCP server (npx flurryport mcp) and ask it for the flurryport:todoist-add recipe. Works from AI clients that can run a local process: desktop apps and terminal agents. Web-only chat clients cannot reach a local MCP server; open a desktop client instead.

Tools your agent gains

flry_todoist_add
Add a task to the Todoist Inbox. Input: content (required, task text), description (optional), dueString (optional natural language like 'tomorrow 9am'), priority (optional 1-4, 4 is urgent).

Setup walkthrough

  1. TODOIST_TOKEN: In Todoist: Settings, Integrations, Developer tab, copy the API token. Paste it into the FlurryPORT secret page. It is sent as a Bearer Authorization header.

Intent schema

{
  "type": "object",
  "required": [
    "content"
  ],
  "properties": {
    "content": {
      "type": "string",
      "maxLength": 500,
      "description": "The task text; Todoist markdown works here."
    },
    "description": {
      "type": "string",
      "description": "Optional task description. Sent as an empty string when omitted."
    },
    "dueString": {
      "type": "string",
      "description": "Optional natural-language due date like 'tomorrow 9am' or 'every friday'. Sent empty (no due date) when omitted."
    },
    "priority": {
      "type": "number",
      "description": "Optional 1 to 4 where 4 is URGENT - the API scale is the reverse of the p1-p4 labels in the app. Sent as 1 (normal) when omitted."
    }
  }
}

Transformation

{ "content": $body.content, "description": ($exists($body.description) ? $body.description : ""), "due_string": ($exists($body.dueString) ? $body.dueString : ""), "priority": ($exists($body.priority) ? $body.priority : 1) }

Delivery target

POST https://api.todoist.com/api/v1/tasks

Placeholders like $secrets.NAME resolve server-side at delivery, never in the agent.

Gotchas

Where this fits

Related recipes

flurryport:azure-devops-managedelivery

Create and update Azure DevOps work items in one batched pipe: priority, state, tags, and sprint included.

flurryport:azure-devops-querydelivery

Query Azure DevOps work items with WIQL and read the matching ids back, without your AI ever holding the PAT.

flurryport:azure-devops-readdelivery

Read fields for a batch of Azure DevOps work items by id: title, state, tags, priority, iteration.

flurryport:azure-devops-workitemdelivery

Let your AI file Azure DevOps work items (bugs, tasks) the model never holds credentials for.

flurryport:github-create-issuedelivery

Let your AI file GitHub issues with a fine-grained PAT it never touches.

flurryport:jira-create-issuedelivery

Let your AI file Jira Cloud issues with an API token it never touches.