MCP Server

The t0ggles MCP (Model Context Protocol) Server enables AI assistants to interact with your boards, projects, tasks, and notes. Connect your favorite AI-powered development tools to manage your work directly through natural language conversations.

#Quick Start

Get up and running with t0ggles MCP in two simple steps:

#1. Configure Your AI Tool

Add the t0ggles MCP server URL to your AI tool's configuration. No tokens or headers needed - authentication is handled automatically via OAuth 2.0.

{
"mcpServers": {
"t0ggles": {
"url": "https://t0ggles.com/mcp"
}
}
}

See the Integration Guides section for tool-specific instructions.

#2. Sign In and Start Using Natural Language

When your AI tool connects, it will open a browser window for you to sign in with Google, GitHub, or Apple. After signing in, you can interact with t0ggles using natural language:

"Show me all my t0ggles boards"
"Create a high-priority task 'Review API changes' in the Backend project"
"What tasks are assigned to me in the Marketing board?"

#Available Tools

The MCP server provides 39 tools organized by functionality:

#Board Operations

  • list-boards - List all boards you have access to, returning board IDs, URLs, titles, and images
  • get-board - Get detailed information about a specific board including tags, properties, and settings

#Project Operations

  • list-projects - List all active (non-archived) projects in a board, including the special "OTHER" project
  • get-project - Get detailed information about a specific project including AI context, tags, and links
  • update-project - Update a project's title, tags, links, or AI context (owner/admin only)

#Status Operations

  • list-statuses - Get all statuses (Kanban columns) for a board with their colors, types, and order
  • get-status - Get a single status by ID with its details

#User Operations

  • list-users - List all users who have access to a board with their display names and emails

#Task Operations

  • list-tasks - List tasks in a board or project with optional filtering by project, status, parent task, milestone, type (task/milestone), or dependency relationships
  • get-task - Get full details of a specific task including description, comments count, and properties
  • search-tasks - Search tasks by title with optional project filtering
  • get-task-by-url - Get a task by its full URL (supports custom domains)
  • create-task - Create a new task with optional subtasks, custom properties, and automatic task automations
  • update-task - Update an existing task's title, status, priority, assignment, dates, and properties (automatically cascades dependency dates)
  • bulk-create-tasks - Create multiple tasks atomically in a single operation (max 50 tasks)

#Time Tracking

  • log-time - Log time spent on a task with duration and optional description

#Comment Operations

  • list-comments - List comments on a task or note with user emails and file attachments
  • create-comment - Create a comment on a task or note with optional reply-to for threading

#Dependency Operations

  • list-dependencies - List all task dependencies for a board with task titles and keys
  • get-task-dependencies - Get predecessors (blocking tasks) and successors (dependent tasks) for a specific task
  • create-dependency - Create a dependency between two tasks with optional lag days (validates against cycles)
  • delete-dependency - Remove a task dependency

#Milestone Operations

  • list-milestones - List all milestones in a board with their progress (completed/total linked tasks)
  • create-milestone - Create a new milestone with title, due date, and optional project
  • get-milestone-progress - Get detailed completion stats for a milestone including linked task breakdown

#Note Operations

  • search-notes - Search notes by title in a board
  • list-notes - List notes in a board with optional parent folder filtering
  • get-note - Get full note details including Markdown content
  • get-note-by-url - Get a note by its full URL (supports custom domains)
  • create-note - Create a new note or folder with optional icon and parent folder
  • update-note - Update an existing note's title, content, icon, or parent folder

#Analytics

  • get-my-tasks - Get current user's tasks, sorted by priority and due date with overdue flags
  • list-overdue-tasks - Get tasks where due date has passed and status is not done, with days overdue count
  • get-user-workload - Get task counts per user grouped by status (initial, progress, done)
  • get-blocked-tasks - Get tasks waiting on incomplete predecessor tasks
  • get-activity-log - Get task change events from the last 7 days (or custom date range)

#Reports

  • summarize-board - Get board overview with task counts by status, user, overdue, and blocked
  • summarize-project - Get project-scoped summary with the same metrics as board summary
  • standup-report - Get daily standup data: tasks completed yesterday, in progress today, and blockers
  • health-check - Get project/board health score (healthy, at-risk, critical) with actionable recommendations
  • suggest-next-action - Get recommended next tasks based on priority, due dates, and dependencies

#Integration Guides

#Cursor IDE

Cursor has native MCP support with OAuth 2.0. Add t0ggles to your MCP configuration:

Configuration file location: ~/.cursor/mcp.json

{
"mcpServers": {
"t0ggles": {
"url": "https://t0ggles.com/mcp"
}
}
}

After saving, restart Cursor. It will open a browser window for you to sign in when it first connects.

#VS Code

VS Code has built-in MCP support with GitHub Copilot. Configure it in your user or workspace settings:

Configuration file location: .vscode/mcp.json (workspace) or User Settings

{
"servers": {
"t0ggles": {
"type": "http",
"url": "https://t0ggles.com/mcp"
}
}
}

VS Code will handle authentication automatically via OAuth 2.0. Learn more at VS Code MCP documentation.

#Claude Code

