# MCP Server

Notaday exposes a Model Context Protocol (MCP) server that lets AI assistants like Claude read and write your Notaday data directly inside a conversation.

## Server URL

```text
https://mcp.notaday.com/mcp
```

## What You Can Do

Once connected, Claude can:

- List, create, update, and delete your Notaday entries.
- Read journal entries and backlog items.
- Create, rename, and delete channels and tags.
- Organize entries by channel or tag.
- Take actions in your workspace based on natural-language instructions.

## Available Tools

### Entries

| Tool | Description |
|---|---|
| `list_entries` | List entries with optional filters (type, completion status, backlog, favorites). Returns paginated results. |
| `get_entry` | Retrieve a single entry by ID. |
| `create_entry` | Create a new entry. Supports all entry types (task, journal, routine) including mood, weather, channel, tags, and connections. |
| `update_entry` | Update an existing entry. Only the fields you provide are changed. Supports adding/replacing connections. |
| `delete_entry` | Permanently delete an entry. This action cannot be undone. |

### Connections

Entries can be linked together using the `connections` field — an array of entry IDs. This creates a 1-to-N relationship between a parent entry and any number of related entries. Connections can be set at creation time via `create_entry` or added/replaced later via `update_entry`.

!!!
Passing a new `connections` array via `update_entry` **replaces** the existing connections entirely. To add a single entry, first fetch the current entry with `get_entry` and merge the existing IDs with the new one.
!!!

```
User: "Link these three subtasks to the main project task"

Claude:
  1. get_entry      → reads current connections of the parent task
  2. update_entry   → sets connections: [existingId1, newId2, newId3, newId4]
```

### Tags

| Tool | Description |
|---|---|
| `list_tags` | List all your tags with their IDs, names, and colors. Use this to find the correct tag IDs before creating or updating entries. |
| `create_tag` | Create a new tag with a name and optional color. Tag names may only contain letters, numbers, hyphens, and underscores. |
| `update_tag` | Rename a tag, change its color, or toggle its archived status. Only the fields you provide are changed. |
| `delete_tag` | Permanently delete a tag. This action cannot be undone. |

### Channels

| Tool | Description |
|---|---|
| `list_channels` | List all your channels (projects) with their IDs and names. Use this to find the correct channel ID before creating or updating entries. |
| `create_channel` | Create a new channel with a name and optional description and color. |
| `update_channel` | Rename a channel, update its description or color, or toggle its archived status. Only the fields you provide are changed. |
| `delete_channel` | Permanently delete a channel. This action cannot be undone. |

### Typical workflow

When you ask Claude to create an entry with a specific tag or channel by name, Claude will automatically call `list_tags` or `list_channels` first to look up the correct ID, then pass it to `create_entry` or `update_entry`.

```
User: "Add a task for the weekly report to my Work channel and tag it as urgent"

Claude:
  1. list_channels → finds "Work" channel ID
  2. list_tags     → finds "urgent" tag ID
  3. create_entry  → creates task with channelId + tagIds
```

Claude can also manage your tags and channels directly:

```
User: "Create a new channel called 'Side Projects' with a blue color and add a tag called 'low-priority'"

Claude:
  1. create_channel → creates "Side Projects" channel with color #3b82f6
  2. create_tag     → creates "low-priority" tag
```

## Connect With Claude

### Claude Desktop

1. Open Claude Desktop.
2. Go to **Settings → Integrations** or **Developer → Edit Config** (or open the Claude Desktop config file directly).
3. Add the following to your `claude_desktop_config.json`, for example above the first attribute which is usualy **coworkUserFilesPath**:

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

4. Restart Claude Desktop.
5. Claude will prompt you to sign in with your Notaday account the first time you use a Notaday tool.

### Claude.ai (Web)

1. Open [claude.ai](https://claude.ai).
2. In the left sidebar, click **Customize**.
3. Select **Connectors**.
4. Click the **+** button and choose **Add custom connector**.
5. Enter `Notaday` as the name and `https://mcp.notaday.com/mcp` as the URL.
6. Click **Add**.
7. Sign in with your Notaday account when prompted.

## Authentication

The MCP server uses OAuth to authenticate your Notaday account. No manual API token setup is required — Claude handles the login flow when you first use a Notaday tool in a session.

!!!
Your Notaday data is only accessible after you authorize the connection. The server enforces the same user-scoped access rules as the rest of the Notaday API.
!!!

## Troubleshooting

**Claude does not see the Notaday tools**
Verify the URL is entered exactly as shown and that Claude Desktop has been fully restarted after editing the config file.

**Authentication fails**
Make sure you are using the same Google account that your Notaday account is registered under. If the issue persists, remove the integration and re-add it to restart the OAuth flow.

**Changes are not reflected immediately**
Most tool calls return live data. If a write operation does not show up, ask Claude to fetch the latest entries again.
