Gauge

io.github.seayniclabs由 GitHub 帳號 seayniclabs 發布v0.2.1更新於 Nov 3, 2026

Website analytics (Umami) and email (Resend) for an AI assistant, as one MCP bundle.

已驗證STDIO僅桌面溝通與協作資料與分析

概覽

AI 產生的概覽

Gauge 把 Umami 網站分析與 Resend 郵件工具打包給 AI 助理,寄送需使用者核准,並附帶技能提示。

可以做什麼
  • 列出 Umami 中追蹤的網站,讀取指定日期範圍的瀏覽量、訪客與跳出等總計
  • 依時間查看頁面瀏覽量與工作階段趨勢
  • 依頁面路徑、來源、國家、瀏覽器、作業系統、裝置、事件等維度取得排名明細
  • 預覽並經使用者核准後透過 Resend 寄送郵件,列出已寄出的郵件
  • 列出 Resend 寄件網域及其驗證狀態
  • 查看已啟用的模組、缺少的設定以及各工具的用途
適用情境
適合希望助理直接回答自家網站流量問題、產出每週分析報告,或在對話中透過 Resend 撰寫、寄送與檢視郵件的情況。已在使用 Umami(自架或 Cloud)和/或 Resend 的人最合適。
執行需求
在本機執行 Python 3.11 以上,透過 uvx 或 pip 安裝 gauge-mcp;可選在本機以 HTTP 方式執行。設定來自環境變數或 ~/.config/gauge/config.toml:GAUGE_UMAMI_URL 搭配 GAUGE_UMAMI_USERNAME 與 GAUGE_UMAMI_PASSWORD,或改用 GAUGE_UMAMI_API_KEY;郵件需 GAUGE_RESEND_API_KEY 與 GAUGE_RESEND_FROM。需能連線你的 Umami 位址與 api.resend.com。
安裝前請注意
會處理密鑰:GAUGE_UMAMI_PASSWORD、GAUGE_UMAMI_API_KEY、GAUGE_RESEND_API_KEY。resend_send 會寄出真實郵件,核准請求透過 MCP 用戶端彈出;無法詢問的用戶端會拒絕寄送,除非以 GAUGE_RESEND_ALLOWED_RECIPIENTS 預先核准收件者,或設 GAUGE_RESEND_REQUIRE_CONFIRM=false 關閉確認,後者會讓助理自行寄送。核准、拒絕與被拒的寄送會記錄在本機日誌。建議使用唯讀 Umami 帳號與僅能寄信的 Resend 金鑰。

安裝

在 SourceWeft 中

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

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Gauge

Made by Seaynic Labs. Need tools like this built around your own systems? We do that.

Gauge lets an AI assistant read your website's Umami analytics and send email through Resend, and comes with skills that teach it to do that work well: weekly reports, copy, SEO and email.

It is a bundle: tools, skills and instructions in one install. The tools are one server made of modules. You switch on the modules you use. New modules arrive switched off, so an update never changes what your assistant can do until you choose to.

Security card
NetworkOnly the services you configure: your Umami address (or api.umami.is) and api.resend.com. Nothing else, no telemetry.
FilesReads its config file (/.config/gauge/config.toml). Writes one local approval log (/.local/state/gauge/approvals.jsonl).
SecretsAPI keys and passwords come from your environment or config file. They are never tool arguments and never returned to the model.
Read-only tools7: umami_websites, umami_stats, umami_pageviews, umami_metrics, resend_emails, resend_domains, gauge_modules
Needs your approvalresend_send: you approve each send in your app, or pre-approve recipients in settings. The AI cannot approve for you.
Startup costabout 4,700 tokens (8 tools, 9 skill prompts)
ChangesTool descriptions are locked by hash (tool-manifest.lock.json); CI fails if they change silently.
ModuleWhat it doesStatus
umamiWeb analytics from Umami, self-hosted or Umami Cloud: sites, totals, time series, top pages, referrers, countries, browsers0.1
resendEmail through Resend: send (preview first), list sent mail, list sending domains0.1

