EZ@Work

io.github.eranfinishv0.1.0更新於 Oct 7, 2026

Manage clients, projects, time, and invoices in EZ@Work — business management for freelancers.

已驗證Streamable HTTP可網頁執行Business & CommerceProductivity & Workflow

概覽

AI 產生的概覽

將助理連接到 EZ@Work 帳戶,用來列出客戶與專案、記錄計費時數並建立發票草稿。

功能
這個遠端 MCP 伺服器把 AI 助理接入 EZ@Work 業務管理平台,服務對象包括自由工作者、律師、代理商與服務型企業。它提供四個工具:list_clients 與 list_projects 用來讀取客戶與專案(案件或工單);log_time_entry 用來把計費時數寫入專案;create_invoice 用來建立發票草稿,並自動處理幣別、語言與營業稅。術語會依帳戶的業務類型自動調整。
適用情境
當你的客戶、專案與帳務資料已經放在 EZ@Work,並希望助理在不切換應用的情況下查詢客戶或專案、記錄計費時數或準備發票草稿時,適合加入。若業務資料存放在別處,幫助不大。
執行需求
遠端 streamable HTTP 端點 OAuth 登入(Claude Desktop 與 Claude.ai 建議採用),或註冊免費 EZ@Work 帳戶並產生 API 權杖,透過 Authorization: Bearer 標頭傳送。需要能連線到該端點的網路。
安裝前請注意
此伺服器會寫入資料:log_time_entry 記錄計費時數,create_invoice 建立發票草稿,因此用於請款前應先核對紀錄。API 權杖有權限範圍與有效期限,只授予需要的權限並妥善保管權杖。帳戶資料由 EZ@Work 保存,OAuth 模式會把 Google 身分對應到 EZ@Work 帳戶。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 EZ@Work,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ezatwork": {
      "type": "http",
      "url": "https://mcp.ezatwork.com/mcp"
    }
  }
}

README

EZ@Work MCP Server

Connect EZ@Work — all-in-one business management for freelancers, lawyers, agencies, and service businesses — to Claude, Gemini, Cursor, and any MCP-compatible AI.

Tools (v1)

ToolDescriptionType
list_clientsList your clients/customersRead
list_projectsList your projects/cases/work ordersRead
log_time_entryLog billable hours to a projectWrite
create_invoiceCreate 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 .venvsource .venv/bin/activate  # Windows: .venv\Scripts\activatepip 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-asynciopytest 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 — the business OS for independents.

來源:README.md,提交 d5b8907

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026