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 ServersRegistry oficial0 estrellas0 forksPythonActualizado 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
Casos de uso

Resumen de MCP Servers

# 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

Lo que la gente pregunta sobre ezatwork-mcp

¿Qué es eranfinish/ezatwork-mcp?

+

eranfinish/ezatwork-mcp es mcp servers para el ecosistema de Claude AI. MCP server for EZ@Work — manage clients, projects, time tracking, and invoices from Claude through natural conversation. OAuth 2.1 + scoped tokens. Tiene 0 estrellas en GitHub y se actualizó por última vez 3d ago.

¿Cómo se instala ezatwork-mcp?

+

Puedes instalar ezatwork-mcp clonando el repositorio (https://github.com/eranfinish/ezatwork-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar eranfinish/ezatwork-mcp?

+

eranfinish/ezatwork-mcp aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.

¿Quién mantiene eranfinish/ezatwork-mcp?

+

eranfinish/ezatwork-mcp es mantenido por eranfinish. La última actividad registrada en GitHub es de 3d ago, con 0 issues abiertos.

¿Hay alternativas a ezatwork-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega ezatwork-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

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>

Más MCP Servers

Alternativas a ezatwork-mcp