Gauge works with any MCP client: Claude Desktop, Claude Code, Cursor, VS Code, Sonique, Hermes, OpenClaw and others. It runs on your computer and stores nothing; your data stays in Umami and Resend.

Skills

Skills are short guides your assistant reads before doing a job. Gauge ships 9, in two forms from one source: a skills/ folder for apps that read Agent Skills (Claude Code and others), and MCP prompts for every other MCP app.

SkillWhat it coversBy
getting-startedSetup, first checks, fixing errorsSeaynic Labs
weekly-site-reportA one-minute weekly traffic report from UmamiSeaynic Labs
analytics, seo-audit, copywriting, emailsTracking plans, SEO audits, page copy, email sequencesCorey Haines, MIT
resend, email-best-practices, react-emailSending with Resend, deliverability, HTML emailResend, MIT

Third-party skills keep their licenses; see CREDITS.md.

Install

Gauge needs Python 3.11 or newer. With uv you don't install anything ahead of time:

bash
uvx gauge-mcp --versionuvx gauge-mcp --doctor          # checks your settings and connections, prints fixes

Pin the exact version if you want updates only when you choose them: uvx gauge-mcp==0.2.1.

Or with pip:

bash
pip install gauge-mcp

As a Claude Code plugin (tools and skills in one step):

/plugin marketplace add seayniclabs/plugins/plugin install gauge@seayniclabs

Plugin users put settings in ~/.config/gauge/config.toml (below).

Settings

Set these as environment variables in your MCP client's config, or put them in a config file (see below). You only need the settings for the modules you use. Gauge starts without any of them and tells you what's missing when you call a tool.

VariableModuleWhat it is
GAUGE_UMAMI_URLumamiYour Umami address, e.g. https://analytics.example.com
GAUGE_UMAMI_USERNAME / GAUGE_UMAMI_PASSWORDumamiA self-hosted Umami login. A view-only user is enough.
GAUGE_UMAMI_API_KEYumamiUmami Cloud API key (instead of a login). GAUGE_UMAMI_URL defaults to Umami Cloud when this is set.
GAUGE_RESEND_API_KEYresendResend API key
GAUGE_RESEND_FROMresendSender address on a domain you verified in Resend
GAUGE_RESEND_FROM_NAMEresendOptional sender display name
GAUGE_RESEND_ALLOWED_RECIPIENTSresendOptional. Comma-separated addresses or @domains the assistant may send to without asking you each time, e.g. [email protected],@example.com
GAUGE_RESEND_REQUIRE_CONFIRMresendtrue by default: you approve each send. false lets the assistant send on its own.
GAUGE_<MODULE>_ENABLEDanyfalse turns a module off, e.g. GAUGE_RESEND_ENABLED=false

Config file (optional). Gauge also reads ~/.config/gauge/config.toml, or the file named by GAUGE_CONFIG. Environment variables win over the file.

toml
[umami]url = "https://analytics.example.com"username = "viewer"password = "change-me"
[resend]enabled = false

Add it to your MCP client

Most clients use the same JSON shape. Put it where your client keeps MCP servers:

json
{  "mcpServers": {    "gauge": {      "command": "uvx",      "args": ["gauge-mcp"],      "env": {        "GAUGE_UMAMI_URL": "https://analytics.example.com",        "GAUGE_UMAMI_USERNAME": "viewer",        "GAUGE_UMAMI_PASSWORD": "change-me",        "GAUGE_RESEND_API_KEY": "re_your_key",        "GAUGE_RESEND_FROM": "[email protected]"      }    }  }}
ClientWhere the config goes
Claude Desktopclaude_desktop_config.json (Settings → Developer → Edit Config)
Claude Codeclaude mcp add gauge -- uvx gauge-mcp, then add the env values, or a project .mcp.json
Cursor~/.cursor/mcp.json, or .cursor/mcp.json in a project
VS Code.vscode/mcp.json, using "servers" instead of "mcpServers"
Sonique, Hermes, OpenClaw, othersAny client that launches a stdio MCP server: command uvx, args ["gauge-mcp"], plus the env values

Over HTTP. For clients that connect to a URL instead of launching a process:

