kriyan

Plan with your AI over MCP

Kriyan runs a hosted MCP server. Connect it once and your assistant can read your day and week, capture tasks, and propose plans you accept in the app.

MCP server address
https://kriyan.app/mcp

It speaks streamable HTTP, protocol 2026-07-28, and the 2025 versions older clients use. There is nothing to install.

Connect

Claude and ChatGPT

Add a custom connector with the address above. When asked, sign in to Kriyan and allow access. The connector acts as you and only ever sees your own plan.

Claude Code

Terminal
claude mcp add --transport http --scope user kriyan https://kriyan.app/mcp

Then run /mcp in Claude Code and choose Kriyan to sign in.

Cursor

Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in one project.

mcp.json
{
  "mcpServers": {
    "kriyan": {
      "url": "https://kriyan.app/mcp"
    }
  }
}

VS Code

Add this to .vscode/mcp.json.

.vscode/mcp.json
{
  "servers": {
    "kriyan": {
      "type": "http",
      "url": "https://kriyan.app/mcp"
    }
  }
}

Use a personal access token

Clients that can't sign in, and your own scripts, can send a token instead. Create one in Kriyan under Settings, name it after where you'll use it, and send it as a bearer token. You can revoke it there at any time.

mcp.json with a token
{
  "mcpServers": {
    "kriyan": {
      "url": "https://kriyan.app/mcp",
      "headers": {
        "Authorization": "Bearer kriyan_..."
      }
    }
  }
}
Claude Code with a token
claude mcp add --transport http --scope user kriyan https://kriyan.app/mcp --header "Authorization: Bearer kriyan_..."

Keep tokens out of shared files and repositories: anyone with a token can read and change your plan.

How agents plan with you

Tools

One tool for each operation of the agent API. Read tools are marked read-only, so clients can run them without asking.

ToolWhat it does
get_todayRead the person's plan for a day (today by default): scheduled blocks, anytime tasks, done tasks, tasks left from earlier days, and habits. Read this before planning. Read-only.
get_weekRead seven days starting on a date (Monday of this week by default): each day's blocks, deadlines and planned hours against capacity, plus the inbox and unscheduled tasks. Read-only.
get_inboxRead tasks captured without a date or a space. Read-only.
get_spaceRead one space: its next and later tasks, child spaces, goals, note and stats. Read-only.
list_spacesList every space as a tree, with ids, colours and paths like 'Work / Kriyan'. Read-only.
get_progressRead time done this week and this year, time by space, goals against pace and habits. Read-only.
add_taskAdd a task. Either pass `text` as one sentence the way a person types it ('essay fri 5pm #school every week remind 1h before') or pass the fields. Only the title is required. Never invent a length.
update_taskChange fields of a task. Pass null to clear a field. Changing the date of a repeating task moves the whole series.
complete_taskTick a task off. A repeating task moves to its next date.
reopen_taskMark a finished task as not done.
delete_taskDelete a task. The person can restore it from the app.
move_tasksMove tasks to a date, optionally at a time. Pass date null to unschedule.
add_spaceAdd a space, optionally inside another one. Colour defaults to the parent's.
update_spaceRename a space, change its colour or parent, or replace its Markdown note.
add_habitAdd a habit with a weekly target (1 to 7 times a week).
check_habitMark a habit done or not done on a day (today by default).
add_goalAdd a goal: a number to reach (kind 'number', e.g. 100 km) or a count of linked tasks to finish (kind 'tasks').
update_goalUpdate a goal's progress (`current`), target, unit or due date.
propose_planPropose new time blocks. They appear in the app as proposals the person accepts or discards, so use this for plans rather than add_task. Each block is a new task with a date, a time and a length.

Things to ask

If it doesn't connect