Clockodo Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Clockodo Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A TypeScript-based Model Context Protocol (MCP) server that integrates with the Clockodo time tracking API. This server provides comprehensive access to your Clockodo data through the standardized MCP protocol, enabling Claude Desktop and other MCP clients to interact with users, time entries, and projects from your Clockodo instance.
git clone <repository-url>
cd clockodo-tsnpm installcp .env.example .env.env (see Configuration)npm run buildCreate a .env file in the project root with your Clockodo credentials:
[email protected]
CLOCKODO_API_KEY=your-api-key-hereCLOCKODO_EMAILFor development with live TypeScript compilation:
npm run devBuild and run the compiled server:
npm run build
node build/index.js#### Claude Desktop
Add to your Claude Desktop MCP configuration:
{
"mcpServers": {
"clockodo": {
"command": "node",
"args": ["/absolute/path/to/your/clockodo-ts/build/index.js"],
"env": {
"CLOCKODO_EMAIL": "[email protected]",
"CLOCKODO_API_KEY": "your-api-key"
}
}
}
}Or using your existing .env file:
{
"mcpServers": {
"clockodo": {
"command": "node",
"args": ["/absolute/path/to/your/clockodo-ts/build/index.js"],
"cwd": "/absolute/path/to/your/clockodo-ts"
}
}
}Note: Replace /absolute/path/to/your/clockodo-ts with the actual absolute path to your project directory.
#### MCP Inspector
For development and testing:
npx @modelcontextprotocol/inspectorConfigure with:
npx tsx /absolute/path/to/your/clockodo-ts/src/index.ts/absolute/path/to/your/clockodo-tsclockodo://usersExample usage in Claude:
Can you show me all users from my Clockodo instance?clockodo://entries/{userId}/{timeSince}/{timeUntil}userId: Clockodo user ID (number)timeSince: Start date in ISO 8601 format (e.g., 2025-09-01T00:00:00Z)timeUntil: End date in ISO 8601 format (e.g., 2025-09-30T23:59:59Z)Example usage in Claude:
Show me time entries for user 148226 from September 1-30, 2025
What did I work on last week? --clockodoExample URIs:
clockodo://entries/148226/2025-09-01T00:00:00Z/2025-09-30T23:59:59Zclockodo://entries/123/2024-12-01T00:00:00Z/2024-12-31T23:59:59Zclockodo://projectsExample usage in Claude:
Show me all projects from Clockodo
Which projects are currently active?
What's the budget for project "Agile Coaching 2025"?src/
├── index.ts # Main MCP server entry point
├── clockodo.ts # Clockodo API client
build/
├── index.js # Compiled executable
├── clockodo.js # Compiled API clientclockodo-api.lognpm run dev - Start development server with live reloadnpm run build - Build TypeScript to JavaScriptnpm test - Run tests (if implemented)Test your Clockodo API connection directly:
curl "https://my.clockodo.com/api/v3/users?page=1" \
-H "Accept: application/json" \
-H "X-ClockodoApiUser: [email protected]" \
-H "X-ClockodoApiKey: your-api-key" \
-H "X-Clockodo-External-Application: mcp-ts"Test MCP protocol responses:
# List all available resources
echo '{"jsonrpc": "2.0", "method": "resources/list", "id": 1, "params": {}}' | npm run dev
# Test users resource
echo '{"jsonrpc": "2.0", "method": "resources/read", "id": 2, "params": {"uri": "clockodo://users"}}' | npm run dev
# Test projects resource
echo '{"jsonrpc": "2.0", "method": "resources/read", "id": 3, "params": {"uri": "clockodo://projects"}}' | npm run dev
# Test entries resource (replace with actual user ID and dates)
echo '{"jsonrpc": "2.0", "method": "resources/read", "id": 4, "params": {"uri": "clockodo://entries/148226/2025-09-01T00:00:00Z/2025-09-30T23:59:59Z"}}' | npm run devThe server includes comprehensive logging that writes to clockodo-api.log:
To monitor logs in real-time:
tail -f clockodo-api.logThe server includes comprehensive error handling:
All errors are properly formatted as MCP protocol error responses.
"Environment variables are required" error:
.env file exists with correct credentialsdotenv.config() is called before importing other modules"Invalid API response format" errors:
MCP connection issues:
Run with debug output:
DEBUG=* npm run dev[Add your license here]
For issues related to:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.