# What Is the MCP Server in Kaneo and Which Tools Does It Provide?

> Explore the Kaneo MCP server, offering 20+ AI-powered tools to manage workspaces, projects, tasks, labels, and comments with assistants like Claude and Cursor.

- Repository: [kaneo.app/kaneo](https://github.com/usekaneo/kaneo)
- Tags: deep-dive
- Published: 2026-08-06

---

**Kaneo includes an official MCP (Model Context Protocol) server that exposes 20+ programmatic tools for managing workspaces, projects, tasks, labels, and comments via AI assistants like Claude and Cursor.**

The **Kaneo MCP server** bridges AI-powered development environments with your Kanban instance through the Model Context Protocol standard. Implemented in the `packages/mcp` package, this server enables both interactive device-flow authentication for local development and API key-based authentication for headless deployments. According to the Kaneo source code, the server supports stdio transport for CLI tools and an HTTP endpoint for direct API integration.

## MCP Server Architecture and Entry Points

The Kaneo MCP server consists of three core components working together to provide seamless AI integration.

### Server Implementation ([`packages/mcp/src/server.ts`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/server.ts))

The primary server implementation lives in [[`packages/mcp/src/server.ts`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/server.ts)](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/server.ts). This file handles:

- **stdio transport** for MCP client communication
- **Token management** and refresh cycles
- **Tool registration** and execution routing
- **Device flow orchestration** for initial authentication

### CLI Entry Point ([`packages/mcp/src/cli.ts`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/cli.ts))

The command-line interface is defined in [[`packages/mcp/src/cli.ts`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/cli.ts)](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/cli.ts). This provides the `kaneo-mcp` binary with subcommands for each tool and an interactive installer that registers the server with Claude or Cursor configuration files.

### API Route Registration ([`apps/api/src/mcp/index.ts`](https://github.com/usekaneo/kaneo/blob/main/apps/api/src/mcp/index.ts))

The HTTP endpoint is wired up in [[`apps/api/src/mcp/index.ts`](https://github.com/usekaneo/kaneo/blob/main/apps/api/src/mcp/index.ts)](https://github.com/usekaneo/kaneo/blob/main/apps/api/src/mcp/index.ts). This registers the **`/api/mcp`** route on the Kaneo API server and exposes OpenAPI documentation for direct HTTP clients.

## Complete Tool Reference for the Kaneo MCP Server

The Kaneo MCP server organizes its 20+ tools into six functional categories. Each tool maps to a CLI command when using the `kaneo-mcp` binary.

### Session Tools

| Tool | Purpose |
|------|---------|
| `whoami` | Returns the authenticated user's profile |
| `list_workspaces` | Enumerates accessible workspaces |

### Project Management Tools

| Tool | Purpose |
|------|---------|
| `list_projects` | Returns all projects in the current workspace |
| `get_project` | Fetches details for a specific project by ID |
| `create_project` | Creates a new project with name, description, and settings |
| `update_project` | Modifies project metadata and configuration |

### Task Operations Tools

| Tool | Purpose |
|------|---------|
| `list_tasks` | Lists tasks with optional filtering by project or status |
| `get_task` | Retrieves full task details including description and assignees |
| `create_task` | Creates a task with title, description, and project assignment |
| `move_task` | Changes task position within or between columns |
| `update_task_status` | Updates workflow state (e.g., Todo → In Progress → Done) |
| `update_task` | General-purpose task field modification |

### Comment Tools

| Tool | Purpose |
|------|---------|
| `list_task_comments` | Retrieves comment thread for a specific task |
| `create_task_comment` | Adds a new comment to a task |
| `update_task_comment` | Edits existing comment content |
| `delete_task_comment` | Removes a comment by ID |

### Label Management Tools

| Tool | Purpose |
|------|---------|
| `list_workspace_labels` | Shows all label definitions in the workspace |
| `create_label` | Defines a new label with color and name |
| `attach_label_to_task` | Associates an existing label with a task |
| `detach_label_from_task` | Removes label association from a task |
| `delete_label` | Permanently removes a label from the workspace |

### Task Relation Tools

| Tool | Purpose |
|------|---------|
| `create_task_relation` | Establishes dependencies or blockers between tasks |
| `get_task_relations` | Fetches all relationships for a given task |
| `delete_task_relation` | Removes a previously created task relationship |

## Authentication: Device Flow vs. API Key

The Kaneo MCP server supports two authentication modes as implemented in the source code.

### Interactive Device Flow (Default)

First-time tool execution triggers OAuth 2.0 device flow authentication:

1. Server requests device code via `POST /api/auth/device/code`
2. CLI displays verification URL and user code
3. User authorizes through browser
4. Server polls for approval and caches refresh token

```bash
npx @kaneo/mcp

# → Launches interactive installer

# → Prompts for Claude/Cursor config registration

# → Initiates device flow on first API call

```

### Headless API Key Authentication

For CI/CD pipelines and server environments, set `KANEO_API_KEY` to bypass interactive flow entirely:

```bash
export KANEO_API_KEY="kan_live_..."
kaneo-mcp list_projects

```

## Installation and Usage Examples

### Running the Interactive Installer

```bash
npx @kaneo/mcp

```

This command prompts you to register the MCP server in Claude or Cursor configuration files.

### Starting the Stdio Server Manually

```bash
npx @kaneo/mcp serve

# Or after global install:

kaneo-mcp serve

```

### Listing All Projects

```bash
kaneo-mcp list_projects

```

Output format (JSON array):

```json
[
  {"id":"c1x9a2b3c4d5","name":"Demo Project","createdAt":"2024-01-15T08:30:00Z"},
  {"id":"c1x9a2b3c4d6","name":"Q1 Roadmap","createdAt":"2024-01-16T14:22:00Z"}
]

```

### Creating a New Task

```bash
kaneo-mcp create_task \
  --project-id c1x9a2b3c4d5 \
  --title "Write knowledge-base article" \
  --description "Explain MCP server architecture and available tools"

```

### Attaching a Label to a Task

```bash
kaneo-mcp attach_label_to_task \
  --task-id t1y7b8c9d0e1 \
  --label-id l2z3a4b5c6d7

```

### Direct HTTP API Access

When the Kaneo API server is running, access tools via the HTTP endpoint:

```bash
curl http://localhost:1337/api/mcp \
  -H "Authorization: Bearer kan_live_..." \
  -H "Content-Type: application/json" \
  -d '{"tool":"list_projects","params":{}}'

```

## Key Source Files Reference

| File | Role |
|------|------|
| [[`packages/mcp/src/server.ts`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/server.ts)](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/server.ts) | Core MCP server implementation with stdio transport and token handling |
| [[`packages/mcp/src/cli.ts`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/cli.ts)](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/cli.ts) | CLI definition, subcommand routing, and installer UI |
| [[`apps/api/src/mcp/index.ts`](https://github.com/usekaneo/kaneo/blob/main/apps/api/src/mcp/index.ts)](https://github.com/usekaneo/kaneo/blob/main/apps/api/src/mcp/index.ts) | HTTP `/api/mcp` route registration and OpenAPI docs |
| [[`packages/mcp/README.md`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/README.md)](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/README.md) | Official documentation covering installation and tool reference |
| [[`tests/api-integration/mcp-oauth-store.test.ts`](https://github.com/usekaneo/kaneo/blob/main/tests/api-integration/mcp-oauth-store.test.ts)](https://github.com/usekaneo/kaneo/blob/main/tests/api-integration/mcp-oauth-store.test.ts) | Integration tests validating OAuth flow implementation |

## Summary

- The **Kaneo MCP server** is an official Model Context Protocol implementation enabling AI assistants to manage Kanban data programmatically
- **20+ tools** cover session, project, task, comment, label, and task-relation operations
- **Dual transport support**: stdio for CLI tools (`kaneo-mcp`) and HTTP for direct API access (`/api/mcp`)
- **Flexible authentication**: Interactive device flow for developers, `KANEO_API_KEY` for automated environments
- Core implementation spans three files: [`server.ts`](https://github.com/usekaneo/kaneo/blob/main/server.ts) (transport), [`cli.ts`](https://github.com/usekaneo/kaneo/blob/main/cli.ts) (commands), and [`apps/api/src/mcp/index.ts`](https://github.com/usekaneo/kaneo/blob/main/apps/api/src/mcp/index.ts) (HTTP routing)

## Frequently Asked Questions

### How do I install the Kaneo MCP server?

Run `npx @kaneo/mcp` for interactive installation, which registers the server with Claude or Cursor. For manual setup, install globally with `npm install -g @kaneo/mcp` and run `kaneo-mcp serve` to start the stdio server.

### What authentication methods does the Kaneo MCP server support?

The server supports OAuth 2.0 device flow for interactive use and API key authentication via the `KANEO_API_KEY` environment variable for headless environments. Device flow is implemented in [`packages/mcp/src/server.ts`](https://github.com/usekaneo/kaneo/blob/main/packages/mcp/src/server.ts) using the `/api/auth/device/code` endpoint.

### Can I call Kaneo MCP tools via HTTP instead of the CLI?

Yes. The Kaneo API server exposes an HTTP MCP endpoint at `/api/mcp` as registered in [`apps/api/src/mcp/index.ts`](https://github.com/usekaneo/kaneo/blob/main/apps/api/src/mcp/index.ts). Send POST requests with tool name and parameters as JSON, including your API key in the `Authorization` header.

### Which AI clients are compatible with the Kaneo MCP server?

Any MCP-compatible client works, including **Claude Desktop**, **Cursor**, and generic MCP clients. The `npx @kaneo/mcp` installer specifically targets Claude and Cursor configuration files for automatic registration.