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 CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Robin Bially (LocalFoundry)
3
+ Copyright (c) 2026 Robin Bially
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
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/localfoundry) under the LocalFoundry label.
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 localfoundry/tap/search-rotation
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
- [LocalFoundry tap](https://github.com/localfoundry/homebrew-tap) for upgrades and details.
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:localfoundry/search-rotation-mcp#v0.4.10
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.9 ./scripts/release.sh --publish
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 `localfoundry/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.
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/localfoundry/search-rotation-mcp/releases) · [CI](https://github.com/localfoundry/search-rotation-mcp/actions/workflows/ci.yml) · [MIT license](LICENSE)
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 localfoundry/tap/search-rotation
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/localfoundry/search-rotation-mcp/releases/latest):
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.10.tgz
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:localfoundry/search-rotation-mcp#vX` form from the README needs `--allow-git=all`
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.
@@ -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 localfoundry/tap/search-rotation
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:localfoundry/search-rotation-mcp#v0.4.10
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 localfoundry/tap/search-rotation
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:localfoundry/search-rotation-mcp#v0.4.9
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 localfoundry/tap/search-rotation
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:localfoundry/search-rotation-mcp#v0.4.8
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 localfoundry/tap/search-rotation
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:localfoundry/search-rotation-mcp#v0.4.7
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.10",
4
- "mcpName": "io.github.localfoundry/search-rotation",
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/localfoundry"
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/localfoundry/search-rotation-mcp.git"
60
+ "url": "git+https://github.com/robin-bially/search-rotation-mcp.git"
61
61
  },
62
- "homepage": "https://github.com/localfoundry/search-rotation-mcp#readme",
62
+ "homepage": "https://github.com/robin-bially/search-rotation-mcp#readme",
63
63
  "bugs": {
64
- "url": "https://github.com/localfoundry/search-rotation-mcp/issues"
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 · LocalFoundry</title>
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>LocalFoundry</strong> · <span data-i18n="footer.text"></span></span>
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