For Claude Code, use the CLI to add the t0ggles MCP server:

claude mcp add --transport http t0ggles https://t0ggles.com/mcp

Claude Code will open a browser window for you to sign in when it first connects. Learn more at Claude Code MCP documentation.

#Claude Desktop

Add to your Claude Desktop configuration:

{
"mcpServers": {
"t0ggles": {
"url": "https://t0ggles.com/mcp"
}
}
}

#OpenAI Codex

For OpenAI Codex, use the CLI to add the t0ggles MCP server:

codex mcp add t0ggles --url https://t0ggles.com/mcp

Or configure in your config.toml. Learn more at Codex MCP documentation.

#Opencode

Add t0ggles to your Opencode configuration file (opencode.json):

{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"t0ggles": {
"type": "remote",
"url": "https://t0ggles.com/mcp",
"enabled": true
}
}
}

Learn more at Opencode MCP documentation.

#Other MCP-Compatible Tools

Any tool that supports MCP with OAuth 2.0 can connect using the URL https://t0ggles.com/mcp. The tool will discover the OAuth endpoints automatically and prompt you to sign in via your browser.

#Usage Examples

Here are practical examples and prompts to help you get the most out of t0ggles MCP integration:

#Task Management

List and organize tasks:

  • "Show me all tasks in the Marketing board"
  • "What are my high-priority tasks?"
  • "List all in-progress tasks assigned to me"

Create tasks:

  • "Create a task 'Design new landing page' in the Website project with high priority"
  • "Add a bug fix task 'Fix login timeout issue' with tags 'Bug' and 'Urgent'"
  • "Create a task with subtasks: 'Launch feature X' with subtasks 'Write tests', 'Update docs', 'Deploy to staging'"

Update tasks:

  • "Mark task PROJ-123 as done"
  • "Assign the 'API refactor' task to sarah@company.com"
  • "Change the priority of MARKETING-45 to high and add a due date for next Friday"

#Time Tracking

Log time on tasks:

  • "Log 2 hours on task PROJ-123 for 'API implementation'"
  • "Add 30 minutes to the 'Code review' task"
  • "Log 1h 30m on BACKEND-45: finished database migration"

#Comments

View comments:

  • "Show me the comments on task PROJ-123"
  • "List all comments on the project kickoff note"
  • "What did the team discuss on the API design task?"

Add comments:

  • "Add a comment to PROJ-123: 'Ready for review'"
  • "Comment on the meeting notes: 'Action items completed'"
  • "Reply to the last comment on BACKEND-45 with 'Fixed in the latest commit'"

#Project & Board Overview

Get project context:

  • "Give me an overview of the Backend project"
  • "What are the active projects in my Work board?"
  • "Show me the kanban columns for the Design board"

Update projects:

  • "Update the Backend project title to 'Backend API'"
  • "Add a 'Bug' tag to the Frontend project"
  • "Set the AI context for the Mobile project to 'React Native app with TypeScript'"

Search and find:

  • "Search for tasks related to 'authentication'"
  • "Find all tasks in the BACKEND project about API"
  • "What tasks mention 'performance'?"

#Note Management

Create and organize notes:

  • "Create a note titled 'Meeting Notes - Sprint Planning' in the Documentation folder"
  • "Add a new folder called 'Technical Specs' to the notes"
  • "Create a note with the technical design for the new authentication system"

Search and retrieve:

  • "Find notes about 'deployment'"
  • "Get the content of the 'Architecture Overview' note"
  • "List all notes in the Onboarding folder"

#Dependency Management

View dependencies:

  • "Show me all task dependencies in the Backend board"
  • "What tasks are blocking PROJ-123?"
  • "What tasks depend on the 'API refactor' task?"

Create dependencies:

  • "Make task PROJ-45 depend on PROJ-42"
  • "Create a dependency: 'Deploy to staging' must wait for 'Run integration tests' with a 1 day lag"
  • "Link the database migration task as a predecessor to the API update task"

Manage dependencies:

  • "Remove the dependency between PROJ-10 and PROJ-15"
  • "What's the dependency chain for the release task?"
  • "Find all tasks that are blocked by unfinished work"

#Milestone Tracking

View milestones:

  • "List all milestones in the Backend board"
  • "What's the progress on the 'Q1 Release' milestone?"
  • "Show me milestones that are less than 50% complete"

Create milestones:

  • "Create a milestone 'Sprint 5 Goals' with a due date of next Friday"
  • "Add a milestone for the product launch in the Marketing project"

Link tasks to milestones:

  • "Link task PROJ-123 to the 'Q1 Release' milestone"
  • "What tasks are linked to the 'Beta Launch' milestone?"
  • "Show me incomplete tasks for the 'MVP' milestone"

#Development Workflows

Sprint planning:

  • "List all tasks in the current sprint (TODO and In Progress status)"
  • "Create tasks for: 'Implement user settings', 'Add dark mode toggle', 'Fix mobile navigation'"
  • "What tasks need code review?"

Bug tracking:

  • "Show me all tasks tagged with 'Bug'"
  • "Create a high-priority bug: 'Users cannot reset password on mobile'"
  • "How many open bugs do we have in the Frontend project?"

