Sunsama
About
A comprehensive Model Context Protocol (MCP) server that integrates Sunsama's daily planning and task management capabilities into AI assistants. Provides full CRUD operations for tasks, enabling automated workflow management and productivity optimization through the Sunsama API.
Details
- Author
- robertn702
- Downloads
- 611
- Categories
- Productivity, Other, Project Management, Automation
Jump to
- Create tasks with notes, time estimates, due dates, and stream assignments
- Read tasks by day with completion filtering and access backlog tasks
- Update tasks (mark complete, reschedule, move to backlog)
- Delete tasks permanently from your workspace
- Access user profile, timezone, and stream/channel information
- Support for both stdio and HTTP stream MCP transports
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
SunsamaCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install with npx (recommended): npx mcp-sunsama. For development, clone the repository, install dependencies with Bun, set environment variables (SUNSAMA_EMAIL, SUNSAMA_PASSWORD, optionally SUNSAMA_SESSION_TOKEN, PORT, MCP_TRANSPORT), then run bun run src/main.ts. Configure with Claude Desktop by adding a sunsama entry in mcpServers with the npx command and credentials.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"sunsama": {
"sunsama": {
"command": "npx",
"args": [
"mcp-sunsama"
],
"env": {
"SUNSAMA_EMAIL": "<YOUR_EMAIL>",
"SUNSAMA_PASSWORD": "<YOUR_PASSWORD>"
}
}
}
}
}
McpServers
{
"sunsama": {
"command": "npx",
"args": [
"mcp-sunsama"
],
"env": {
"SUNSAMA_EMAIL": "<YOUR_EMAIL>",
"SUNSAMA_PASSWORD": "<YOUR_PASSWORD>"
}
}
}
A Model Context Protocol (MCP) server that provides comprehensive task management capabilities through the Sunsama API. This server enables AI assistants to access Sunsama tasks, create new tasks, mark tasks complete, and manage your productivity workflow.
- Create Tasks- Create new tasks with notes, time estimates, due dates, stream assignments, and GitHub/Gmail integrations
- Read Tasks- Get tasks by day with completion filtering, access backlog tasks, retrieve archived task history
- Update Tasks- Mark tasks as complete with custom timestamps, reschedule tasks or move to backlog
- Subtasks- Add, update, complete, and manage subtasks within tasks
- Delete Tasks- Permanently remove tasks from your workspace
- User Information- Access user profile, timezone, and group details
- Stream Management- Get streams/channels for project organization
- Dual Transport- Support for both stdio and HTTP stream MCP transports
- Bunruntime (for development)
- Sunsama account with API access
No installation required! Use directly with:
git clone https://github.com/robertn702/mcp-sunsama.git cd mcp-sunsama
cp .env.example .env # Edit .env and add your Sunsama credentials
- SUNSAMA_EMAIL- Your Sunsama account email (required for stdio transport)
- SUNSAMA_PASSWORD- Your Sunsama account password (required for stdio transport)
- TRANSPORT_MODE- Transport type:stdio(default) orhttp
- PORT- Server port for HTTP transport (default: 8080)
- HTTP_ENDPOINT- MCP endpoint path (default:/mcp)
- SESSION_TTL- Session timeout in milliseconds (default: 3600000 / 1 hour)
- CLIENT_IDLE_TIMEOUT- Client idle timeout in milliseconds (default: 900000 / 15 minutes)
- MAX_SESSIONS- Maximum concurrent sessions for HTTP transport (default: 100)
This server supports two transport modes:
For local AI assistants (Claude Desktop, Cursor, etc.):
bun run dev # or TRANSPORT_MODE=stdio bun run src/main.ts
For remote access and web-based integrations:
TRANSPORT_MODE=http PORT=8080 bun run src/main.ts
- MCP Endpoint:POST http://localhost:8080/mcp
- Health Check:GET http://localhost:8080/
Authentication:HTTP requests require HTTP Basic Auth with your Sunsama credentials:
curl -X POST http://localhost:8080/mcp \ -H "Authorization: Basic $(echo -n 'your-email:your-password' | base64)" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
Add this configuration to your Claude Desktop MCP settings:
{ "mcpServers": { "sunsama": { "command": "npx", "args": ["mcp-sunsama"], "env": { "SUNSAMA_EMAIL": "your-email@example.com", "SUNSAMA_PASSWORD": "your-password" } } } }
Add the Sunsama MCP server using the Claude Code CLI:
claude mcp add sunsama --scope user \ -e SUNSAMA_EMAIL=your-email@example.com \ -e SUNSAMA_PASSWORD=your-password \ -- npx mcp-sunsama
- --scope user- Available across all projects (recommended)
- --scope project- Only available in the current project
After adding the server, restart Claude Code to connect to the Sunsama MCP server.
- create-task- Create new tasks with optional properties including GitHub issue/PR and Gmail integration
- get-tasks-by-day- Get tasks for a specific day with completion filtering
- get-tasks-backlog- Get backlog tasks
- get-archived-tasks- Get archived tasks with pagination (includes hasMore flag for LLM context)
- get-task-by-id- Get a specific task by its ID
- update-task-complete- Mark tasks as complete
- update-task-planned-time- Update the planned time (time estimate) for tasks
- update-task-notes- Update task notes content (requires eitherhtmlormarkdownparameter, mutually exclusive)
- update-task-due-date- Update the due date for tasks (set or clear due dates)
- update-task-text- Update the text/title of tasks
- update-task-stream- Update the stream/channel assignment for tasks
- update-task-snooze-date- Reschedule tasks to different dates
- update-task-backlog- Move tasks to the backlog
- delete-task- Delete tasks permanently
- add-subtask- Create a subtask with a title in one call (recommended for single subtask creation)
- create-subtasks- Create multiple subtasks for a task (low-level API for bulk operations)
- update-subtask-title- Update the title of a subtask
- complete-subtask- Mark a subtask as complete with optional completion timestamp
- uncomplete-subtask- Mark a subtask as incomplete
- get-user- Get current user information
- get-streams- Get streams/channels for project organization
Thecreate-tasktool supports linking tasks to external services like GitHub and Gmail.
{ "text": "Fix authentication bug", "integration": { "service": "github", "identifier": { "id": "I_kwDOO4SCuM7VTB4n", "repositoryOwnerLogin": "robertn702", "repositoryName": "mcp-sunsama", "number": 42, "type": "Issue", "url": "https://github.com/robertn702/mcp-sunsama/issues/42", "__typename": "TaskGithubIntegrationIdentifier" }, "__typename": "TaskGithubIntegration" } }
{ "text": "Review API refactoring PR", "integration": { "service": "github", "identifier": { "id": "PR_kwDOO4SCuM7VTB5o", "repositoryOwnerLogin": "robertn702", "repositoryName": "mcp-sunsama", "number": 15, "type": "PullRequest", "url": "https://github.com/robertn702/mcp-sunsama/pull/15", "__typename": "TaskGithubIntegrationIdentifier" }, "__typename": "TaskGithubIntegration" } }
{ "text": "Respond to project update email", "integration": { "service": "gmail", "identifier": { "id": "19a830b40fd7ab7d", "messageId": "19a830b40fd7ab7d", "accountId": "user@example.com", "url": "https://mail.google.com/mail/u/user@example.com/#inbox/19a830b40fd7ab7d", "__typename": "TaskGmailIntegrationIdentifier" }, "__typename": "TaskGmailIntegration" } }
Note: All integration parameters are optional. Tasks can be created without integrations for standard task management.
Then connect the MCP Inspector to test the tools interactively.
bun test # Run unit tests only bun test:unit # Run unit tests only (alias) bun test:integration # Run integration tests (requires credentials) bun test:all # Run all tests bun test:watch # Watch mode for unit tests
bun run build # Compile TypeScript to dist/ bun run typecheck # Run TypeScript type checking bun run typecheck:watch # Watch mode type checking
For information on creating releases and publishing to npm, seeCONTRIBUTING.md.
The server is organized with a modular, resource-based architecture:
src/ ├── tools/ │ ├── shared.ts # Common utilities and patterns │ ├── user-tools.ts # User operations (get-user) │ ├── task-tools.ts # Task operations (15 tools) │ ├── stream-tools.ts # Stream operations (get-streams) │ └── index.ts # Export all tools ├── resources/ │ └── index.ts # API documentation resource ├── auth/ # Authentication strategies │ ├── stdio.ts # Stdio transport authentication │ ├── http.ts # HTTP Basic Auth parsing │ └── types.ts # Shared auth types ├── transports/ │ ├── stdio.ts # Stdio transport implementation │ └── http.ts # HTTP Stream transport with session management ├── session/ │ └── session-manager.ts # Session lifecycle management ├── config/ # Environment configuration │ ├── transport.ts # Transport mode configuration │ └── session-config.ts # Session TTL configuration ├── utils/ # Utilities (filtering, trimming, etc.) │ ├── client-resolver.ts # Transport-agnostic client resolution │ ├── task-filters.ts # Task completion filtering │ ├── task-trimmer.ts # Response size optimization │ └── to-tsv.ts # TSV formatting utilities ├── schemas.ts # Zod validation schemas └── main.ts # Server setup (47 lines vs 1162 before refactoring) __tests__/ ├── unit/ # Unit tests (no auth required) │ ├── auth/ # Auth utility tests │ ├── config/ # Configuration tests │ └── session/ # Session management tests └── integration/ # Integration tests (requires credentials) └── http-transport.test.ts
- Type Safety: Full TypeScript typing with Zod schema validation
- Parameter Destructuring: Clean, explicit function signatures
- Shared Utilities: Common patterns extracted to reduce duplication
- Error Handling: Standardized error handling across all tools
- Response Optimization: Task filtering and trimming for large datasets
- Session Management: Dual-layer caching with TTL-based lifecycle management
- Test Coverage: 251+ unit tests and comprehensive integration tests
Stdio Transport:RequiresSUNSAMA_EMAILandSUNSAMA_PASSWORDenvironment variables.
HTTP Transport:Credentials provided via HTTP Basic Auth per request. No environment variables needed for credentials.
We welcome contributions! Please seeCONTRIBUTING.mdfor detailed guidelines on:
- Development workflow
- Code style and conventions
- Testing requirements
- Release process (for maintainers)
- Fork and clone the repository
- Install dependencies:bun install
- Make your changes
- Create a changeset:bun run changeset
- Submit a pull request
This project is licensed under the MIT License - see theLICENSEfile for details.
- sunsama-api Library- The underlying API client
- Model Context Protocol Documentation
- Issue Tracker
The 1Password MCP server creates a bridge that allows MCP clients such as Codex and Kiro to manage your 1Password Environments with secure authorization prompts.
This is the 1st, easiest, and cheapest PPT, slides, presentation AI generation MCP Server in the world.
Persistent memory for any AI assistant. Zero token cost until recall. Stores memories in local SQLite, ranks by 6-factor scoring, returns results 79% smaller than JSON. Works with Claude, ChatGPT, Grok, Cursor, Windsurf, and any MCP client.
A MCP server that enables AI assistants to interact with Anki, the spaced repetition flashcard application.
Enables LLM clients to interact with macOS applications through AppleScript. Built using the @beyondbetter/bb-mcp-server library, this server provides safe, controlled execution of predefined scripts with optional support for arbitrary script execution.
An MCP server for WordPress plugin audits
Turn your AI assistant into a digital marketing hub that creates, organizes, and analyzes links and QR Codes on demand.
Connect AI clients to Cal.com scheduling through the Model Context Protocol using the hosted server at mcp.cal.com or a local instance.
Sync Calendars, Scheduling Links, AI Executive Scheduling Assistant, Unified Calendar
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





