FreeAgent MCP Server
The FreeAgent MCP Server enables interaction with your FreeAgent account for time tracking and timeslip management. You can:
List and filter timeslips by date range, user, task, project, view type, or updated since
Retrieve, create, update, and delete individual timeslips
Start and stop timers associated with specific timeslips
Include nested resources in timeslip listings
Manage OAuth tokens and authentication automatically
Deploy via Node.js directly or using Docker
Provides integration with FreeAgent accounting software, enabling time tracking through timeslips and timers, including listing, filtering, creating, updating, and deleting timeslips, as well as starting and stopping timers.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FreeAgent MCP Server list my timeslips from this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FreeAgent MCP Server
A Claude MCP (Model Context Protocol) server for managing FreeAgent timeslips and timers. This server allows Claude to interact with your FreeAgent account to track time, manage timers, and handle timeslip operations.
Features
List and filter timeslips with nested data
Create new timeslips
Update existing timeslips
Start and stop timers
Delete timeslips
Automatic OAuth token refresh
Comprehensive error handling
Docker support
Related MCP server: freshbooks-mcp-server
Prerequisites
Node.js 18+ (for direct Node.js usage)
Docker & Docker Compose (for containerized usage)
A FreeAgent account with API access
OAuth credentials from the FreeAgent Developer Dashboard
Installation
Option 1: Direct Node.js Installation
Clone the repository:
git clone https://github.com/yourusername/freeagent-mcp.git
cd freeagent-mcpInstall dependencies:
npm installGet your OAuth tokens:
# Set your FreeAgent credentials
export FREEAGENT_CLIENT_ID="your_client_id"
export FREEAGENT_CLIENT_SECRET="your_client_secret"
# Run the OAuth setup script
node scripts/get-oauth-tokens.jsOption 2: Docker Installation
Clone the repository:
git clone https://github.com/yourusername/freeagent-mcp.git
cd freeagent-mcpCreate your environment file:
cp .env.example .env
# Edit .env with your FreeAgent credentialsBuild Docker image:
docker build -t freeagent-mcp .Configuration
Add the server to your MCP settings (typically in %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):
For Node.js Installation:
{
"mcpServers": {
"freeagent": {
"command": "node",
"args": ["path/to/freeagent-mcp/build/index.js"],
"env": {
"FREEAGENT_CLIENT_ID": "your_client_id",
"FREEAGENT_CLIENT_SECRET": "your_client_secret",
"FREEAGENT_ACCESS_TOKEN": "your_access_token",
"FREEAGENT_REFRESH_TOKEN": "your_refresh_token"
},
"disabled": false,
"autoApprove": []
}
}
}For Docker Installation:
{
"mcpServers": {
"freeagent": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "FREEAGENT_CLIENT_ID",
"-e", "FREEAGENT_CLIENT_SECRET",
"-e", "FREEAGENT_ACCESS_TOKEN",
"-e", "FREEAGENT_REFRESH_TOKEN",
"freeagent-mcp"
],
"env": {
"FREEAGENT_CLIENT_ID": "your_client_id",
"FREEAGENT_CLIENT_SECRET": "your_client_secret",
"FREEAGENT_ACCESS_TOKEN": "your_access_token",
"FREEAGENT_REFRESH_TOKEN": "your_refresh_token"
},
"disabled": false,
"autoApprove": []
}
}
}Usage
Once configured, Claude can use the following tools:
List Timeslips
{
"from_date": "2024-01-01", // Start date (YYYY-MM-DD)
"to_date": "2024-03-04", // End date (YYYY-MM-DD)
"updated_since": "2024-03-04T12:00:00Z", // ISO datetime
"view": "all", // "all", "unbilled", or "running"
"user": "https://api.freeagent.com/v2/users/123",
"task": "https://api.freeagent.com/v2/tasks/456",
"project": "https://api.freeagent.com/v2/projects/789",
"nested": true // Include nested resources
}Create Timeslip
{
"task": "https://api.freeagent.com/v2/tasks/123",
"user": "https://api.freeagent.com/v2/users/456",
"project": "https://api.freeagent.com/v2/projects/789",
"dated_on": "2024-03-04",
"hours": "1.5",
"comment": "Optional comment"
}Timer Controls
// Start timer
{
"id": "123"
}
// Stop timer
{
"id": "123"
}Development
Node.js Development
# Build the project
npm run build
# Watch for changes
npm run watch
# Run tests (when implemented)
npm testDocker Development
# Build the Docker image
docker build -t freeagent-mcp .Contributing
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -am 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
FreeAgent for their excellent API documentation
The Claude team for the MCP SDK
Available Tools
7 toolscreate_timeslipC
Create a new timeslip
Inputs: task (required), user (required), project (required), dated_on (required), +2 more.
delete_timeslipC
Delete a timeslip
Inputs: id (required).
get_timeslipC
Get a single timeslip by ID
Inputs: id (required).
list_timeslipsC
List timeslips with optional filtering
Inputs: from_date, to_date, updated_since, view, +4 more.
start_timerC
Start a timer for a timeslip
Inputs: id (required).
stop_timerC
Stop a running timer for a timeslip
Inputs: id (required).
update_timeslipC
Update an existing timeslip
Inputs: id (required), task, user, project, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose with no ambiguity. The tools cover specific actions (create, delete, get, list, start timer, stop timer, update) on the 'timeslip' resource, making it easy for an agent to select the correct tool for any required operation without confusion.
All tool names follow a consistent verb_noun pattern (e.g., create_timeslip, delete_timeslip). The naming is uniform across all tools, using snake_case and clear action verbs, which enhances predictability and readability for agents.
With 7 tools, the count is well-scoped for managing timeslips, covering essential CRUD operations and timer functionality. Each tool serves a distinct and necessary role, making the set neither too sparse nor overloaded for the domain.
The tool set provides complete coverage for the timeslip domain, including full CRUD operations (create, get, list, update, delete) and additional lifecycle features (start and stop timer). There are no obvious gaps, ensuring agents can handle all expected workflows without dead ends.
Maintenance
Related MCP Connectors
timesheet.io MCP server - manage timers, projects, tasks and reports
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
Toggl 2.0 MCP server for tasks, projects, time entries, and workspace operations.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server for Timely time tracking API. Connects Claude Code to your Timely account for reading and creating time entries, projects, tasks, and users.9MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that connects Claude to FreshBooks, enabling reading and management of invoices, clients, expenses, projects, and time entries via natural language.1-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that connects Claude Desktop to your OpenProject instance, allowing you to manage projects, tasks, and time entries through natural language.MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server for the FreshBooks API that lets Claude read and manage invoices, clients, expenses, projects, services, payments, and time entries.-