
Peil
app.peil由 peil.app 发布v0.1.5更新于 Oct 31, 2026
Log hours, draft invoices and check where you stand — finance for Dutch freelancers.
概览
Peil 的 MCP 服务器让助手为荷兰自由职业者记录工时、起草发票、登记支出并查看财务状况。
- 可以做什么
- 读取客户、未开票工时、发票、支出,以及应收/逾期/草稿/年初至今概览
- 新增、修改和删除工时记录
- 创建、更新和删除客户
- 按收据添加支出,含荷兰 btw 与类别
- 从未开票工时起草发票,更改状态、编辑、归档或删除,并设置催款邮件文案
- 在密钥允许时发送发票邮件、安排或取消发送、发送付款提醒
- 适用场景
- 适合已在使用 Peil 的荷兰自由职业者,希望通过一句提示完成日常事务:记录工时、把未开票工时变成草稿发票、把收据登记为支出,并询问自己的财务现状。
- 运行要求
- 以 Python 包形式通过 stdio 在本机运行(从源码运行需 Python 3.11 或更高;uvx 或 pipx 可免克隆直接运行)。需要在 Peil 的“设置 → 开发者”中创建带权限范围的 API 密钥,并以 PEIL_API_KEY 传入;PEIL_API_URL 可覆盖 API 基础地址。需要能访问 Peil API 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Peil,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Peil MCP server
mcp-name: app.peil/peil-mcp
Connect Peil to Claude (or any MCP client): log hours, draft invoices from unbilled hours, add expenses from a receipt, and check where you stand — from a prompt.
- Website: https://peil.app
- Docs: https://peil.app/en/docs/mcp
- Source: https://github.com/Luminc/peil-mcp
The server is a pure client of Peil's public API. It authenticates with a scoped API key you create in Peil under Settings → Developer. Keys and this server are free on every plan; what is Pro in Peil (emailing invoices, reminders, recurring invoices) stays Pro over a key too.
Draft-by-default
draft_invoice only ever creates a draft — nothing is sent to your
clients. Sending is a separate tool (send_invoice) that also requires the
separate invoices:send permission on your key. A key without that
permission can never email anything on your behalf.
Tools
Reads (read)
Hours (timesheet:write)
Clients (clients:write)
Expenses (expenses:write)
Invoices (invoices:write)
Client-facing email (invoices:send — irreversible, always confirm first)
1. Create your key
In Peil: Settings → Developer → create a key with the permissions you want.
Start with read + Log hours + Draft invoices (add Add expenses if you
want your assistant to file receipts); leave Send invoices off unless you
truly want an assistant emailing clients. You'll paste this key into
your assistant's config as PEIL_API_KEY below.
2. Install the server
The easy way — no clone, no install:
→ Your launch command is uvx peil-mcp (or pipx run peil-mcp). Skip to
step 3. Everything below is only needed if you're
running from source (e.g. before the first release, or to hack on it).
From source
You need Python 3.11 or newer and a local copy of this mcp-server/ folder.
Check your Python with python3 --version.
Which method? Run
which uv pipxfirst. If you already haveuv, use A — it's the least work. If not,pipx(B) gives you a clean global command. If you have neither and don't want to install tooling, the plain-venvpath (C) works with nothing but the Python that's already on your machine.
Everywhere below, replace /ABS/PATH/TO/mcp-server with the real absolute path
to this folder (run pwd inside it to get it).
A. With uv (no install step)
uv builds and runs on demand — nothing to install first:
→ Your launch command is: uv run --directory /ABS/PATH/TO/mcp-server peil-mcp
Don't have uv? curl -LsSf https://astral.sh/uv/install.sh | sh (macOS/Linux)
or pip install uv.
B. With pipx (isolated global command)
pipx installs the server into its own isolated environment and puts a
peil-mcp command on your PATH:
→ Your launch command is simply: peil-mcp
Don't have pipx? python3 -m pip install --user pipx && python3 -m pipx ensurepath.
C. Plain venv + pip (works with only stock Python)
No extra tooling — just the python3 you already have:
→ Your launch command is: /ABS/PATH/TO/mcp-server/.venv/bin/peil-mcp
(equivalently /ABS/PATH/TO/mcp-server/.venv/bin/python -m peil_mcp).
Use a plain
pip install .(not-e/editable) for running. An editable install relies on a.pthpath hook that can silently fail to load on some setups, givingModuleNotFoundError: No module named 'peil_mcp'. Editable is only needed if you're modifying the server itself — see Local development.
3. Connect your assistant
The only thing that changes between assistants is where the config lives. Every MCP client needs the same three things:
- command — your launch command from step 2
- env —
PEIL_API_KEYset to the key from step 1 - (optional)
PEIL_API_URL— only if you're pointing at a non-production Peil (see Local development); defaults tohttps://api.peil.app/api/v1.
The canonical config block (used by Claude Desktop, Cursor, Windsurf, Cline, and
most others) looks like this — command + args are just your launch command
split on spaces:
Claude Desktop
Edit claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/,
Windows: %APPDATA%\Claude\), add the block above, and restart Claude Desktop.
Claude Code (CLI)
Anything after -- is the launch command. Verify with claude mcp get peil
(look for Status: ✔ Connected) and use /mcp in a session to reconnect.
Cursor
Add the canonical block to .cursor/mcp.json (this project) or
~/.cursor/mcp.json (all projects), then enable peil in
Settings → MCP.
Windsurf
Add the canonical block to ~/.codeium/windsurf/mcp_config.json, then hit
Refresh in the Cascade MCP panel.
Cline / Roo (VS Code)
Open the extension's MCP Servers → Configure panel and add the canonical
block to cline_mcp_settings.json.
VS Code (native Copilot agent mode)
VS Code uses a slightly different shape — servers (not mcpServers) and an
explicit type — in .vscode/mcp.json:
Any other MCP client
Give it the same command + args + PEIL_API_KEY env. The server speaks MCP
over stdio; if a client can launch a stdio command, it can run Peil.
First prompts
Once connected, try:
- "Where do I stand?" →
orientation_snapshot - "Log 6 hours to De Correspondent today for editing work." →
log_hours - "Draft an invoice from my unbilled hours for De Correspondent." →
draft_invoice - "Here's my train ticket, add it as an expense." (with a photo) →
create_expense
With Send invoices left off your key, an assistant can prepare everything but physically cannot email a client — you send from Peil yourself.
Local development
Point the server at a local backend with PEIL_API_URL:
If you're modifying the server, an editable install picks up your changes without reinstalling:
Tests (mocked HTTP, no backend needed — pythonpath = ["src"] in
pyproject.toml makes them independent of the install mechanism):
来源:README.md,提交 643582f
工具
0版本历史
3- v0.1.5最新Oct 10, 2026
- v0.1.4Sep 25, 2026
- v0.1.3Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分