Daily standups:

  • "What did I complete yesterday? (tasks moved to Done)"
  • "What's assigned to me that's still in progress?"
  • "Are there any blocked tasks?"

#Analytics And Insights

Track your work:

  • "Show me my tasks sorted by priority"
  • "What tasks are overdue in the Marketing board?"
  • "How many days overdue is each task?"

Team workload:

  • "Show me the workload distribution across the team"
  • "Who has the most tasks in progress?"
  • "How many unassigned tasks do we have?"

Activity tracking:

  • "What changed in the Backend project this week?"
  • "Show me recent task updates"
  • "Who made changes to tasks yesterday?"

#Reports And Health Checks

Board and project summaries:

  • "Give me a summary of the Marketing board"
  • "Summarize the Backend project status"
  • "How many tasks are blocked vs in progress?"

Daily standups:

  • "Generate my standup report"
  • "What did I complete yesterday and what's in progress today?"
  • "Show me my blockers"

Project health:

  • "Is the Website project healthy?"
  • "What's the health score for my board?"
  • "Give me recommendations to improve project health"

Next action suggestions:

  • "What should I work on next?"
  • "Suggest my next task based on priority and deadlines"
  • "What's my most urgent unblocked task?"

#Bulk Operations

Create multiple tasks at once:

"Bulk create the following tasks in the Onboarding project:

  1. Set up development environment
  2. Read coding guidelines
  3. Complete security training
  4. Meet with team lead"
  • "Create 5 tasks for the sprint: API endpoints, database migration, unit tests, documentation, code review"
  • "Add these bug tickets to the Frontend project: login issue, mobile layout, dark mode glitch"

#Advanced Prompts

Context-aware assistance:

  • "Based on the tasks in BACKEND project, what seems to be the current priority?"
  • "Summarize the status of the Website Redesign project"
  • "What tasks are overdue in my boards?"

#OAuth 2.0 Authentication

t0ggles MCP uses OAuth 2.0 with PKCE for secure authentication. MCP clients handle the entire flow automatically - no manual token management required.

#How It Works

  1. Your MCP client discovers the OAuth configuration via /.well-known/oauth-authorization-server
  2. The client registers itself via dynamic client registration
  3. When you connect, a browser window opens for you to sign in with Google, GitHub, or Apple
  4. After signing in, you approve the MCP client's access on a consent page
  5. The client receives an access token (valid for 24 hours) and a refresh token
  6. When the access token expires, the client automatically refreshes it

#Details

  • Grant type: authorization_code with PKCE (S256)
  • Token lifetime: Access tokens expire after 24 hours
  • Refresh tokens: Issued alongside access tokens; used automatically to get new pairs
  • Revocation: Access or refresh tokens can be revoked at any time

#Security

#OAuth 2.0

  • PKCE (S256): Secure authentication without exposing secrets
  • Auto-refresh: Access tokens expire after 24 hours and are automatically refreshed
  • Revocable: Tokens can be revoked at any time
  • Account-bound: Each token is tied to your user account and respects your board permissions
  • Dynamic registration: No manual client setup required

#Best Practices

  1. Reconnect if needed - If you see "Unauthorized" errors, your tool will prompt you to sign in again
  2. Use trusted tools - Only connect MCP tools you trust, as they will have access to your boards
  3. Review access - You approve each MCP client's access on a consent page before granting access

#Legacy Static Tokens (Deprecated)

Static MCP tokens (t0mcp_ prefix) are deprecated. New token creation is disabled. Existing tokens continue to work and can be managed in Account Settings - you can view and delete existing tokens.

#API Endpoints

#MCP Protocol

  • POST https://t0ggles.com/mcp - JSON-RPC endpoint for MCP requests
  • GET https://t0ggles.com/mcp - SSE event stream (with Accept: text/event-stream header) or server info
  • GET https://t0ggles.com/mcp/health - Health check
  • GET https://t0ggles.com/mcp/info - Server capabilities and available tools

#OAuth 2.0

  • GET https://t0ggles.com/.well-known/oauth-authorization-server - OAuth discovery metadata
  • GET https://t0ggles.com/.well-known/oauth-protected-resource - Protected resource metadata
  • POST https://t0ggles.com/mcp/oauth/register - Dynamic client registration
  • GET https://t0ggles.com/mcp/oauth/authorize - Authorization / consent page
  • POST https://t0ggles.com/mcp/oauth/token - Token exchange and refresh
  • POST https://t0ggles.com/mcp/oauth/revoke - Token revocation

#Troubleshooting

#"Unauthorized" or 401 Error

Your access token may have expired or been revoked. Most MCP clients will automatically refresh the token. If the issue persists, try reconnecting - your tool will prompt you to sign in again.

#"Board not found"

Check that you have access to the board. The MCP server only allows access to boards you own or are a member of.

#OAuth Sign-in Page Doesn't Appear

Make sure your MCP client supports OAuth 2.0 authentication. Check that your client can reach https://t0ggles.com/.well-known/oauth-authorization-server.

#"Method not found"

The requested MCP method doesn't exist. Check the available tools list above.