MCP Server
in progress
Jeff Vermeire
Develop an MCP server for agentic workflows. As more and more work moves toward AI-centric development and processing, agents are used extensively to automate and speed tasks. An MCP server would allow code editors like Cursor and Windsurf to directly interface with Sunsama and automatically manage tasks and schedules based on how and when tasks are completed. As more products move into agentic workflows, and more tools provide their own MCP servers, Sunsama is going to need this in order to keep up/stay ahead of other tools.
HD Schellnack
Dear one & Sunsama-Team, is there any chance of getting the accumulated (or single) «Actual» Times we track on our tasks readable via MCP for Claude/GPT etc? That would be a massive step up. We can get CSVs with the estimated time, weirdly enough, but not the actual time spend on the work we organize in Sunsama. It would be a game changer to just get that out of Sunsama and basically free you from having to develop your own timesheets and so on if we could just have access to those entries :-D. Many thanks.
Zane Mccaig
HD Schellnack: That is something on our backlog to get implemented. Thanks for chiming in.
HD Schellnack
Zane Mccaig I really really dig Sunsama as a «Calendar»-as-Kanban-Tool. But I have been trying others these last week, mostly because getting from Tasks to Invoicing is terrible, manual work. What would be ideal is an integration of Analytics as «Ellie» offers, simple yet enough. Another possibility would be to filter, say: Tasks done in Channel #ABC in June and the MCP or Sunsamas Sunny gives you a CSV. But Sunny and external MCP has no access to «actual» time.
Wishlist:
Analytics/Actual Time API and a bit better team integration (ability to move the same project from person to person without loosing the tracked time, basically) and attachments would be so brillant. The most amazing thing would be to integrate an autotracker that allows you to slot your time per App (such as «Timing»)
Many thanks for the good work you put in. Things like the live tracking on iPhone and the menu bar on MacOS show your dedication and I am well aware that every user has different needs ;-D.
Zane Mccaig
HD Schellnack thanks for the additional feedback. I think team stuff + time tracking is definitely uncharted territory since historically we have always had tasks being viewed as something that a single person is completing on their own not working with others intermittently. I don't think our existing data model would support that use case well. You could assign different tasks to different users and share the same channel to track which project they align with though.
For attachments you can attach files in the comments section for tasks. Hopefully that can solve your use case. There is no support for that in MCP though.
As for the time tracking analytics that is something that almost makes the cut every year when we are mapping out our major objectives but something always comes up the pushes it back again. Hopefully we will be able to improve that some day but I am not sure when. Hopefully once we get the actual time in MCP it will act a stop gap to help fill in that missing feature.
HD Schellnack
Zane Mccaig Dear Zane, to me it's the ONE thing missing. Maybe check out Ellie, more or less quite inspired by Sunsama and lacking some of your features, but with a basic Analytics-Section that is the missing link to me. MCP / Sunny would be somewhat palliative, if the API can give the AI access to the tracked time we can find a workaround, but a small Analytics-Section would be a game changer. I can see that making Sunsama a teams thing is quite a task, but going from Pomodoro-Timer to actual time tracking to making that tracked time useful doesn't feel that hard as I hope that somewhere the tracked time is logged and stored and should be accessible?
Also, I think that «how you spent your time» fits seamlessly into the mindful spirit of Sunsama.
Another thing to check out is Daniel Gräfes TIMING-App, the dev of the fabulous CoTypist, which could be well worth considering an integration.
Especially as the automatic collection of «what you did all day» is perfect for the Sunsama-Spirit of focus and energy.
Maybe you don't have to do it all by yourself but just consider integrations and collaborative solutions? ;-)
Photo Viewer
View photos in a modal
HD Schellnack
Zane Mccaig And thanks for the hint with the comment section. I AM BLIND! I searched for this in the «Notes» section of a task. Many thanks for that nudge, that's really really great :-D.
Zane Mccaig
HD Schellnack The one time tracking service we do integrate with is Toggl. I have personally never used them so I am not sure what kind of features they have that might fit your use case but that coul be something worth taking a look at.
Otherwise thanks for all the feedback. Since we are a very small team we have to pick and choose the features we work on. I really do hope we can figure out the analytics stuff one day though.
Rob Di Toro
This is great so far. I only keep running into one hurdle:
The
timebox_a_task_to_calendar
MCP tool bypasses the per-calendar 'Timeboxing channel' mapping (from the settings) that the Sunsama UI correctly honours. When timeboxing via MCP, tasks always land on the 'default calendar for tasks' regardless of their assigned channel.Could timebox_a_task_to_calendar respect the channel calendar mapping that the Sunsama UI already honours, or alternatively expose an optional method or parameter so we can specify that we intend on using that mapped calendar?
(Or am I missing something?)
(Edit: Initially I thought it was only the Sunsama built-in calendar but then I realised it was the default calendar for tasks as per the settings)
Zane Mccaig
Rob Di Toro: Thanks for mentioning this. I filed a bug report to get this fixed.
Zane Mccaig
FYI Rob Di Toro this has been fixed.
Michael Cage (Private)
Feature Request: Expose Timer / Time Spent via MCP
One of the most valuable AI use cases for us is seeing the relationship between ACTUAL time spent on a task and a) the estimate, and b) the category of task being worked on. But I can't find anyway to access the actual time worked -- or, alternatively, the actual timebox that the task fit inside of prior to completion.
Are we missing something or is this not exposed in the MCP?
If it isn't, can this be added? This is actually the "killer feature" that keeps us on Sunsama, but having it in the MCP is critical to make it all work.
Thanks!
Zane Mccaig
Michael Cage (Private): Right now you can start and stop the timer and see which task is currently being timed but the actual time records are not yet exposed. It is on the radar though.
HD Schellnack
Zane Mccaig Not being able to get to the actual tracked time of tasks is a big problem of Sunsama (that and working in – small – teams. What I miss most is an integrated way to see the time I worked on a Channel or task. I thought that MCP would be a workaround to that, but he only can show me the «estimated» time so far. If and when Sunsame gets the ability to move tasks between team members and KEEP the actual times as well as some way to get the tracked time out as a CSV or something else, it will be awesome. The Sunsama...er... lookalike Ellie shows how nice such analytics of work time could be. But frankly, I would just be happy to see how much time I spend on the tasks in the channel #bob. in April :-D
Zane Mccaig
HD Schellnack thanks for the feedback. There are a few more things on our backlog to implement first but adding actual time is still on our list.
Brandon Watkins
Zane Mccaig would also love if actual time was available!
Chi Zhang
Feature Request: Expose channel list and hierarchy via MCP
Hi Sunsama team, loving the MCP server, it's very useful!
One thing I ran into: there is currently no way to fetch the list of channels (or their hierarchy) through MCP. The only way to discover which channels a user has is to fetch tasks for a given day and extract the channel strings from each task — which means agent only see channels that happen to have tasks on that specific day, and you get no hierarchy information.
What I would love to see:
- A sunsama://channelsresource (or similar) that returns the full list of a user's channels, ideally with parent/child relationships so the hierarchy (e.g., personal > study, personal > travel) is preserved.
A dedicated channels resource would make it straightforward to give an agent a better view of the tasks and channels.
Thanks for the great work on the MCP — looking forward to seeing it mature!
Mark Grandjean
This is amazing. It would be great to be able to add a url so that tasks can be imported / linked to todoist tasks
Zane Mccaig
Mark Grandjean: This is very much on our radar. Thanks for the feedback. FYI for the time being we are recommending users to tell their LLM to add the URL into the notes field while creating the task
S
Søren Knudsen
Feature request: expose streams/channels list
Currently the official MCP server has no way to enumerate streams (channels). add_task_to_channel accepts a channel name and does fuzzy matching, but consumers — especially LLM agents — can't see what channels exist to match against. The result is hallucinated names, silent fuzzy mismatches, and workflows that have to reach for community MCP servers just to discover the catalog.
Use cases blocked or degraded:
Channel assignment by agents. Without a stream list, an LLM has to guess channel names from context. With it, the agent can pick a precise match instead of relying on fuzzy lookup (e.g. "personal" could match "Personal projects" or "personal life" — no way to know which).
Dashboards and digests grouped by channel. Rendering channel-grouped task views needs names, parent categories, and colors. Without the catalog, the data is there but the labels aren't.
Caching stream IDs for repeat use. Workflows that want to assign tasks by exact stream ID currently have to discover IDs out-of-band, either via a community MCP server or by manual copy-paste from the UI.
Suggested surface:
A read-only resource fits naturally alongside the existing ones:
sunsama://streams
Returns an array of stream objects with at minimum:
- _id
- streamName
- category and categoryStreamId (for the category → sub-stream hierarchy)
- color
- personal / private flags
Several community MCP servers already expose this shape via a get-streams tool, and it has held up well in practice.
Why it should be a small change:
The data already powers the Sunsama UI's channel picker. Read-only, idempotent, fits the existing resource pattern (sunsama://me, sunsama://backlog/folders, etc.). No design tradeoffs around mutation or filtering to litigate.
Thanks for the active work on this server — the recent additions have been useful.
Zane Mccaig
Søren Knudsen: This is fair. We settled on the fuzzy search stuff as a workaround to avoid enumeration of an unbounded set like the channels. Realistically in practice it would be a pretty small set though so having a way to enumerate them seems reasonable. Another option we could do would be to create a "search channel" tool so that LLMs can search for semantically similar channels before assigning them. In practice that would effectively solve the issue regardless of the number of channels.
Either way this should definitely be something we make possible. Thanks for your input.
S
Søren Knudsen
Zane Mccaig Great! I think the search approach would work well for simpler cases. However, having built Claude skills (yes, plural) around unofficial Sunsama MCP's, I do see value in being able to get all current channels.
For example, when starting chat sessions that appear to be real tasks, I have setup Claude to load a skill (using "Instructions for Claude"). The skill then uses AskUserQuestion to ask whether I want to start the Sunsama timer on a task from today/a new task with a context and time suggestion. The context only works because the skill already have the channel knowledge so doesn't need another MCP round-trip.
Anyway, thanks for responding and curious to see where this might land.
M
Morten Pettersen
I have tested the MCP heavily with n8n, and it is working perfectly. It works well with Grok and Mistral, and it's simply awesome when used with Claude. However, when trying to use it with Gemini, I get this error:
[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:streamGenerateContent?alt=sse: [400 Bad Request] Invalid JSON payload received. Unknown name "type" at 'tools[0].function_declarations[3].parameters.properties[1].value': Proto field is not repeating, cannot start list. Invalid JSON payload received. Unknown name "type" at 'tools[0].function_declarations[13].parameters.properties[1].value': Proto field is not repeating, cannot start list. [{"@type":"type.googleapis.com/google.rpc.BadRequest","fieldViolations":[{"field":"tools[0].function_declarations[3].parameters.properties[1].value","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[0].function_declarations[3].parameters.properties[1].value': Proto field is not repeating, cannot start list."},{"field":"tools[0].function_declarations[13].parameters.properties[1].value","description":"Invalid JSON payload received. Unknown name \"type\" at 'tools[0].function_declarations[13].parameters.properties[1].value': Proto field is not repeating, cannot start list."}]}]
It happens whenever the Sunsama MCP is connected to the AI node. Whether it's used or not seems to be irrellevant.
Zane Mccaig
Morten Pettersen: hmm that is odd. It sounds like something in n8n might not be converting the tools to gemini's expected format.
One thing I did notice that gave me some pause is that your url says 'alt=sse' which might not be relevant at all but it is worth noting that our MCP server does not support sse. I think that would only really cause a problem is n8n was getting geminit to connect directly to our MCP rather than passing the tools into it (not really sure if that is even possible or not).
It is also worth mentioning that we use Gemini for Sunny with our MCP server so we do know that it works well through our setup. We use the AI sdk from vercel FYI https://ai-sdk.dev/.
Michael Crinnion
Has anybody got this MCP server working successfully with N8N? I've been able to add the credential and authorise via OAuth but I'm struggling creating or listing any tasks. I'm getting a 404. Am I missing some documentation somewhere?
Zane Mccaig
Michael Crinnion: 404 sounds like a pretty unexpected error since MCP tools generally return plain english errors not status code errors. Can you reach out to support either in the in-app chat or at support@sunsama.com and share your network logs. We can try and help you debug the issue.
Michael Crinnion
Zane Mccaig I agree. Especially as the oauth is going through. I've given up with n8n for now. I have managed to get it working with OpenWebUI but the authentication doesn't stick and I end up going through the process every time I want to use it. Likely something in my setup but equally not having this issue with other MCP servers. I'll send full details via email when we back at work. Thanks 🙏☀
Zane Mccaig
Michael Crinnion I wonder if that OpenWebUI issue is because it is not properly picking up the new refresh tokens after refreshing the access token the first time. We rotate the refresh token after each refresh so that a leaked refresh token is less risky. They should pick up the new token but if they have not implemented that on their side it would act as you say.
Stephen Gardner
MCP is working well. Any option for an outbound webhook when a task is completed, moved, a comment is added, etc.? My AI agent can now create and manage tasks and look things up, but there isn't a way to trigger a response when something happens in Sunsama to complete the loop.
Zane Mccaig
Stephen Gardner we do not have any webhooks setup but we do technically support websocket transports. Websocket transports did not really pick up traction or make it into the MCP spec but there are some implementations floating around for them. You could also write a custom websocket transport as well.
We will likely retain support for the websocket transport for a while yet since we use it for our voice version of Sunny at the moment. No guarantees that it will remain in there though since the MCP spec has moved in another direction.
Load More
→
Photo Viewer
View photos in a modal