# Taskaid MCP Server

Taskaid MCP Server lets AI assistants that support the Model Context Protocol (MCP), such as ChatGPT and Claude, read and change your tasks, lists and daily plans. Taskaid hosts it and signs clients in with OAuth 2.1, so there's no API key: you approve the access each one gets.

## What you can do

Once connected and authorized, your client can, on your behalf and within the scopes you approve:

- **Tasks & lists** — view your active tasks, create and update tasks, and organize them into lists.
- **Daily plan** — read and write the plan that appears at the top of your Taskaid home.
- **Events** — hear about new tasks and reminders as they happen, in clients that support them.

## Connect

ChatGPT installs Taskaid from its plugin directory — no URL to enter — and Codex can use the same plugin. Every other client adds the remote server by its URL, `https://taskaid.ai/mcp`. Every client below connects to a remote server directly; the `mcp-remote` bridge under "Any other client" is only for a client that can't.

### ChatGPT

Taskaid is published in the **ChatGPT plugin directory** — install it in a couple of clicks, no URL needed. See the dedicated [ChatGPT guide](/integrations/chatgpt) for the full walkthrough.

### Claude (web, desktop & Claude Code)

At [claude.ai/customize/connectors](https://claude.ai/customize/connectors), add a custom connector with the endpoint:

```text
https://taskaid.ai/mcp
```

In Claude Code, `claude mcp add --scope user --transport http taskaid https://taskaid.ai/mcp`, then `claude mcp login taskaid` to sign in. Custom connectors work on every Claude plan, including Free. See the dedicated [Claude](/integrations/claude) and [Claude Code](/integrations/claude-code) guides for the full walkthroughs.

### Cursor

[Add Taskaid to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=Taskaid&config=eyJ1cmwiOiJodHRwczovL3Rhc2thaWQuYWkvbWNwIn0=)

Or add this to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "Taskaid": {
      "url": "https://taskaid.ai/mcp"
    }
  }
}
```

Sign in when Cursor prompts you; there is no command to run. See the dedicated [Cursor guide](/integrations/cursor) for the full walkthrough.

### Manus

In Manus, open **Settings → Connectors** and use the **Create** menu. Either route works; the first has fewer fields.

**Add MCP by URL** — enter a **Server name** of `Taskaid` and a **Server URL** of `https://taskaid.ai/mcp`, then select **Save**. Leave **Advanced settings** alone.

**Custom MCP** — the fuller form, worth it if you want an icon or a note on the connector. Same name and URL, with **Transport Type** set to **HTTP** and **Custom headers** left empty.

Either way there is nothing to paste for authentication: Taskaid uses OAuth, so there is no API key or bearer token — you sign in and approve the access instead. See the dedicated [Manus guide](/integrations/manus) for the full walkthrough.

### Grok

