@kassol/mcp-searxng 1.0.3-custom.1 → 1.1.0
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 +40 -26
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +7 -1
package/README.md
CHANGED
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
An [MCP server](https://modelcontextprotocol.io/introduction) that integrates the [SearXNG](https://docs.searxng.org) API, giving AI assistants web search capabilities.
|
|
4
4
|
|
|
5
|
-
This fork is published as `@kassol/mcp-searxng` and includes support for custom outgoing headers via `SEARXNG_HEADERS` and
|
|
5
|
+
This fork is published as `@kassol/mcp-searxng` and includes support for custom outgoing headers via `SEARXNG_HEADERS`, `URL_READER_HEADERS`, and their base64 variants.
|
|
6
6
|
|
|
7
|
-
[](https://www.npmjs.com/package/@kassol/mcp-searxng)
|
|
8
|
+
[](https://www.npmjs.com/package/@kassol/mcp-searxng)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](https://github.com/kassol/mcp-searxng)
|
|
12
11
|
|
|
13
12
|
## Quick Start
|
|
14
13
|
|
|
@@ -102,12 +101,10 @@ npm install -g @kassol/mcp-searxng
|
|
|
102
101
|
</details>
|
|
103
102
|
|
|
104
103
|
<details>
|
|
105
|
-
<summary>Docker</summary>
|
|
106
|
-
|
|
107
|
-
**Pre-built image:**
|
|
104
|
+
<summary>Docker (local build)</summary>
|
|
108
105
|
|
|
109
106
|
```bash
|
|
110
|
-
docker
|
|
107
|
+
docker build -t mcp-searxng:latest -f Dockerfile .
|
|
111
108
|
```
|
|
112
109
|
|
|
113
110
|
```json
|
|
@@ -118,7 +115,7 @@ docker pull isokoliuk/mcp-searxng:latest
|
|
|
118
115
|
"args": [
|
|
119
116
|
"run", "-i", "--rm",
|
|
120
117
|
"-e", "SEARXNG_URL",
|
|
121
|
-
"
|
|
118
|
+
"mcp-searxng:latest"
|
|
122
119
|
],
|
|
123
120
|
"env": {
|
|
124
121
|
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
|
|
@@ -130,14 +127,6 @@ docker pull isokoliuk/mcp-searxng:latest
|
|
|
130
127
|
|
|
131
128
|
To pass additional env vars, add `-e VAR_NAME` to `args` and the variable to `env`.
|
|
132
129
|
|
|
133
|
-
**Build locally:**
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
docker build -t mcp-searxng:latest -f Dockerfile .
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Use the same config above, replacing `isokoliuk/mcp-searxng:latest` with `mcp-searxng:latest`.
|
|
140
|
-
|
|
141
130
|
</details>
|
|
142
131
|
|
|
143
132
|
<details>
|
|
@@ -148,7 +137,10 @@ Use the same config above, replacing `isokoliuk/mcp-searxng:latest` with `mcp-se
|
|
|
148
137
|
```yaml
|
|
149
138
|
services:
|
|
150
139
|
mcp-searxng:
|
|
151
|
-
|
|
140
|
+
build:
|
|
141
|
+
context: .
|
|
142
|
+
dockerfile: Dockerfile
|
|
143
|
+
image: mcp-searxng:latest
|
|
152
144
|
stdin_open: true
|
|
153
145
|
environment:
|
|
154
146
|
- SEARXNG_URL=YOUR_SEARXNG_INSTANCE_URL
|
|
@@ -161,8 +153,8 @@ MCP client config:
|
|
|
161
153
|
{
|
|
162
154
|
"mcpServers": {
|
|
163
155
|
"searxng": {
|
|
164
|
-
"command": "docker
|
|
165
|
-
"args": ["run", "--rm", "mcp-searxng"]
|
|
156
|
+
"command": "docker",
|
|
157
|
+
"args": ["compose", "run", "--rm", "mcp-searxng"]
|
|
166
158
|
}
|
|
167
159
|
}
|
|
168
160
|
}
|
|
@@ -204,7 +196,25 @@ curl http://localhost:3000/health
|
|
|
204
196
|
|
|
205
197
|
Set `SEARXNG_URL` to your SearXNG instance URL. All other variables are optional.
|
|
206
198
|
|
|
207
|
-
Protected SearXNG instances can receive extra search request headers through `SEARXNG_HEADERS_BASE64
|
|
199
|
+
Protected SearXNG instances can receive extra search request headers through `SEARXNG_HEADERS_BASE64`. This is the recommended format for ChatWise and other MCP clients that treat environment variables as plain key-value fields.
|
|
200
|
+
|
|
201
|
+
Generate the value directly from existing Cloudflare Access environment variables:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
export CF_ACCESS_CLIENT_ID='your-client-id.access'
|
|
205
|
+
export CF_ACCESS_CLIENT_SECRET='your-client-secret'
|
|
206
|
+
|
|
207
|
+
node -e 'console.log(Buffer.from(JSON.stringify({"CF-Access-Client-Id":process.env.CF_ACCESS_CLIENT_ID,"CF-Access-Client-Secret":process.env.CF_ACCESS_CLIENT_SECRET})).toString("base64"))'
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Verify the generated value:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
export SEARXNG_HEADERS_BASE64='paste-generated-value-here'
|
|
214
|
+
node -e 'console.log(Buffer.from(process.env.SEARXNG_HEADERS_BASE64,"base64").toString("utf8"))'
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
MCP client configuration:
|
|
208
218
|
|
|
209
219
|
```json
|
|
210
220
|
{
|
|
@@ -221,12 +231,16 @@ Protected SearXNG instances can receive extra search request headers through `SE
|
|
|
221
231
|
}
|
|
222
232
|
```
|
|
223
233
|
|
|
224
|
-
|
|
234
|
+
ChatWise environment variables:
|
|
225
235
|
|
|
226
|
-
```
|
|
227
|
-
|
|
236
|
+
```text
|
|
237
|
+
SEARXNG_URL=https://search.example.com
|
|
238
|
+
USER_AGENT=Mozilla/5.0
|
|
239
|
+
SEARXNG_HEADERS_BASE64=paste-generated-value-here
|
|
228
240
|
```
|
|
229
241
|
|
|
242
|
+
`SEARXNG_HEADERS_BASE64` applies only to `searxng_web_search` requests. Use `URL_READER_HEADERS_BASE64` for headers that should be sent by `web_url_read`.
|
|
243
|
+
|
|
230
244
|
Full environment variable reference: [CONFIGURATION.md](CONFIGURATION.md)
|
|
231
245
|
|
|
232
246
|
## Troubleshooting
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
-
declare const packageVersion = "1.0
|
|
3
|
+
declare const packageVersion = "1.1.0";
|
|
4
4
|
export { packageVersion };
|
|
5
5
|
export declare function isWebUrlReadArgs(args: unknown): args is {
|
|
6
6
|
url: string;
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { fetchAndConvertToMarkdown } from "./url-reader.js";
|
|
|
10
10
|
import { createConfigResource, createHelpResource } from "./resources.js";
|
|
11
11
|
import { createHttpServer } from "./http-server.js";
|
|
12
12
|
// Use a static version string that will be updated by the version script
|
|
13
|
-
const packageVersion = "1.0
|
|
13
|
+
const packageVersion = "1.1.0";
|
|
14
14
|
// Export the version for use in other modules
|
|
15
15
|
export { packageVersion };
|
|
16
16
|
// Type guard for URL reading args
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kassol/mcp-searxng",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"mcpName": "io.github.kassol/mcp-searxng",
|
|
5
5
|
"description": "MCP server for SearXNG integration",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,6 +45,12 @@
|
|
|
45
45
|
"bootstrap": "npm install && npm run build",
|
|
46
46
|
"inspector": "DANGEROUSLY_OMIT_AUTH=true npx @modelcontextprotocol/inspector node dist/index.js",
|
|
47
47
|
"lint": "eslint src __tests__",
|
|
48
|
+
"sync-version": "node scripts/update-version.js",
|
|
49
|
+
"release:check": "npm run build && npm run lint && npm test && npm pack --dry-run",
|
|
50
|
+
"release:dry-run": "npm publish --dry-run --access public --tag latest",
|
|
51
|
+
"release:patch": "npm version patch",
|
|
52
|
+
"release:minor": "npm version minor",
|
|
53
|
+
"release:major": "npm version major",
|
|
48
54
|
"postversion": "TAG=$(node scripts/update-version.js | tail -1) && git add src/index.ts .mcp/server.json && git commit --amend --no-edit && git tag -f $TAG"
|
|
49
55
|
},
|
|
50
56
|
"dependencies": {
|