{
  "name": "TellDone user MCP tools",
  "updated": "2026-10-05",
  "total": 27,
  "read": 10,
  "write": 17,
  "plans": "Pro and Ultra, both read and write. Free and Basic have no MCP access.",
  "notes": [
    "Every tool response is a JSON string in content[0].text. On failure it is {\"error\": \"...\"}.",
    "Timestamps are ISO 8601 strings; dates are YYYY-MM-DD strings.",
    "Write tools return a minimal record (id, title, status). Call a get_* tool afterwards for full fields.",
    "A string of one space clears an optional text field on update_* tools.",
    "scope applies to OAuth connections only; bearer-token connections are governed by plan and read/write mode."
  ],
  "docs": "https://docs.telldone.app/integrations/mcp-access",
  "connect": "https://telldone.ai/mcp/connect.json",
  "tools": [
    {
      "name": "get_profile",
      "access": "read",
      "description": "Account info, plan, effective MCP mode, locale, timezone, and counts of notes, tasks and events.",
      "params": {},
      "scope": "profile:read"
    },
    {
      "name": "get_notes",
      "access": "read",
      "description": "List notes, newest first, with filters.",
      "params": {
        "limit": "int, default 20, max 50",
        "offset": "int, max 10000",
        "tags": "comma-separated, matches any",
        "search": "text match on title and summary",
        "date_from": "YYYY-MM-DD, inclusive",
        "date_to": "YYYY-MM-DD, exclusive"
      },
      "scope": "notes:read"
    },
    {
      "name": "get_note",
      "access": "read",
      "description": "One note with its linked tasks, events and full transcript.",
      "params": {
        "note_id": "UUID, required"
      },
      "scope": "notes:read"
    },
    {
      "name": "get_notes_full",
      "access": "read",
      "description": "Several notes with embedded tasks and events in one call.",
      "params": {
        "limit": "int, default 20, max 20",
        "offset": "int",
        "tags": "comma-separated",
        "search": "text",
        "date_from": "YYYY-MM-DD",
        "date_to": "YYYY-MM-DD"
      },
      "scope": "notes:read"
    },
    {
      "name": "get_tasks",
      "access": "read",
      "description": "List tasks.",
      "params": {
        "status": "todo (default) | done | all",
        "limit": "int, default 30, max 100",
        "offset": "int",
        "tags": "comma-separated",
        "date_from": "YYYY-MM-DD",
        "date_to": "YYYY-MM-DD, inclusive"
      },
      "scope": "tasks:read"
    },
    {
      "name": "get_events",
      "access": "read",
      "description": "List calendar events by date range.",
      "params": {
        "limit": "int, default 30, max 100",
        "offset": "int",
        "date_from": "YYYY-MM-DD",
        "date_to": "YYYY-MM-DD, inclusive"
      },
      "scope": "events:read"
    },
    {
      "name": "get_change_log",
      "access": "read",
      "description": "Edit history of a note, task or event, newest first, with whether each edit was undone.",
      "params": {
        "entity": "notes | tasks | events",
        "entity_id": "UUID",
        "include_manual": "bool, default false; true also returns the user's own edits"
      },
      "scope": "{entity}:read"
    },
    {
      "name": "get_reports",
      "access": "read",
      "description": "Generated daily, weekly, monthly or yearly reports as markdown.",
      "params": {
        "report_type": "daily (default) | weekly | monthly | yearly",
        "limit": "int, default 5, max 10"
      },
      "scope": "reports:read"
    },
    {
      "name": "get_tags",
      "access": "read",
      "description": "The user's tags, pinned first, then by usage. Up to 100.",
      "params": {},
      "scope": "tags:read"
    },
    {
      "name": "search",
      "access": "read",
      "description": "Search notes, tasks and events. Notes also get semantic (by meaning) matching.",
      "params": {
        "query": "string, required, max 500 chars",
        "limit": "int, default 20, max 20 per type",
        "semantic": "bool, default true"
      },
      "scope": "notes:read, tasks:read, events:read"
    },
    {
      "name": "process_note",
      "access": "write",
      "description": "Run text or audio through the full TellDone pipeline (transcription, structuring). Asynchronous: returns an audio_id with status processing; poll get_notes for the result. Counts against plan quotas.",
      "params": {
        "text": "transcript text (skips transcription)",
        "audio_base64": "base64 audio, max 50 MB decoded",
        "audio_format": "m4a (default) | ogg | wav | mp3 | aac | webm",
        "parent_note_id": "UUID, optional follow-up target",
        "parent_task_id": "UUID, optional follow-up target",
        "parent_event_id": "UUID, optional follow-up target"
      },
      "scope": "notes:write"
    },
    {
      "name": "create_note",
      "access": "write",
      "description": "Create a plain text note instantly, with no AI analysis.",
      "params": {
        "title": "required, max 200 chars",
        "summary": "max 1000 chars",
        "transcript": "long-form body, limit depends on plan",
        "type": "task | idea | info (default) | status | meeting | event | reflection",
        "tags": "comma-separated, max 20"
      },
      "scope": "notes:write"
    },
    {
      "name": "create_task",
      "access": "write",
      "description": "Create a task.",
      "params": {
        "title": "required, max 200 chars",
        "description": "max 2000 chars",
        "priority": "low | medium (default) | high",
        "deadline": "YYYY-MM-DD",
        "tags": "comma-separated",
        "reminder_at": "ISO 8601 datetime",
        "note_id": "UUID of a parent note"
      },
      "scope": "tasks:write"
    },
    {
      "name": "create_event",
      "access": "write",
      "description": "Create a calendar event.",
      "params": {
        "title": "required",
        "start_at": "ISO 8601, required",
        "end_at": "ISO 8601, default start plus 1 hour",
        "description": "max 2000 chars",
        "location": "max 200 chars",
        "is_all_day": "bool",
        "tags": "comma-separated",
        "reminder_minutes": "comma-separated ints, e.g. 15,60",
        "attendees": "comma-separated",
        "recurrence_rule": "RRULE string",
        "note_id": "UUID of a parent note"
      },
      "scope": "events:write"
    },
    {
      "name": "update_note",
      "access": "write",
      "description": "Update note fields. Only fields you pass change.",
      "params": {
        "note_id": "UUID, required",
        "tags": "replaces all tags",
        "priority": "low | medium | high",
        "status": "active | archived"
      },
      "scope": "notes:write"
    },
    {
      "name": "update_task",
      "access": "write",
      "description": "Update task fields. Only fields you pass change.",
      "params": {
        "task_id": "UUID, required",
        "priority": "low | medium | high",
        "deadline": "YYYY-MM-DD",
        "status": "todo | done",
        "tags": "replaces all tags",
        "reminder_at": "ISO 8601; replaces the reminder set"
      },
      "scope": "tasks:write"
    },
    {
      "name": "complete_task",
      "access": "write",
      "description": "Mark a task as done.",
      "params": {
        "task_id": "UUID, required"
      },
      "scope": "tasks:write"
    },
    {
      "name": "update_event",
      "access": "write",
      "description": "Update event fields. Only fields you pass change.",
      "params": {
        "event_id": "UUID, required",
        "start_at": "ISO 8601",
        "end_at": "ISO 8601",
        "status": "confirmed | tentative | cancelled",
        "is_all_day": "\"true\" | \"false\"",
        "reminder_minutes": "comma-separated ints",
        "attendees": "comma-separated",
        "recurrence_rule": "RRULE string"
      },
      "scope": "events:write"
    },
    {
      "name": "delete_note",
      "access": "write",
      "description": "Soft-delete a note and its linked tasks and events. Reversible with restore_entity.",
      "params": {
        "note_id": "UUID, required"
      },
      "scope": "notes:write"
    },
    {
      "name": "delete_task",
      "access": "write",
      "description": "Soft-delete a task. Reversible with restore_entity.",
      "params": {
        "task_id": "UUID, required"
      },
      "scope": "tasks:write"
    },
    {
      "name": "delete_event",
      "access": "write",
      "description": "Soft-delete an event. Reversible with restore_entity.",
      "params": {
        "event_id": "UUID, required"
      },
      "scope": "events:write"
    },
    {
      "name": "undo_change_log_entry",
      "access": "write",
      "description": "Undo one tracked edit (AI-made or manual), restoring the field's earlier value.",
      "params": {
        "entity": "notes | tasks | events",
        "entity_id": "UUID",
        "entry_id": "UUID from get_change_log"
      },
      "scope": "{entity}:write"
    },
    {
      "name": "restore_entity",
      "access": "write",
      "description": "Restore a deleted or archived note, task or event.",
      "params": {
        "entity": "notes | tasks | events",
        "entity_id": "UUID"
      },
      "scope": "{entity}:write"
    },
    {
      "name": "create_tag",
      "access": "write",
      "description": "Create a manual tag, or turn an auto-tag into a manual one.",
      "params": {
        "tag": "1 to 50 chars, lowercased",
        "category": "optional"
      },
      "scope": "tags:write"
    },
    {
      "name": "set_tag_pinned",
      "access": "write",
      "description": "Pin or unpin a tag.",
      "params": {
        "tag": "name",
        "pinned": "bool"
      },
      "scope": "tags:write"
    },
    {
      "name": "delete_tag",
      "access": "write",
      "description": "Soft-delete a tag. Reversible with restore_tag.",
      "params": {
        "tag": "name"
      },
      "scope": "tags:write"
    },
    {
      "name": "restore_tag",
      "access": "write",
      "description": "Restore a deleted tag.",
      "params": {
        "tag": "name"
      },
      "scope": "tags:write"
    }
  ]
}