Skip to main content
ClaudeWave

MCP server for EZ@Work — manage clients, projects, time tracking, and invoices from Claude through natural conversation. OAuth 2.1 + scoped tokens.

MCP ServersOfficial Registry0 stars0 forksPythonUpdated 3d ago
Install in Claude Code / Claude Desktop
Method: pip / Python · -e
Claude Code CLI
claude mcp add ezatwork-mcp -- python -m -e
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "ezatwork-mcp": {
      "command": "python",
      "args": ["-m", "venv"],
      "env": {
        "MCP_BASE_URL": "<mcp_base_url>",
        "GOOGLE_CLIENT_SECRET": "<google_client_secret>",
        "EZ_MCP_MASTER_TOKEN": "<ez_mcp_master_token>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Install first: pip install -e
Detected environment variables
MCP_BASE_URLGOOGLE_CLIENT_SECRETEZ_MCP_MASTER_TOKEN
Use cases

MCP Servers overview

# EZ@Work MCP Server

Connect [EZ@Work](https://www.ezatwork.com) — all-in-one business management
for freelancers, lawyers, agencies, and service businesses — to Claude, Gemini,
Cursor, and any MCP-compatible AI.

## Tools (v1)

| 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 |

## Setup

### Claude Desktop / Claude.ai (OAuth — recommended)

Settings → Connectors → Add custom connector
- URL: `https://mcp.ezatwork.com/mcp`
- Authentication: OAuth (automatic)

### Claude Code / Cursor / MCP Inspector (API token)

1. Create a free EZ@Work account at https://app.ezatwork.com
2. Generate an API token at https://app.ezatwork.com/settings/api-tokens
3. Connect to `https://mcp.ezatwork.com/mcp` with header `Authorization: Bearer ezw_pat_...`

**Local testing with MCP Inspector:**
```bash
npx @modelcontextprotocol/inspector
```
Connect to `http://localhost:8080/mcp` with header `Authorization: Bearer ezw_pat_...`

## Security

- Your data stays in your EZ@Work account
- OAuth mode: Google identity → EZ@Work account lookup; no credentials stored in the MCP
- API token mode: scoped permissions — grant only what you need; mandatory expiration
- Authorization is verified on every request

## Privacy Policy

https://www.ezatwork.com/privacy

## Universal Design

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.

---

## Development

### Run locally

```bash
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
```

### Run tests

```bash
pip install pytest pytest-asyncio
pytest tests/
```

### Docker

```bash
docker build -t ezatwork-mcp .
docker run -p 8080:8080 -e EZ_API_BASE=https://api.ezatwork.com ezatwork-mcp
```

### Deploy to Cloud Run

```bash
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-unauthenticated` is correct — auth is enforced at the MCP layer (OAuth or API token),
> not at the Cloud Run IAM level.

### Technical notes

- **Transport:** Streamable HTTP (`/mcp` endpoint)
- **Library:** `fastmcp 3.3.1`
- **Auth (OAuth):** `GoogleProvider` from `fastmcp.server.auth.providers.google`
- **Auth (token):** `get_http_headers()` from `fastmcp.server.dependencies`
- **Dual-auth:** OAuth active when `GOOGLE_CLIENT_ID` + `GOOGLE_CLIENT_SECRET` + `MCP_BASE_URL` are set
- **Backend:** `GET /api/users/me` for locale; `GET /api/internal/users/by-email` for OAuth→user mapping
- **Time entries:** `POST /api/timeentry` with `isBillable` field
- **Invoices:** `POST /api/invoices` with computed `dueDate` and `total` per item

---

## Built by

[EZ@Work](https://www.ezatwork.com) — the business OS for independents.
anthropicclaudecrmfreelanceinvoicingmcpmcp-server

What people ask about ezatwork-mcp

What is eranfinish/ezatwork-mcp?

+

eranfinish/ezatwork-mcp is mcp servers for the Claude AI ecosystem. MCP server for EZ@Work — manage clients, projects, time tracking, and invoices from Claude through natural conversation. OAuth 2.1 + scoped tokens. It has 0 GitHub stars and was last updated 3d ago.

How do I install ezatwork-mcp?

+

You can install ezatwork-mcp by cloning the repository (https://github.com/eranfinish/ezatwork-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is eranfinish/ezatwork-mcp safe to use?

+

eranfinish/ezatwork-mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.

Who maintains eranfinish/ezatwork-mcp?

+

eranfinish/ezatwork-mcp is maintained by eranfinish. The last recorded GitHub activity is from 3d ago, with 0 open issues.

Are there alternatives to ezatwork-mcp?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy ezatwork-mcp to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: eranfinish/ezatwork-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/eranfinish-ezatwork-mcp)](https://claudewave.com/repo/eranfinish-ezatwork-mcp)
<a href="https://claudewave.com/repo/eranfinish-ezatwork-mcp"><img src="https://claudewave.com/api/badge/eranfinish-ezatwork-mcp" alt="Featured on ClaudeWave: eranfinish/ezatwork-mcp" width="320" height="64" /></a>

More MCP Servers

ezatwork-mcp alternatives