Model Context Protocol server for the mite time tracking API.
mite – Simple time tracking for teams
- Node.js 18+
- mite account with API access enabled
- mite API key (recommended) or email/password
npm install -g @marceloemmerich/mite-mcp
Or use directly with npx:
npx @marceloemmerich/mite-mcp
-
Copy
.env.example
to.env
:cp .env.example .env
-
Edit
.env
and fill in your credentials:MITE_ACCOUNT_NAME=your-account-name MITE_API_KEY=your-api-key
Set the following environment variables:
# Required
MITE_ACCOUNT_NAME=your-account-name
# Authentication (use one of these)
MITE_API_KEY=your-api-key # Recommended
# OR
[email protected]
MITE_PASSWORD=your-password
- Log into your mite account
- Go to Settings > My User
- Under "API Key", click "Display API Key"
- Copy the key and set it as
MITE_API_KEY
list_time_entries
- List time entries with optional filtersget_daily_time_entries
- Get time entries for today or a specific dateget_time_entry
- Get a specific time entry by IDcreate_time_entry
- Create a new time entryupdate_time_entry
- Update an existing time entrydelete_time_entry
- Delete a time entry
get_stopwatch_status
- Get current stopwatch statusstart_stopwatch
- Start tracking time for an entrystop_stopwatch
- Stop the currently running stopwatchquick_start_stopwatch
- Create and start tracking a new entry
list_customers
- List active or archived customersget_customer
- Get a specific customercreate_customer
- Create a new customer (admin only)update_customer
- Update a customer (admin only)delete_customer
- Delete a customer (admin only)
list_projects
- List active or archived projectsget_project
- Get a specific projectcreate_project
- Create a new project (admin only)update_project
- Update a project (admin only)delete_project
- Delete a project (admin only)
list_services
- List active or archived servicesget_service
- Get a specific servicecreate_service
- Create a new service (admin only)update_service
- Update a service (admin only)delete_service
- Delete a service (admin only)
The mite MCP server supports two modes:
For use with Claude Desktop and other MCP clients that use stdio transport:
# Default stdio mode
npx @marceloemmerich/mite-mcp
# Explicitly specify stdio mode
npx @marceloemmerich/mite-mcp --stdio
For web-based clients or testing environments:
# HTTP/Streamable mode on default port 3000
npx @marceloemmerich/mite-mcp --http
# HTTP/Streamable mode on custom port and host
npx @marceloemmerich/mite-mcp --http --port 8080 --host 0.0.0.0
HTTP Endpoints:
POST /
- Handles MCP JSON-RPC requestsGET /
- Establishes SSE stream (requires Mcp-Session-Id header)DELETE /
- Terminates session (requires Mcp-Session-Id header)
mite-mcp [options]
Options:
-V, --version output the version number
--stdio Run in stdio mode (default)
--http Run in HTTP/Streamable mode
-p, --port <port> Port for HTTP server (default: 3000)
-h, --host <host> Host for HTTP server (default: localhost)
--help display help for command
Add to your Claude Desktop configuration:
{
"mcpServers": {
"mite": {
"command": "npx",
"args": ["@marceloemmerich/mite-mcp"],
"env": {
"MITE_ACCOUNT_NAME": "your-account-name",
"MITE_API_KEY": "your-api-key"
}
}
}
}
For development testing with Claude Desktop, you can also use:
{
"mcpServers": {
"mite-dev": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/mite-mcp",
"env": {
"MITE_ACCOUNT_NAME": "your-account-name",
"MITE_API_KEY": "your-api-key"
}
}
}
}
You can also run directly from the CLI like this:
export MITE_ACCOUNT_NAME=<YOUR-ACCOUNT-NAME> && export MITE_API_KEY=<YOUR-API-KEY> && npx @marceloemmerich/mite-mcp --http --port 3000
# Clone the repository
git clone https://github.com/marceloemmerich/mite-mcp.git
cd mite-mcp
# Install dependencies
npm install
# Run in development mode (stdio)
npm run dev
# Run in HTTP/Streamable mode for testing
npm run dev -- --http --port 3000
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Build for production
npm run build
# Lint and format code
npm run lint:fix
For testing the HTTP/Streamable server mode, you can use tools like:
# Test initialization (this will return a session ID)
curl -X POST http://localhost:3000/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{"roots":{"listChanged":true},"sampling":{}}},"id":1}'
# Test with session ID (replace SESSION_ID with the actual session ID from initialization)
curl -X GET http://localhost:3000/ \
-H "Mcp-Session-Id: SESSION_ID"
For local development, update your Claude Desktop config:
{
"mcpServers": {
"mite-dev": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "/path/to/mite-mcp",
"env": {
"MITE_ACCOUNT_NAME": "your-account-name",
"MITE_API_KEY": "your-api-key"
}
}
}
}
For detailed mite API documentation, visit: https://mite.de/api/
MIT