bash
gauge-mcp --transport http --port 8765

It serves streamable HTTP at http://127.0.0.1:8765/mcp. It listens only on your own machine by default. Put authentication in front of it before exposing it anywhere else.

Try these

Paste one into your assistant once Gauge is set up:

  1. "How did my site do last week compared with the week before?"
  2. "Which pages got the most visits this month, and where did those visitors come from?"
  3. "Write my weekly site report and draft it as an email to me. Don't send it yet."
  4. "Audit the SEO of my top three pages and suggest new titles and descriptions."
  5. "Which of my Resend sending domains aren't verified yet, and what do I need to fix?"

Tools

ToolWhat it returns
gauge_modulesWhich modules are on, which settings are missing, and what each tool does. Call this first.
umami_websitesTracked websites, paged
umami_statsPageviews, visitors, visits, bounces and bounce rate for a date range
umami_pageviewsPageviews and sessions over time
umami_metricsA ranked breakdown: type = path (top pages), referrer, country, browser, os, device and more
resend_sendSends an email after you approve it. Without confirm=true it only returns a preview.
resend_emailsSent emails, paged with a cursor
resend_domainsSending domains and whether each is verified

Every tool returns structured data with a published schema, so an assistant can write code against the results instead of reading text. Date ranges take days (default 7) or ISO 8601 start and end. Errors always look like gauge.<module>.<code>: <message> Fix: <hint>.

Safety

  • Gauge only calls the services you configure. It sends nothing anywhere else and keeps no data.
  • resend_send sends real email, so you approve each one, not the assistant. When the assistant asks to send, Gauge asks you directly through your MCP client (MCP elicitation) and shows the sender, recipients and subject. The assistant can't answer that question for you.
  • Some MCP clients can't ask you questions yet. In those, Gauge refuses to send unless you've pre-approved the recipients with GAUGE_RESEND_ALLOWED_RECIPIENTS, or turned approval off with GAUGE_RESEND_REQUIRE_CONFIRM=false.
  • Give Gauge the least access it needs: a view-only Umami user, and a Resend key limited to sending if you don't need the other email tools.

Develop

bash
uv venv && uv pip install -e '.[dev]'.venv/bin/pytest

Security

Report a vulnerability privately through GitHub (Security tab, "Report a vulnerability"). See SECURITY.md. Every send you approve, decline or that gets refused is logged locally in ~/.local/state/gauge/approvals.jsonl (recipients and subject, never the message body). Set GAUGE_APPROVAL_LOG to move it.

License

MIT. Published by Seaynic Labs. Third-party skills are credited in CREDITS.md and keep their own licenses.


Built by Seaynic Labs. We build tools like this around a business's own systems: local-first, with a person approving every change. See custom integrations.

來源:README.md,提交 9d43153

工具

8

umami_websites

List websites tracked in Umami. Paged: page starts at 1, page_size up to 100.

輸入參數pagepage_size

umami_stats

Totals for one website. Range: last `days` days, or ISO 8601 `start`/`end`.

輸入參數enddaysstartwebsite_id必填

umami_pageviews

Pageviews and sessions over time. unit: minute, hour, day, month or year.

輸入參數enddaysunitstarttimezonewebsite_id必填

umami_metrics

Ranked breakdown, highest count first. type: path (top pages), referrer, entry, exit, title, country, region, city, browser, os, device, language, screen, event, utmSource, hostname.

輸入參數enddaystypelimitstartoffsetsearchwebsite_id必填

resend_send

Send an email from the configured sender. Without confirm=true it only returns a preview. With confirm=true the person is asked to approve it (unless the recipients are pre-approved in settings); the assistant cannot approve on their behalf.

輸入參數to必填htmltextconfirmsubject必填reply_to

resend_emails

List sent emails, newest first. Page with after=<next_after from the previous page>.

輸入參數afterlimit

resend_domains

List sending domains and whether each is verified.

無需輸入參數。

gauge_modules

Which modules are on, what settings are missing, and what each tool does. Pass a module name for its full settings list.

輸入參數module

版本歷史

1
  1. v0.2.1最新Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分