Manage clients, projects, time, and invoices in EZ@Work — business management for freelancers.
One address for any MCP client. You sign in at mcp.ezatwork.com once, after adding it.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Your identity | ||
| Userinfo | Not stated: https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile | |
From the sign-in at mcp.ezatwork.com, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
Connect EZ@Work — all-in-one business management for freelancers, lawyers, agencies, and service businesses — to Claude, Gemini, Cursor, and any MCP-compatible AI.
| Tool | Description | Type |
|---|---|---|
list_clients | List your clients/customers | Read |
list_projects | List your projects/cases/work orders | Read |
log_time_entry | Log billable hours to a project | Write |
create_invoice | Create a draft invoice (auto currency/language/VAT) | Write |
Settings → Connectors → Add custom connector
https://mcp.ezatwork.com/mcphttps://mcp.ezatwork.com/mcp with header Authorization: Bearer ezw_pat_...Local testing with MCP Inspector:
npx @modelcontextprotocol/inspector
Connect to http://localhost:8080/mcp with header Authorization: Bearer ezw_pat_...
https://www.ezatwork.com/privacy
EZ@Work adapts to your business type: a lawyer sees "cases," a freelancer sees "projects," a service business sees "work orders." Currency, language (24 supported), and tax rules auto-detect from your profile — no configuration needed in the MCP.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
cp .env.example .env
# Edit .env: EZ_API_BASE=http://localhost:5000 for local backend
python -m ezatwork_mcp.server
# Server starts at http://localhost:8080/mcp
pip install pytest pytest-asyncio
pytest tests/
docker build -t ezatwork-mcp .
docker run -p 8080:8080 -e EZ_API_BASE=https://api.ezatwork.com ezatwork-mcp
gcloud run deploy ezatwork-mcp \
--source . \
--region europe-west1 \
--project ezatwork-production \
--allow-unauthenticated \
--port 8080 \
--update-env-vars "EZ_API_BASE=https://api.ezatwork.com,MCP_BASE_URL=https://mcp.ezatwork.com" \
--update-secrets "GOOGLE_CLIENT_ID=ezmcp-google-client-id:latest" \
--update-secrets "GOOGLE_CLIENT_SECRET=ezmcp-google-client-secret:latest" \
--update-secrets "EZ_MCP_MASTER_TOKEN=ezmcp-master-token:latest"
--allow-unauthenticatedis correct — auth is enforced at the MCP layer (OAuth or API token), not at the Cloud Run IAM level.
/mcp endpoint)fastmcp 3.3.1GoogleProvider from fastmcp.server.auth.providers.googleget_http_headers() from fastmcp.server.dependenciesGOOGLE_CLIENT_ID + GOOGLE_CLIENT_SECRET + MCP_BASE_URL are setGET /api/users/me for locale; GET /api/internal/users/by-email for OAuth→user mappingPOST /api/timeentry with isBillable fieldPOST /api/invoices with computed dueDate and total per itemEZ@Work — the business OS for independents.