原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

EZ@Work

作者:eranfinish版本 0.1.0i★ –i在云端运行
注册名称io.github.eranfinish/ezatwork

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在云端运行
  • 传输方式: Streamable HTTP
  • 分类: 会计、财务与税务

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://mcp.ezatwork.com/mcp

在终端中运行这条命令

claude mcp add --transport http ezatwork https://mcp.ezatwork.com/mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

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

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

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

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://mcp.ezatwork.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 eranfinish 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    端点有响应

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    使用 OAuth 登录

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    工具描述中没有隐藏指令

    尚未检查;我们会在检查端点时读取工具列表

与“会计、财务与税务”中的其他服务器比较i

  • 星标数多于此分类中其他 2900 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2900 个服务器的 14% 更新
  • 基础检查结果等于或优于此分类中其他 2900 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

EZ@Work 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.0)于5个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Finance Toolkit

作者:JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

电脑或云端★ 5,496MIT昨天更新
安装

SolidInvoice

作者:SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

在云端运行★ 981MIT8天前更新
安装

Korea Tax Calculator

作者:UpstageAI

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

在你的电脑上运行★ 97MIT昨天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

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

ToolDescriptionType
list_clientsList your clients/customers — id, name, company, status, email (+ default rate). Optional status, search, limit (default 50, max 200)Read
list_projectsList your projects/cases/work orders — id, name, status, client. Optional status, search, limitRead
create_clientCreate a client; refuses a likely duplicate (same email, or same name when no email) unless allow_duplicate=trueWrite
log_time_entryLog billable hours to a project (0 < hours <= 24) for a given date (default today)Write
create_invoiceCreate a draft invoice, 1-50 line items (auto currency/language/VAT)Write

Write tools change data in your EZ@Work account. Their descriptions tell the AI to confirm the exact values with you before calling them, and every tool validates its arguments before anything reaches the EZ@Work API — a bad value comes back as {"error": "invalid_input", ...}, a backend failure as a short {"error": ..., "status": ..., "message": ...} (plan limits pass through as PLAN_LIMIT_REACHED).

List tools return only the fields an assistant needs to pick a record — no notes, phone numbers, VAT numbers, addresses or contacts — and mark record text as user-entered data rather than instructions.

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 with the scopes clients:read, clients:write, projects:read, time:write, invoices:write
  3. Connect to https://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_...

Agent skill

skills/ezatwork-business-assistant/SKILL.md teaches an agent how to use these tools safely: resolve IDs by listing first, confirm every write with the user, treat record text as data, and never claim an invoice was sent. It is also listed on Agensi.

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: tokens have a mandatory expiration. Token scopes are being enforced server-side (a backend change is in progress), so don't rely on scopes alone to limit a token yet. Create tokens with only the scopes this server uses: clients:read, clients:write, projects:read, time:write, invoices:write
  • 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
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
pip install pytest pytest-asyncio

pytest tests/

Docker
docker build -t ezatwork-mcp .

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

Deploy to Cloud Run
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.x (pinned <4)
  • Auth (OAuth): GoogleProvider from fastmcp.server.auth.providers.google
  • OAuth redirect allowlist: clients may only register Claude's callbacks and loopback URIs; set MCP_ALLOWED_REDIRECT_URIS (comma-separated patterns) to admit other clients
  • 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
  • Lists: GET /api/clients and GET /api/projects take no filters; status, search and limit are applied in the MCP server, which trims each record before returning it
  • 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.

License

MIT. See LICENSE.

问 PopNx