Sandtime.io MCP Server
The Model Context Protocol (MCP) lets AI clients like Claude Code and Codex talk to Sandtime.io directly. Connect once and create, review, and report on time entries from the tools you already use.
What is MCP?
The Model Context Protocol is an open standard for connecting AI assistants to external tools and data. The Sandtime.io MCP server exposes your time tracking workspace - activities, projects, reports, timesheets, and more - as a set of tools an assistant can call on your behalf.
Read actions return clean, materialized data with formatted durations and local times. Destructive actions, like deleting a project or removing a member, deliberately hand off to a human by returning a deep link to the right page in the app.
New to logging time from your editor? See how developers use Sandtime.io day to day.
What you can ask
Talk to your assistant in plain language. It resolves the right user, project, and dates, then calls the tools for you.
Connect with Claude
Add the Sandtime.io server to your MCP client configuration. In Claude Code this lives in an .mcp.json file:
{
"mcpServers": {
"sandtime": {
"type": "http",
"url": "https://mcp.sandtime.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-Sandtime-Organization": "your-organization"
}
}
}
}Where it runs
One HTTP server, every AI surface you use. Connect once and work from wherever you already are.
Claude Code
Add the server to your .mcp.json and log time from the terminal where you ship code.
Claude Desktop
Connect the server and ask the desktop app to track and report your time.
Codex
Wire the server into Codex and turn coding sessions into clean time records.
Any MCP client
Any client that speaks the Model Context Protocol and supports HTTP servers with custom headers can connect.
Available tools
The server exposes more than 30 tools across your whole workspace. Assistants chain them together - for example, resolving the current user, checking the calendar, then filling empty days.
Activities
list_activitiesList time entries, filtered by user, project, or a whole week. Returns formatted durations and local times.get_activityGet the full details of a single time entry by its ID.create_activityLog a new time entry on a project, with automatic overlap detection against existing entries.update_activityEdit a time entry's name, times, project, or billable status, or stop and resume a running timer.delete_activityPermanently remove a time entry. Requires ownership or administrator permissions.stop_activityStop a running timer by setting its end time to now.
Projects
list_projectsList the projects in your organization, optionally including archived ones.get_projectGet detailed information about a specific project.create_projectCreate a new project. Requires administrator permissions.update_projectRename a project, change its billable default, archive it, or edit its notes.delete_projectReturns a deep link to the project settings, where a human confirms the deletion.
Project members
list_project_membersList the members assigned to a specific project.add_project_memberReturns a deep link to the project members section, where a human adds the member.remove_project_memberReturns a deep link to the project members section, where a human removes the member.
Users
list_usersList the users in your organization.get_userGet detailed information about a specific user.get_current_userGet the caller's ID, timezone, and the server-resolved current date and week. Usually the first call in a workflow.create_userReturns a deep link to the member invite page.update_userReturns a deep link to the user profile page.
Organization
get_organizationGet information about your organization, including its settings.update_organizationReturns a deep link to the organization settings page.
Calendar
get_calendarGet a server-computed calendar with workdays, expected hours, weekends, and public holidays. The source of truth before logging time across days.
Reports
list_reportsList the saved reports in your organization.get_reportGet the details of a specific report.create_reportBuild a saved report with custom dimensions, metrics, periods, and project or member filters.
Timesheets
get_timesheet_statusCheck the lock status of timesheets for a specific week.lock_timesheetLock a week's timesheet for a user. Requires administrator permissions.unlock_timesheetRemove an existing timesheet lock. Requires administrator permissions.
Requests
list_requestsList approval requests such as timesheet unlocks and role changes. Defaults to pending requests.request_timesheet_unlockAsk an administrator to unlock a locked week so the timesheet can be edited.approve_unlock_requestApprove a pending unlock request, giving the user a short window to edit. Requires administrator permissions.reject_unlock_requestReject a pending unlock request. The user is notified.
Summary and analytics
get_time_summarySummarize tracked time over a period, grouped by day, week, month, project, or user.
Try the AI features free
The MCP server and Sandbot are free for eligible organizations during early access. Tell us about your team and we will switch it on.
See the early access offer