Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Website analytics (Umami) and email (Resend) for your AI assistant, as one MCP bundle.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗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 | |
|---|---|
| Network | Only the services you configure: your Umami address (or api.umami.is) and api.resend.com. Nothing else, no telemetry. |
| Files | Reads its config file ( |
| Secrets | API keys and passwords come from your environment or config file. They are never tool arguments and never returned to the model. |
| Read-only tools | 7: umami_websites, umami_stats, umami_pageviews, umami_metrics, resend_emails, resend_domains, gauge_modules |
| Needs your approval | resend_send: you approve each send in your app, or pre-approve recipients in settings. The AI cannot approve for you. |
| Startup cost | about 4,700 tokens (8 tools, 9 skill prompts) |
| Changes | Tool descriptions are locked by hash (tool-manifest.lock.json); CI fails if they change silently. |
| Module | What it does | Status |
|---|---|---|
umami | Web analytics from Umami, self-hosted or Umami Cloud: sites, totals, time series, top pages, referrers, countries, browsers | 0.1 |
resend | Email through Resend: send (preview first), list sent mail, list sending domains | 0.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 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.
| Skill | What it covers | By |
|---|---|---|
getting-started | Setup, first checks, fixing errors | Seaynic Labs |
weekly-site-report | A one-minute weekly traffic report from Umami | Seaynic Labs |
analytics, seo-audit, copywriting, emails | Tracking plans, SEO audits, page copy, email sequences | Corey Haines, MIT |
resend, email-best-practices, react-email | Sending with Resend, deliverability, HTML email | Resend, MIT |
Third-party skills keep their licenses; see CREDITS.md.
Gauge needs Python 3.11 or newer. With uv you don't install anything ahead of time:
uvx gauge-mcp --version
uvx 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:
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).
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.
| Variable | Module | What it is |
|---|---|---|
GAUGE_UMAMI_URL | umami | Your Umami address, e.g. https://analytics.example.com |
GAUGE_UMAMI_USERNAME / GAUGE_UMAMI_PASSWORD | umami | A self-hosted Umami login. A view-only user is enough. |
GAUGE_UMAMI_API_KEY | umami | Umami Cloud API key (instead of a login). GAUGE_UMAMI_URL defaults to Umami Cloud when this is set. |
GAUGE_RESEND_API_KEY | resend | Resend API key |
GAUGE_RESEND_FROM | resend | Sender address on a domain you verified in Resend |
GAUGE_RESEND_FROM_NAME | resend | Optional sender display name |
GAUGE_RESEND_ALLOWED_RECIPIENTS | resend | Optional. Comma-separated addresses or @domains the assistant may send to without asking you each time, e.g. [email protected],@example.com |
GAUGE_RESEND_REQUIRE_CONFIRM | resend | true by default: you approve each send. false lets the assistant send on its own. |
GAUGE_<MODULE>_ENABLED | any | false 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.
[umami]
url = "https://analytics.example.com"
username = "viewer"
password = "change-me"
[resend]
enabled = false
Most clients use the same JSON shape. Put it where your client keeps MCP servers:
{
"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]"
}
}
}
}
| Client | Where the config goes |
|---|---|
| Claude Desktop | claude_desktop_config.json (Settings → Developer → Edit Config) |
| Claude Code | claude 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, others | Any 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:
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.
Paste one into your assistant once Gauge is set up:
| Tool | What it returns |
|---|---|
gauge_modules | Which modules are on, which settings are missing, and what each tool does. Call this first. |
umami_websites | Tracked websites, paged |
umami_stats | Pageviews, visitors, visits, bounces and bounce rate for a date range |
umami_pageviews | Pageviews and sessions over time |
umami_metrics | A ranked breakdown: type = path (top pages), referrer, country, browser, os, device and more |
resend_send | Sends an email after you approve it. Without confirm=true it only returns a preview. |
resend_emails | Sent emails, paged with a cursor |
resend_domains | Sending 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>.
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.GAUGE_RESEND_ALLOWED_RECIPIENTS, or turned approval off with GAUGE_RESEND_REQUIRE_CONFIRM=false.uv venv && uv pip install -e '.[dev]'
.venv/bin/pytest
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.
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.