search-rotation 0.4.9 → 0.4.10

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/README.md CHANGED
@@ -18,6 +18,15 @@ Rotate across available quotas, automatically fail over when a provider is unava
18
18
 
19
19
  ## Quick start
20
20
 
21
+ ### npm
22
+
23
+ ```sh
24
+ npx -y search-rotation --http --open
25
+ ```
26
+
27
+ Requires **Node.js 20.3+**. For MCP over stdio, configure your client to run
28
+ `npx -y search-rotation` with no arguments.
29
+
21
30
  ### Homebrew
22
31
 
23
32
  ```sh
@@ -29,19 +38,13 @@ Homebrew installs the required Node.js runtime. For MCP over stdio, configure yo
29
38
  client to run `search-rotation` with no arguments. See the
30
39
  [LocalFoundry tap](https://github.com/localfoundry/homebrew-tap) for upgrades and details.
31
40
 
32
- ### GitHub / npx
33
-
34
- Requires **Node.js 20.3+** and **Git**. Install directly from GitHub — **no npm account needed**.
41
+ ### Pinned release from GitHub
35
42
 
36
43
  ```sh
37
- npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.9
44
+ npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.10
38
45
  ```
39
46
 
40
- To preview the dashboard:
41
-
42
- ```sh
43
- npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.9 --http --open
44
- ```
47
+ Use this when you want a fixed version instead of the current npm release.
45
48
 
46
49
  Add your provider keys in the dashboard, then connect your assistant using the **[MCP client setup guide](docs/clients.md)** for Codex, Claude, Cursor, or OpenCode.
47
50
 
@@ -117,7 +120,9 @@ After updating, reconnect your MCP client to load the new tool schema.
117
120
  VERSION=0.4.9 ./scripts/release.sh --publish
118
121
  ```
119
122
 
120
- 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 and updates the formula in `localfoundry/homebrew-tap`. 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.
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.
124
+
125
+ 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`.
121
126
 
122
127
  ## Learn more
123
128
 
package/dist/index.js CHANGED
File without changes
package/docs/clients.md CHANGED
@@ -36,7 +36,7 @@ Add to `~/.codex/config.toml`:
36
36
  ```toml
37
37
  [mcp_servers.search-rotation]
38
38
  command = "npx"
39
- args = ["-y", "--allow-git=all", "github:localfoundry/search-rotation-mcp#v0.4.9"]
39
+ args = ["-y", "search-rotation"]
40
40
  ```
41
41
 
42
42
  ## Claude Desktop and Cursor
@@ -48,7 +48,7 @@ Add to Claude Desktop's MCP configuration or Cursor's `.cursor/mcp.json`:
48
48
  "mcpServers": {
49
49
  "search-rotation": {
50
50
  "command": "npx",
51
- "args": ["-y", "--allow-git=all", "github:localfoundry/search-rotation-mcp#v0.4.9"]
51
+ "args": ["-y", "search-rotation"]
52
52
  }
53
53
  }
54
54
  }
@@ -57,7 +57,7 @@ Add to Claude Desktop's MCP configuration or Cursor's `.cursor/mcp.json`:
57
57
  ## Claude Code
58
58
 
59
59
  ```sh
60
- claude mcp add search-rotation -- npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.9
60
+ claude mcp add search-rotation -- npx -y search-rotation
61
61
  ```
62
62
 
63
63
  ## OpenCode V2
@@ -67,7 +67,7 @@ Add this entry under `mcp.servers`:
67
67
  ```json
68
68
  "search-rotation": {
69
69
  "type": "local",
70
- "command": ["npx", "-y", "--allow-git=all", "github:localfoundry/search-rotation-mcp#v0.4.9"],
70
+ "command": ["npx", "-y", "search-rotation"],
71
71
  "codemode": true
72
72
  }
73
73
  ```
@@ -77,10 +77,12 @@ Add this entry under `mcp.servers`:
77
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):
78
78
 
79
79
  ```sh
80
- npm install -g ./search-rotation-0.4.9.tgz
80
+ npm install -g ./search-rotation-0.4.10.tgz
81
81
  ```
82
82
 
83
- `--allow-git=all` permits Git dependencies in npm 12. Older npm versions may display a warning for this option. npm/npx are package tools here; the package is distributed on GitHub.
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`
85
+ instead, because npm 12 resolves Git dependencies only when explicitly allowed.
84
86
 
85
87
  For remote HTTP access, authentication and advanced settings, see the [operations guide (German)](operations.md).
86
88
 
@@ -26,7 +26,7 @@ Der Gratis-Modus ist **keine Ausgabengarantie**: andere Anwendungen können dass
26
26
  ## Remote-Betrieb (Streamable HTTP)
27
27
 
28
28
  ```bash
29
- npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.9 --http --host 0.0.0.0 --port 6277 --public-origin https://search.example.com --token <geheim>
29
+ npx -y search-rotation --http --host 0.0.0.0 --port 6277 --public-origin https://search.example.com --token <geheim>
30
30
  ```
31
31
 
32
32
  Client-Config (Claude):
@@ -1,3 +1,21 @@
1
+ ## v0.4.10 — npm distribution and MCP Registry metadata
2
+
3
+ The package now ships through npm as well, so `npx -y search-rotation` installs the
4
+ latest release without Git. Publishing runs in the release workflow through npm
5
+ trusted publishing, and `mcpName` plus `server.json` carry the metadata for the
6
+ official MCP Registry.
7
+
8
+ ```sh
9
+ brew update && brew upgrade localfoundry/tap/search-rotation
10
+ ```
11
+
12
+ Or run the pinned GitHub version:
13
+
14
+ ```sh
15
+ npx -y --allow-git=all github:localfoundry/search-rotation-mcp#v0.4.10
16
+ ```
17
+
18
+
1
19
  ## v0.4.9 — Updated Node type definitions
2
20
 
3
21
  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.
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "search-rotation",
3
- "version": "0.4.9",
3
+ "version": "0.4.10",
4
+ "mcpName": "io.github.localfoundry/search-rotation",
4
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.",
5
6
  "type": "module",
6
7
  "license": "MIT",
package/static/app.js CHANGED
@@ -462,8 +462,7 @@ function sparkline(entries) {
462
462
 
463
463
  function renderSnippets() {
464
464
  const remoteUrl = location.origin + "/mcp";
465
- const packageRef = "github:localfoundry/search-rotation-mcp#v" + state.meta.version;
466
- const args = ["-y", "--allow-git=all", packageRef];
465
+ const args = ["-y", "search-rotation"];
467
466
  const codex = $("#snip-codex");
468
467
  if (!codex) return;
469
468
  codex.textContent = '[mcp_servers.search-rotation]\ncommand = "npx"\nargs = ' + JSON.stringify(args);