dotTide
dotTide is a read-only MCP server and command-line tool that gives Claude, Cursor, Codex and other AI agents the numbers for every site you run. It reads Google Search Console and Google Analytics 4 (GA4) across multiple Google accounts, plus WordPress.org, Firefox Add-ons and GitHub stats, and writes a weekly snapshot for scripts and agents.
Nothing gets added to your sites. dotTide only reads numbers you already have, and your keys stay on your Mac.
Why
If your sites sit under different Google accounts, checking them means logging in and out of each one. The weekly check slips to monthly, and any AI agent you ask works from stale numbers. Store numbers for plugins, extensions and repos live in yet more places.
dotTide reads all of it with one read-only key, and answers the same way in Claude, on the command line, and in a weekly JSON file.
What it does
sites: every configured site, which key covers it, and whether Search Console and GA4 access works when you ask.search_queries: clicks, impressions, CTR and average position by query or page, for any date range, with an optional comparison to the previous period.traffic: GA4 sessions by source and medium, with AI assistant referrals (ChatGPT, Perplexity, Copilot, Gemini, Claude and others) counted separately. Only for sites that have GA4.store_stats: live public numbers that need no key: WordPress.org plugins, Firefox Add-ons, GitHub stars.discover: finds every Search Console property and GA4 property the key can read, and writes the profile entries for you.- Weekly snapshot: last full week against the week before, one JSON file per profile, for scripts and agents that read files.
How access works
No site moves to a new Google account. You create one Google service account, and whichever Google account owns a site invites that service account's email:
- Search Console: as a Restricted user.
- GA4: as a Viewer.
The service account can only read, and you can remove it from any site in one click. Its key lives in the macOS keychain.
Quick start
You need macOS and uv. There is nothing to clone: uvx downloads dotTide the first time you run it.
- Write a starter profile, then add a plugin slug, an add-on slug or a GitHub user under
[stores]in it:
uvx dottide init
- Check that it runs. Store numbers need no Google setup at all:
uvx dottide store_stats
-
Set up Google access by following Google setup. It takes about ten minutes, plus a minute per site.
-
Store the key, let dotTide find your sites, and check access:
uvx dottide import-key dottide-main ~/Downloads/<downloaded-key>.json
uvx dottide discover --write
uvx dottide sites
- Connect it to Claude Code:
claude mcp add --scope user dottide -- uvx dottide
To update later, run uvx dottide@latest sites once; after that uvx dottide uses the new version.
Documentation
- Google setup: the service account, click by click, and sharing each site.
- Configuration: profiles, every field, keys and environment variables.
- Using dotTide: each tool and its options, MCP clients, the weekly snapshot and its format, and fixes for common errors.
- Asking an AI agent for your numbers: example prompts for weekly checks, content to refresh, AI referrals and store numbers, plus a saved Claude Code command.
- Connecting AI clients: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Codex, Gemini CLI, Grok, and agents without MCP.
Good to know
- Search Console data settles about three days after the fact, so default ranges end three days ago.
- Every Google scope dotTide asks for is read-only, and no tool can change anything.
- GitHub allows 60 anonymous requests an hour per IP. Set
DOTTIDE_GITHUB_TOKENto a read-only token if you hit the limit.
Contributing
See CONTRIBUTING.md. Security reports go through SECURITY.md.
License
The code is released under the MIT License. The dotTide name and icon are not covered by the license, so please use your own name and icon if you ship a copy.
Metadata
Release files for dottide 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dottide-0.2.0.tar.gz | 75.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dottide-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 94.9 kB
Release files / dottide-0.2.0.tar.gz
| Download URL | dottide-0.2.0.tar.gz |
|---|---|
| Size | 75.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c102fac3cf2637d479acacdc46937b2f71ce2d8add5f3c6bd0ca6825f80318d
|
|
BLAKE2b-256 checksum How to use checksums |
6ffb1906512f88c31c8cde471e61c9c43213d0b1c24e95c79a73c74747c02be9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / dottide-0.2.0-py3-none-any.whl
| Download URL | dottide-0.2.0-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c40fdcb5fb46404122c376187dea7c1507973e408ab40e35b794a47997608963
|
|
BLAKE2b-256 checksum How to use checksums |
e4f1382c2d4fbd711f1cd07c0c6fef247aac99a6730a3c790f69d2560e9f7025
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for dottide 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.