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 computer.
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, GA4 and Bing 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.opportunities: what to work on next: queries in striking distance, pages and queries losing clicks, and page-one queries with a low click-through rate for their position.index_health: every sitemap's state, and whether the top pages are in Google's index, with a plain list of problems to fix.core_web_vitals: real-user LCP, INP and CLS with Google's ratings when there's enough data, plus a lab run, from PageSpeed Insights.bing_queries: Bing Webmaster Tools clicks, impressions and position by query. Bing feeds Copilot.discover: finds every Search Console property and GA4 property the key can read, and writes the profile entries for you.- Ready-made prompts: a weekly review, what to work on, and an index check, shown as commands in Claude and other MCP clients.
- 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. Bing is optional and uses one API key from Bing Webmaster Tools that covers all your sites there. Its key lives in your system's secret store: the macOS keychain, Windows Credential Manager or the Linux Secret Service.
Quick start
You need macOS, Windows or Linux, 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
-
Optional: add Bing numbers by following Bing setup. It takes about five minutes.
-
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.
- Bing setup: optional Bing Webmaster Tools numbers with one API key.
- 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.3.1
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.3.1.tar.gz | 92.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dottide-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 123.1 kB
Release files / dottide-0.3.1.tar.gz
| Download URL | dottide-0.3.1.tar.gz |
|---|---|
| Size | 92.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b8e5206b12849d99313fa5a4fe42b905c9cc0abd9324d8a8b45e395a474fca9
|
|
BLAKE2b-256 checksum How to use checksums |
694a5c555cf09e97d1fe93b35ffa351dc21ecf4f5a099f891ab2e6df34f864c8
|
| 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.3.1-py3-none-any.whl
| Download URL | dottide-0.3.1-py3-none-any.whl |
|---|---|
| Size | 30.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
52b386e607f4cedd555321af1c63d88b193766d0c5e59d11c48cd32f4b08c2f3
|
|
BLAKE2b-256 checksum How to use checksums |
84cb0c22c8f2312ca3a375b158fc711f3d09de03139803548f4d1862e093f15f
|
| 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.3.1
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.