At [grok.com/connectors](https://grok.com/connectors), select **New Connector**, then **Custom**. Enter a **Name** of `Taskaid` and a **Server URL** of `https://taskaid.ai/mcp`, select **Add Connector**, and sign in when the window opens. See the dedicated [Grok guide](/integrations/grok) for the full walkthrough.

### Codex

Codex shares ChatGPT's plugin directory, so if Taskaid is installed in ChatGPT, Codex has it too. To add the server instead, which the IDE extension needs, run:

```bash
codex mcp add taskaid --url https://taskaid.ai/mcp
```

Codex opens the sign-in straight away. See the dedicated [Codex guide](/integrations/codex) for the full walkthrough.

### Hermes Agent

Add the server to `~/.hermes/config.yaml`, then run `hermes mcp login taskaid` to sign in:

```yaml
mcp_servers:
  taskaid:
    url: "https://taskaid.ai/mcp"
    auth: oauth
```

See the dedicated [Hermes Agent guide](/integrations/hermes) for the full walkthrough.

### Gemini CLI

Install the Taskaid extension, then run `/mcp auth taskaid` in a session to sign in:

```bash
gemini extensions install https://github.com/satriahq/taskaid-plugins
```

See the dedicated [Gemini CLI guide](/integrations/gemini) for the full walkthrough.

### Notion

In Notion, open **Settings → Connections**, select **Add connection → Custom MCP connection**, enter `https://taskaid.ai/mcp`, and sign in when Notion asks. Your workspace has to allow custom MCP servers. See the dedicated [Notion guide](/integrations/notion) for the full walkthrough.

### Any other client

Any MCP-capable client connects to `https://taskaid.ai/mcp`. Only if yours can't reach a remote server by URL, run the `mcp-remote` compatibility bridge as a local command:

```json
{
  "mcpServers": {
    "taskaid": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://taskaid.ai/mcp"]
    }
  }
}
```

## Authentication & permissions

Taskaid uses OAuth 2.1, so there is no API key. A client identifies itself with a client ID metadata document (CIMD), a web address that describes it, or registers itself on first connect through dynamic client registration (DCR). Either way, your browser opens, you sign in, and you approve the scopes being requested. Tokens are limited to those scopes, and you can revoke access anytime by disconnecting the server in your client.

Some clients don't request scopes explicitly. Taskaid then grants `read` and `write`; `offline_access` is granted only when a client asks for it.

- `read` — view tasks, lists and the daily plan.
- `write` — create and update tasks, lists and the daily plan.
- `offline_access` — refresh access without re-authenticating.

## Tools

One tool per read or write of tasks, lists, and the daily plan. The [Tools](/docs/tools) reference shows each one exactly as served, why the set is shaped the way it is, and what every error means.

| Tool                                       | Access | What it does                                                |
| ------------------------------------------ | ------ | ----------------------------------------------------------- |
| [`search_tasks`](/docs/tools#search_tasks) | read   | Tasks, narrowed by state, by list, by text or by day.       |
| [`view_task`](/docs/tools#view_task)       | read   | One task whole, including the full note.                    |
| [`save_task`](/docs/tools#save_task)       | write  | Create a task, update any of its fields, or patch its note. |
| [`view_lists`](/docs/tools#view_lists)     | read   | Your lists, to resolve a name to an id.                     |
| [`save_list`](/docs/tools#save_list)       | write  | Create a list, or rename it or change its emoji.            |
| [`view_plan`](/docs/tools#view_plan)       | read   | The plan for a day.                                         |
| [`save_plan`](/docs/tools#save_plan)       | write  | Write a day's plan, patch part of it, or rename it.         |

Writes change only your own tasks, lists and plans. A save can overwrite a note or a whole plan, but no tool deletes anything, and none sends, shares, publishes or pays for anything, so none is a sensitive write.

## Events

Clients that support MCP events can subscribe to hear about changes as they happen, instead of reading your tasks again. The [Events](/docs/events) reference covers subscribing, delivery, and each event as served.

| Event                                        | Access | When it's sent                                     |
| -------------------------------------------- | ------ | -------------------------------------------------- |
| [`task.created`](/docs/events#taskcreated)   | read   | A task is created, in the app or by any assistant. |
| [`task.reminded`](/docs/events#taskreminded) | read   | A task's reminder time arrives.                    |

## Example prompts

- "Pull my Taskaid tasks for today and group them by list."
- "Add a task to draft the Q3 report, due tomorrow, and star it as important."
- "Read my tasks for today, then write me a focused daily plan."
- "Mark the electricity bill done and take it off today's plan."

## Security & privacy

- Access is limited to the scopes you approve, and every action runs as your own account.
- Taskaid only accesses the data needed to fulfill a request. It does not read your AI client's other conversations, memory, or uploaded files, and it doesn't use your data to train AI models.
- See our [Privacy Policy](/privacy) and [Terms of Service](/terms) for details.
- Revoke access anytime by removing the Taskaid server in your client.

## Troubleshooting

- **`insufficient_scope`** — reconnect the server from your client so Taskaid can grant the missing scope.
- **`401 Unauthorized`** — reconnect the server; your token may have expired or been revoked.
- **Server doesn't appear** — restart your client and confirm the URL is exactly `https://taskaid.ai/mcp`.
- **Stuck auth** — clear your client's saved MCP auth (for the `mcp-remote` bridge, remove `~/.mcp-auth`) and reconnect.
