searchdock-cli 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- searchdock_cli/__init__.py +32 -0
- searchdock_cli/__main__.py +3 -0
- searchdock_cli/_core/THIRD_PARTY_NOTICES.md +228 -0
- searchdock_cli/_core/cli.cjs +101 -0
- searchdock_cli/_version.py +1 -0
- searchdock_cli-0.1.1.dist-info/METADATA +186 -0
- searchdock_cli-0.1.1.dist-info/RECORD +11 -0
- searchdock_cli-0.1.1.dist-info/WHEEL +5 -0
- searchdock_cli-0.1.1.dist-info/entry_points.txt +2 -0
- searchdock_cli-0.1.1.dist-info/licenses/LICENSE +21 -0
- searchdock_cli-0.1.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.1"
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: searchdock-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Google Search Console CLI with agent skills and MCP support. Requires Node.js 22+.
|
|
5
|
+
Author-email: Xplormity Collective <xplormityai@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/xplormityai/searchdock-cli
|
|
8
|
+
Project-URL: Documentation, https://github.com/xplormityai/searchdock-cli#readme
|
|
9
|
+
Project-URL: Issues, https://github.com/xplormityai/searchdock-cli/issues
|
|
10
|
+
Project-URL: Source, https://github.com/xplormityai/searchdock-cli
|
|
11
|
+
Keywords: google-search-console,seo,cli,mcp,search-analytics
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
16
|
+
Requires-Python: >=3.10
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# SearchDock CLI — Google Search Console CLI
|
|
22
|
+
|
|
23
|
+
Read Google Search Console analytics, inspect indexed URLs, and monitor sitemaps from your terminal or AI agent.
|
|
24
|
+
|
|
25
|
+
SearchDock is open source, runs locally, and requests read-only Google access. Use the same core through npm, Python, MCP, a Codex or Claude Code plugin, or a standalone agent skill. **Bing Webmaster Tools support is planned.**
|
|
26
|
+
|
|
27
|
+
## Install
|
|
28
|
+
|
|
29
|
+
Node.js **22 or later** is required for every distribution.
|
|
30
|
+
|
|
31
|
+
Packages: [npm](https://www.npmjs.com/package/searchdock-cli) · [PyPI](https://pypi.org/project/searchdock-cli/).
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
# npm
|
|
35
|
+
npm install --global searchdock-cli
|
|
36
|
+
searchdock --help
|
|
37
|
+
|
|
38
|
+
# No global installation
|
|
39
|
+
npx --yes searchdock-cli@0.1.1 --help
|
|
40
|
+
|
|
41
|
+
# Python; Node.js is still required
|
|
42
|
+
pipx install searchdock-cli
|
|
43
|
+
# Alternatively: python -m pip install searchdock-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The Python package is a launcher containing the exact same JavaScript runtime. It has no separate Google implementation. If you install both packages, use `python -m searchdock_cli` to select the Python launcher explicitly.
|
|
47
|
+
|
|
48
|
+
To run from source:
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
git clone https://github.com/xplormityai/searchdock-cli.git
|
|
52
|
+
cd searchdock-cli
|
|
53
|
+
npm ci
|
|
54
|
+
npm run build
|
|
55
|
+
node dist/cli.cjs --help
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Connect Google Search Console
|
|
59
|
+
|
|
60
|
+
Create a Google OAuth **Desktop app** client in your own Google Cloud project, enable the Search Console API, and download the client JSON. See [Google setup](https://github.com/xplormityai/searchdock-cli/blob/main/docs/google-setup.md) for the steps and testing-mode limits. No shared developer credentials are included.
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
searchdock auth login --client-file /path/to/desktop-client.json
|
|
64
|
+
searchdock sites list
|
|
65
|
+
searchdock sites use sc-domain:example.com
|
|
66
|
+
searchdock auth status
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Google opens a local browser consent flow. SearchDock uses PKCE, validates the callback state, and listens only on `127.0.0.1`. It requests `webmasters.readonly` and keeps the refresh token in your operating system's per-user configuration directory, outside this repository. Credentials are stored as permission-protected local JSON, **not encrypted by SearchDock**. See [privacy](https://github.com/xplormityai/searchdock-cli/blob/main/docs/privacy.md).
|
|
70
|
+
|
|
71
|
+
## Commands
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
# Search performance and top queries
|
|
75
|
+
searchdock analytics --days 28
|
|
76
|
+
searchdock analytics --dimensions page --days 28 --json
|
|
77
|
+
searchdock analytics --dimensions date --start 2026-09-01 --end 2026-09-30
|
|
78
|
+
|
|
79
|
+
# Exact, case-insensitive brand queries
|
|
80
|
+
searchdock analytics --brand "Your Brand" --json
|
|
81
|
+
|
|
82
|
+
# Sitemaps and Google's indexed URL status
|
|
83
|
+
searchdock sitemaps
|
|
84
|
+
searchdock inspect https://example.com/
|
|
85
|
+
|
|
86
|
+
# Combined report, including only the URLs you specify
|
|
87
|
+
searchdock report --urls https://example.com/,https://example.com/about --json
|
|
88
|
+
searchdock report --output ./private-report.json
|
|
89
|
+
|
|
90
|
+
# Multiple accounts/sites
|
|
91
|
+
searchdock auth login --client-file /path/to/client.json --profile work
|
|
92
|
+
searchdock sites use https://example.com/ --profile work
|
|
93
|
+
searchdock analytics --profile work --site https://example.com/ --json
|
|
94
|
+
|
|
95
|
+
# Diagnostics and local credential removal
|
|
96
|
+
searchdock doctor
|
|
97
|
+
searchdock auth logout
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`--json` writes machine-readable results to stdout and errors to stderr with a nonzero exit status. `--output` saves JSON to a **new** file and refuses to overwrite an existing one. Keep private reports out of Git yourself. CSV is not yet supported. For URLs containing commas, use the MCP `urls` array or the JavaScript API for batch inspection.
|
|
101
|
+
|
|
102
|
+
Report windows default to 28 days ending three days before today in **Pacific Time**, to allow for Search Console processing. You can specify exact dates. Finalized data may still lag. Pagination supports up to 100,000 requested rows, but Google's API returns top rows and omits some anonymized query data. Missing rows do not prove zero demand; zero impressions make average position meaningless.
|
|
103
|
+
|
|
104
|
+
## AI agents and MCP
|
|
105
|
+
|
|
106
|
+
SearchDock provides five read-only MCP tools: `searchdock_sites`, `searchdock_analytics`, `searchdock_sitemaps`, `searchdock_inspect`, and `searchdock_report`. Authenticate locally first; MCP tools do not start consent or change account settings.
|
|
107
|
+
|
|
108
|
+
Add this stdio server to any compatible MCP client:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"mcpServers": {
|
|
113
|
+
"searchdock": {
|
|
114
|
+
"command": "npx",
|
|
115
|
+
"args": ["--yes", "searchdock-cli@0.1.1", "mcp"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
For a source checkout, set `command` to `node` and `args` to `["/absolute/path/searchdock-cli/dist/cli.cjs", "mcp"]`. Windows clients that launch `npx.cmd` through a shell may need `command: "cmd"` and `args: ["/c", "npx", "--yes", "searchdock-cli@0.1.1", "mcp"]`. Use your client's Windows configuration guidance.
|
|
122
|
+
|
|
123
|
+
Plugins use the same pinned npm version:
|
|
124
|
+
|
|
125
|
+
```sh
|
|
126
|
+
# Codex CLI
|
|
127
|
+
codex plugin marketplace add xplormityai/searchdock-cli
|
|
128
|
+
codex plugin add searchdock@searchdock
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
In Claude Code:
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
|
+
/plugin marketplace add xplormityai/searchdock-cli
|
|
135
|
+
/plugin install searchdock@searchdock
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
For a standalone skill, copy [`skills/searchdock`](https://github.com/xplormityai/searchdock-cli/blob/main/skills/searchdock) into your agent's skills directory. Codex uses `~/.agents/skills/`; Claude Code uses `~/.claude/skills/`. Install the CLI separately. The setup skill is included in the plugin. The repository includes portable Agent Plugins, Codex and Claude manifests; local stdio plugins are not automatically listed in hosted plugin directories.
|
|
139
|
+
|
|
140
|
+
You can also install the skill with the [open skills installer](https://github.com/vercel-labs/skills):
|
|
141
|
+
|
|
142
|
+
```sh
|
|
143
|
+
npx skills add xplormityai/searchdock-cli --skill searchdock
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
[`server.json`](https://github.com/xplormityai/searchdock-cli/blob/main/server.json) prepares a listing in the MCP Registry under `io.github.xplormityai/searchdock-cli`. Registry publication requires the npm package to be live and namespace authentication; the metadata file alone does not create a listing.
|
|
147
|
+
|
|
148
|
+
## What the Google API can and cannot tell you
|
|
149
|
+
|
|
150
|
+
| Available | Requires Search Console UI or an export |
|
|
151
|
+
| --- | --- |
|
|
152
|
+
| Clicks, impressions, CTR, average position | Request indexing |
|
|
153
|
+
| Top queries/pages and date/device/country breakdowns | Test a live URL |
|
|
154
|
+
| Exact brand-query performance | Full Page indexing exclusions table |
|
|
155
|
+
| Sitemap processing status | Manual actions and security issues |
|
|
156
|
+
| Google's indexed version of specific URLs | Guaranteed current ranking or indexing |
|
|
157
|
+
|
|
158
|
+
SearchDock's report flags returned sitemap errors/warnings, pending processing and non-PASS verdicts for the URLs you inspect. It is not a complete technical SEO audit, and it does not provide invented SEO/AEO/GEO scores.
|
|
159
|
+
|
|
160
|
+
## JavaScript API
|
|
161
|
+
|
|
162
|
+
```js
|
|
163
|
+
import { selectedContext } from 'searchdock-cli';
|
|
164
|
+
|
|
165
|
+
const { adapter, site } = await selectedContext({ profile: 'default' });
|
|
166
|
+
const result = await adapter.analytics(site, { days: 28, dimensions: ['page'] });
|
|
167
|
+
console.log(result.rows);
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The provider registry declares capabilities separately. Bing can be added as an adapter without changing the CLI, MCP or Python distribution model. Provider-specific differences must remain explicit. See [architecture](https://github.com/xplormityai/searchdock-cli/blob/main/docs/architecture.md).
|
|
171
|
+
|
|
172
|
+
## Develop and release
|
|
173
|
+
|
|
174
|
+
```sh
|
|
175
|
+
npm ci
|
|
176
|
+
npm run build
|
|
177
|
+
npm test
|
|
178
|
+
npm run check
|
|
179
|
+
python -m pip install build twine
|
|
180
|
+
npm run release:artifacts
|
|
181
|
+
python -m twine check dist/releases/searchdock_cli-0.1.1-py3-none-any.whl dist/releases/searchdock_cli-0.1.1.tar.gz
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
[Release instructions](https://github.com/xplormityai/searchdock-cli/blob/main/docs/releasing.md) cover npm/PyPI accounts, OIDC trusted publishing, versioning and GitHub release artifacts. Package creation alone does not publish anything.
|
|
185
|
+
|
|
186
|
+
Built by **Xplormity Collective**. [MIT license](https://github.com/xplormityai/searchdock-cli/blob/main/LICENSE).
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
searchdock_cli/__init__.py,sha256=h86OIT3tLUqS-dCVwhgPn4kOUL0RbVfrpeeKKm2CU7U,1112
|
|
2
|
+
searchdock_cli/__main__.py,sha256=BHLi_-4Bx1gsZn-z6x7wECPn1YTxdc74y0deRea9FzY,45
|
|
3
|
+
searchdock_cli/_version.py,sha256=rnObPjuBcEStqSO0S6gsdS_ot8ITOQjVj_-P1LUUYpg,22
|
|
4
|
+
searchdock_cli/_core/THIRD_PARTY_NOTICES.md,sha256=qTN_1AgIbaIu3r-Anmo490He6LCyiNdupLZ5VamF0HM,9385
|
|
5
|
+
searchdock_cli/_core/cli.cjs,sha256=YiJjxSAoytE6Y1cEG-WzFkLGAYrFzmEXK_6GwcR7IwE,373958
|
|
6
|
+
searchdock_cli-0.1.1.dist-info/licenses/LICENSE,sha256=cyErkIQjY70rH_U2x97HnRMJbq5GPRFe5I23B2PROPY,1077
|
|
7
|
+
searchdock_cli-0.1.1.dist-info/METADATA,sha256=dIQu_oot3u91aUzmyjvzRQnIeq83LCMpiGMAbdzO040,8606
|
|
8
|
+
searchdock_cli-0.1.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
9
|
+
searchdock_cli-0.1.1.dist-info/entry_points.txt,sha256=iUGO9GmzGgfxsAk96yPbbYCZEbprbhS-mKqnK_YjOG8,51
|
|
10
|
+
searchdock_cli-0.1.1.dist-info/top_level.txt,sha256=lZ3GQgXeM_oE3OzgvU_aiTNwC65wfLedrMh5G9IBo5I,15
|
|
11
|
+
searchdock_cli-0.1.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Xplormity Collective
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
searchdock_cli
|