search-rotation 0.4.10 → 0.4.11
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.
- package/LICENSE +1 -1
- package/README.md +12 -8
- package/docs/clients.md +4 -4
- package/docs/distribution.md +53 -0
- package/docs/release-notes.md +27 -8
- package/package.json +6 -6
- package/static/index.html +2 -2
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
**One MCP server for web search and page extraction across multiple providers.**
|
|
7
7
|
|
|
8
|
-
Built by [Robin Bially](https://github.com/
|
|
8
|
+
Built by [Robin Bially](https://github.com/robin-bially).
|
|
9
9
|
|
|
10
10
|
Rotate across available quotas, automatically fail over when a provider is unavailable, and return consistent results to your AI assistant. A local dashboard lets you manage API keys, reorder engines, check quotas, and inspect request history.
|
|
11
11
|
|
|
@@ -25,23 +25,25 @@ npx -y search-rotation --http --open
|
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Requires **Node.js 20.3+**. For MCP over stdio, configure your client to run
|
|
28
|
-
`npx -y search-rotation` with no arguments.
|
|
28
|
+
`npx -y search-rotation` with no arguments. The server is also listed in the
|
|
29
|
+
[official MCP Registry](https://registry.modelcontextprotocol.io/?q=io.github.robin-bially%2Fsearch-rotation)
|
|
30
|
+
as `io.github.robin-bially/search-rotation`.
|
|
29
31
|
|
|
30
32
|
### Homebrew
|
|
31
33
|
|
|
32
34
|
```sh
|
|
33
|
-
brew install
|
|
35
|
+
brew install robin-bially/tap/search-rotation
|
|
34
36
|
search-rotation --http --open
|
|
35
37
|
```
|
|
36
38
|
|
|
37
39
|
Homebrew installs the required Node.js runtime. For MCP over stdio, configure your
|
|
38
40
|
client to run `search-rotation` with no arguments. See the
|
|
39
|
-
[
|
|
41
|
+
[Homebrew tap](https://github.com/robin-bially/homebrew-tap) for upgrades and details.
|
|
40
42
|
|
|
41
43
|
### Pinned release from GitHub
|
|
42
44
|
|
|
43
45
|
```sh
|
|
44
|
-
npx -y --allow-git=all github:
|
|
46
|
+
npx -y --allow-git=all github:robin-bially/search-rotation-mcp#v0.4.11
|
|
45
47
|
```
|
|
46
48
|
|
|
47
49
|
Use this when you want a fixed version instead of the current npm release.
|
|
@@ -117,13 +119,15 @@ After updating, reconnect your MCP client to load the new tool schema.
|
|
|
117
119
|
## Releasing
|
|
118
120
|
|
|
119
121
|
```sh
|
|
120
|
-
VERSION=0.4.
|
|
122
|
+
VERSION=0.4.10 ./scripts/release.sh --publish
|
|
121
123
|
```
|
|
122
124
|
|
|
123
|
-
The script checks the package (`npm ci`, build, tests, `npm run smoke:package`), bumps the version, points the document pins at it, commits and tags, packs the tarball with its checksum, creates the GitHub release, updates the formula in `
|
|
125
|
+
The script checks the package (`npm ci`, build, tests, `npm run smoke:package`), bumps the version, points the document pins at it, commits and tags, packs the tarball with its checksum, creates the GitHub release, updates the formula in `robin-bially/homebrew-tap` and finally waits until the npm registry serves the new version. Without `--publish` it only prepares the artifacts in `.build/releases`; `--dry-run` checks the prerequisites, `--draft` creates a draft release and `--force` tolerates a dirty tree. The tap is cloned temporarily when `TAP_DIR` is not set, so a fresh checkout is enough.
|
|
124
126
|
|
|
125
127
|
Publishing to npm happens in [`.github/workflows/publish.yml`](.github/workflows/publish.yml) through trusted publishing once the GitHub release is published, so the script itself needs no npm credentials. The workflow requires a trusted publisher for `search-rotation` on npmjs.com that points at this repository and `publish.yml`.
|
|
126
128
|
|
|
129
|
+
The same workflow registers the version in the official MCP Registry from `server.json`. [Distribution & listings](docs/distribution.md) tracks every channel, who keeps it current, and what each one still needs.
|
|
130
|
+
|
|
127
131
|
## Learn more
|
|
128
132
|
|
|
129
|
-
[Client setup](docs/clients.md) · [Operations & configuration (DE)](docs/operations.md) · [Releases](https://github.com/
|
|
133
|
+
[Client setup](docs/clients.md) · [Operations & configuration (DE)](docs/operations.md) · [Distribution & listings](docs/distribution.md) · [Releases](https://github.com/robin-bially/search-rotation-mcp/releases) · [CI](https://github.com/robin-bially/search-rotation-mcp/actions/workflows/ci.yml) · [MIT license](LICENSE)
|
package/docs/clients.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## Homebrew installation
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
brew install
|
|
8
|
+
brew install robin-bially/tap/search-rotation
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Homebrew installs Node.js automatically. Set your MCP client's command to
|
|
@@ -74,14 +74,14 @@ Add this entry under `mcp.servers`:
|
|
|
74
74
|
|
|
75
75
|
## Local install or release archive
|
|
76
76
|
|
|
77
|
-
If installed locally, use `search-rotation` as the command. A prebuilt archive is also available under [GitHub Releases](https://github.com/
|
|
77
|
+
If installed locally, use `search-rotation` as the command. A prebuilt archive is also available under [GitHub Releases](https://github.com/robin-bially/search-rotation-mcp/releases/latest):
|
|
78
78
|
|
|
79
79
|
```sh
|
|
80
|
-
npm install -g ./search-rotation-0.4.
|
|
80
|
+
npm install -g ./search-rotation-0.4.11.tgz
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
npx installs the package from the npm registry, so no Git access is required. The pinned
|
|
84
|
-
`github:
|
|
84
|
+
`github:robin-bially/search-rotation-mcp#vX` form from the README needs `--allow-git=all`
|
|
85
85
|
instead, because npm 12 resolves Git dependencies only when explicitly allowed.
|
|
86
86
|
|
|
87
87
|
For remote HTTP access, authentication and advanced settings, see the [operations guide (German)](operations.md).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Distribution and listings
|
|
2
|
+
|
|
3
|
+
Where search-rotation is published or listed, who keeps each channel current, and
|
|
4
|
+
what still needs attention. Snapshot: 2026-09-26, after the account rename from `localfoundry` to `robin-bially` and the 0.4.11 release.
|
|
5
|
+
|
|
6
|
+
## Channels
|
|
7
|
+
|
|
8
|
+
| Channel | Entry | Kept current by | State |
|
|
9
|
+
| --- | --- | --- | --- |
|
|
10
|
+
| npm | `search-rotation` | release workflow, trusted publishing | 0.4.10; 0.4.11 blocked by the stale trusted publisher, see below |
|
|
11
|
+
| Homebrew | `brew install robin-bially/tap/search-rotation` | release script writes the formula | 0.4.11 |
|
|
12
|
+
| Official MCP Registry | `io.github.robin-bially/search-rotation` | release workflow, GitHub OIDC | blocked: the registry verifies the npm package, so it needs 0.4.11 on npm first; `io.github.localfoundry/search-rotation` stays live at 0.4.10 because the registry has no unpublish |
|
|
13
|
+
| GitHub releases | tag, tarball and checksum | release script | v0.4.11 |
|
|
14
|
+
| Glama | [directory entry](https://glama.ai/mcp/servers/robin-bially/search-rotation-mcp), rated A | Glama indexes the repository on its own | listed; the account rename is pending a re-crawl |
|
|
15
|
+
| mcpservers.org | [submission](https://mcpservers.org/de/submit) from 2026-09-26 | reviewed by the site | in review, up to two weeks |
|
|
16
|
+
| PulseMCP | — | ingests the official registry | submissions paused, not listed yet |
|
|
17
|
+
| [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers/pull/15171) | Search & Data Extraction | maintainers | pull request open, listing checks done |
|
|
18
|
+
| [YuzeHao2023/Awesome-MCP-Servers](https://github.com/YuzeHao2023/Awesome-MCP-Servers/pull/550) | Search & Web | maintainers | pull request open |
|
|
19
|
+
| [ever-works/awesome-mcp-servers](https://github.com/ever-works/awesome-mcp-servers/pull/188) | Web Search | maintainers | pull request open |
|
|
20
|
+
|
|
21
|
+
Channels that build on the official registry follow a release by themselves, so a
|
|
22
|
+
release needs no manual work for them.
|
|
23
|
+
|
|
24
|
+
## What a release updates
|
|
25
|
+
|
|
26
|
+
`VERSION=x.y.z ./scripts/release.sh --publish` runs the checks, bumps the version,
|
|
27
|
+
commits and tags, creates the GitHub release, packs the tarball with its checksum,
|
|
28
|
+
writes the formula in `robin-bially/homebrew-tap`, and waits until npm serves the
|
|
29
|
+
new version. The published release triggers
|
|
30
|
+
[`.github/workflows/publish.yml`](../.github/workflows/publish.yml), which pushes
|
|
31
|
+
the package to npm with provenance and then registers the same version in the
|
|
32
|
+
official MCP Registry from `server.json` and the `mcpName` field of
|
|
33
|
+
`package.json`.
|
|
34
|
+
|
|
35
|
+
Four details are easy to forget:
|
|
36
|
+
|
|
37
|
+
- `server.json` and `mcpName` must name the same server; `test/registry-manifest.test.ts` fails when they drift apart.
|
|
38
|
+
- The registry limits `description` to 100 characters.
|
|
39
|
+
- The registry verifies ownership through the published npm package, so a manifest can only be registered once that version exists on npm. The workflow skips an already published version, which makes a re-run safe.
|
|
40
|
+
- npm trusted publishing is bound to one repository. The entry for `search-rotation` still named `localfoundry/search-rotation-mcp`, so the 0.4.11 publish failed with `404 Not Found - PUT https://registry.npmjs.org/search-rotation`. Repair with `npm trust github search-rotation --file publish.yml --repo robin-bially/search-rotation-mcp --allow-publish`, then revoke the stale entry (`npm trust list search-rotation`, `npm trust revoke search-rotation --id=<id>`) and re-run the publish workflow. Both commands ask for a one-time password in the browser. The old owner name is free again, so the stale entry also lets a stranger publish to this package.
|
|
41
|
+
|
|
42
|
+
## Recurring checks
|
|
43
|
+
|
|
44
|
+
- After a release: `npm view search-rotation version` and the [registry entry](https://registry.modelcontextprotocol.io/?q=io.github.robin-bially%2Fsearch-rotation) should both show the new version. The release script already waits for npm, but a failed publish workflow leaves the release and the tap ahead of npm, as with 0.4.11.
|
|
45
|
+
- Dependency and tap maintenance runs outside this repository on a biweekly schedule.
|
|
46
|
+
- The GitHub account moved from `localfoundry` to `robin-bially` on 2026-09-26. The registry has no unpublish, so the entry `io.github.localfoundry/search-rotation` stays frozen at 0.4.10 while the next release adds `io.github.robin-bially/search-rotation`. The old handle is free again, so anything still pointing there can end up at a different account.
|
|
47
|
+
- Open externally: mcpservers.org reviews the submission, PulseMCP is paused, the three list pull requests wait for their maintainers, and Glama re-crawls repositories at its own pace.
|
|
48
|
+
|
|
49
|
+
## Deliberately not used
|
|
50
|
+
|
|
51
|
+
Directories that require a new account before a submission (Glama's own form,
|
|
52
|
+
mcp.so) are skipped. The Glama listing exists because Glama indexes public GitHub
|
|
53
|
+
repositories without a submission; it picked up the repository rename by itself.
|
package/docs/release-notes.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## v0.4.11 — Distribution under the robin-bially account
|
|
2
|
+
|
|
3
|
+
The GitHub account moved from `localfoundry` to `robin-bially`, so every distribution
|
|
4
|
+
path follows: the Homebrew tap is `robin-bially/tap`, the official MCP Registry
|
|
5
|
+
namespace becomes `io.github.robin-bially/search-rotation`, and the npm metadata now
|
|
6
|
+
points at the renamed repository. The package itself is unchanged, so there is no
|
|
7
|
+
behaviour change and no configuration migration.
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
brew update && brew upgrade robin-bially/tap/search-rotation
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or run the pinned GitHub version:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
npx -y --allow-git=all github:robin-bially/search-rotation-mcp#v0.4.11
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
|
|
1
20
|
## v0.4.10 — npm distribution and MCP Registry metadata
|
|
2
21
|
|
|
3
22
|
The package now ships through npm as well, so `npx -y search-rotation` installs the
|
|
@@ -6,13 +25,13 @@ trusted publishing, and `mcpName` plus `server.json` carry the metadata for the
|
|
|
6
25
|
official MCP Registry.
|
|
7
26
|
|
|
8
27
|
```sh
|
|
9
|
-
brew update && brew upgrade
|
|
28
|
+
brew update && brew upgrade robin-bially/tap/search-rotation
|
|
10
29
|
```
|
|
11
30
|
|
|
12
31
|
Or run the pinned GitHub version:
|
|
13
32
|
|
|
14
33
|
```sh
|
|
15
|
-
npx -y --allow-git=all github:
|
|
34
|
+
npx -y --allow-git=all github:robin-bially/search-rotation-mcp#v0.4.10
|
|
16
35
|
```
|
|
17
36
|
|
|
18
37
|
|
|
@@ -21,13 +40,13 @@ npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.10
|
|
|
21
40
|
Routine maintenance release: the Node type definitions move to 26.6.3. No behaviour change and no configuration migration. The GitHub release page now shows only the notes for the current version instead of the whole changelog.
|
|
22
41
|
|
|
23
42
|
```sh
|
|
24
|
-
brew update && brew upgrade
|
|
43
|
+
brew update && brew upgrade robin-bially/tap/search-rotation
|
|
25
44
|
```
|
|
26
45
|
|
|
27
46
|
Or run the pinned GitHub version:
|
|
28
47
|
|
|
29
48
|
```sh
|
|
30
|
-
npx -y --allow-git=all github:
|
|
49
|
+
npx -y --allow-git=all github:robin-bially/search-rotation-mcp#v0.4.9
|
|
31
50
|
```
|
|
32
51
|
|
|
33
52
|
|
|
@@ -36,13 +55,13 @@ npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.9
|
|
|
36
55
|
Routine maintenance release: the MCP SDK moves to 1.30.1, Hono to 4.13.9, Zod to 4.6.5, tsx to 4.23.15 and the Node type definitions to 26.6.2, together with the matching transitive updates (jose, proxy-addr, ip-address, fast-uri, undici-types). No behaviour change and no configuration migration.
|
|
37
56
|
|
|
38
57
|
```sh
|
|
39
|
-
brew update && brew upgrade
|
|
58
|
+
brew update && brew upgrade robin-bially/tap/search-rotation
|
|
40
59
|
```
|
|
41
60
|
|
|
42
61
|
Or run the pinned GitHub version:
|
|
43
62
|
|
|
44
63
|
```sh
|
|
45
|
-
npx -y --allow-git=all github:
|
|
64
|
+
npx -y --allow-git=all github:robin-bially/search-rotation-mcp#v0.4.8
|
|
46
65
|
```
|
|
47
66
|
|
|
48
67
|
|
|
@@ -60,11 +79,11 @@ Engine call counts are now visible with or without an API key. Search, fetch, an
|
|
|
60
79
|
No configuration migration is required. Reconnect MCP clients after updating.
|
|
61
80
|
|
|
62
81
|
```sh
|
|
63
|
-
brew update && brew upgrade
|
|
82
|
+
brew update && brew upgrade robin-bially/tap/search-rotation
|
|
64
83
|
```
|
|
65
84
|
|
|
66
85
|
Or run the pinned GitHub version:
|
|
67
86
|
|
|
68
87
|
```sh
|
|
69
|
-
npx -y --allow-git=all github:
|
|
88
|
+
npx -y --allow-git=all github:robin-bially/search-rotation-mcp#v0.4.7
|
|
70
89
|
```
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "search-rotation",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"mcpName": "io.github.
|
|
3
|
+
"version": "0.4.11",
|
|
4
|
+
"mcpName": "io.github.robin-bially/search-rotation",
|
|
5
5
|
"description": "Round-robin web search over the free tiers of multiple search APIs (Tavily, Firecrawl, Parallel, Exa, Google PSE, Jina, DuckDuckGo) as an MCP server — with a local dashboard for API keys, engine order/toggles and live quota status.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Robin Bially",
|
|
10
|
-
"url": "https://github.com/
|
|
10
|
+
"url": "https://github.com/robin-bially"
|
|
11
11
|
},
|
|
12
12
|
"bin": {
|
|
13
13
|
"search-rotation": "dist/index.js"
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
},
|
|
58
58
|
"repository": {
|
|
59
59
|
"type": "git",
|
|
60
|
-
"url": "git+https://github.com/
|
|
60
|
+
"url": "git+https://github.com/robin-bially/search-rotation-mcp.git"
|
|
61
61
|
},
|
|
62
|
-
"homepage": "https://github.com/
|
|
62
|
+
"homepage": "https://github.com/robin-bially/search-rotation-mcp#readme",
|
|
63
63
|
"bugs": {
|
|
64
|
-
"url": "https://github.com/
|
|
64
|
+
"url": "https://github.com/robin-bially/search-rotation-mcp/issues"
|
|
65
65
|
}
|
|
66
66
|
}
|
package/static/index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>search-rotation
|
|
6
|
+
<title>search-rotation</title>
|
|
7
7
|
<meta name="theme-color" content="#0a0c12">
|
|
8
8
|
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%238b7cf7'/%3E%3Cstop offset='1' stop-color='%234dd8e6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='16' cy='16' r='14' fill='none' stroke='url(%23g)' stroke-width='3.5' stroke-dasharray='66 22' stroke-linecap='round'/%3E%3Ccircle cx='16' cy='16' r='4.5' fill='url(%23g)'/%3E%3C/svg%3E">
|
|
9
9
|
<link rel="stylesheet" href="/style.css">
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
<main class="view" id="view" aria-live="polite"></main>
|
|
84
84
|
|
|
85
85
|
<footer class="footer">
|
|
86
|
-
<span><strong>
|
|
86
|
+
<span><strong>Robin Bially</strong> · <span data-i18n="footer.text"></span></span>
|
|
87
87
|
<span class="footer-meta"><code id="configpath"></code></span>
|
|
88
88
|
</footer>
|
|
89
89
|
|