mcp-researchpowerpack 7.0.15 → 7.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 +24 -13
- package/dist/index.js +893 -362
- package/dist/index.js.map +4 -4
- package/dist/mcp-use.json +2 -2
- package/dist/src/clients/jina.js +156 -17
- package/dist/src/clients/jina.js.map +4 -4
- package/dist/src/clients/kernel.js +95 -48
- package/dist/src/clients/kernel.js.map +4 -4
- package/dist/src/clients/reddit.js +71 -31
- package/dist/src/clients/reddit.js.map +4 -4
- package/dist/src/clients/scraper.js +62 -27
- package/dist/src/clients/scraper.js.map +4 -4
- package/dist/src/clients/search.js +77 -39
- package/dist/src/clients/search.js.map +4 -4
- package/dist/src/config/index.js +33 -27
- package/dist/src/config/index.js.map +2 -2
- package/dist/src/effect/errors.js +12 -1
- package/dist/src/effect/errors.js.map +2 -2
- package/dist/src/effect/runtime.js +533 -173
- package/dist/src/effect/runtime.js.map +4 -4
- package/dist/src/effect/services.js +554 -185
- package/dist/src/effect/services.js.map +4 -4
- package/dist/src/schemas/scrape-links.js +1 -2
- package/dist/src/schemas/scrape-links.js.map +2 -2
- package/dist/src/schemas/web-search.js +1 -4
- package/dist/src/schemas/web-search.js.map +2 -2
- package/dist/src/services/llm-processor.js +309 -75
- package/dist/src/services/llm-processor.js.map +4 -4
- package/dist/src/tools/mcp-helpers.js +68 -4
- package/dist/src/tools/mcp-helpers.js.map +3 -3
- package/dist/src/tools/registry.js +2175 -1679
- package/dist/src/tools/registry.js.map +4 -4
- package/dist/src/tools/scrape.js +2047 -1550
- package/dist/src/tools/scrape.js.map +4 -4
- package/dist/src/tools/search.js +1979 -1605
- package/dist/src/tools/search.js.map +4 -4
- package/dist/src/tools/start-research.js +571 -204
- package/dist/src/tools/start-research.js.map +4 -4
- package/dist/src/tools/utils.js +35 -4
- package/dist/src/tools/utils.js.map +3 -3
- package/dist/src/utils/content-extractor.js +35 -4
- package/dist/src/utils/content-extractor.js.map +3 -3
- package/dist/src/utils/errors.js +35 -4
- package/dist/src/utils/errors.js.map +3 -3
- package/dist/src/utils/logger.js +35 -4
- package/dist/src/utils/logger.js.map +3 -3
- package/dist/src/utils/sanitize.js +25 -0
- package/dist/src/utils/sanitize.js.map +2 -2
- package/dist/src/utils/url-aggregator.js +20 -16
- package/dist/src/utils/url-aggregator.js.map +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
http mcp server for research. five tools, orientation-first, built for agents
|
|
6
6
|
that run multi-pass research loops.
|
|
7
7
|
|
|
8
|
-
ships on [`mcp-use`](https://github.com/nicepkg/mcp-use).
|
|
9
|
-
flows through
|
|
10
|
-
|
|
8
|
+
ships on [`mcp-use`](https://github.com/nicepkg/mcp-use). tool-level provider
|
|
9
|
+
and llm orchestration flows through effect ts service layers for typed
|
|
10
|
+
concurrency, typed errors, scoped kernel cleanup, and step timeouts. provider
|
|
11
|
+
clients remain small promise/sdk adapters behind those layers. no stdio — http
|
|
12
|
+
only.
|
|
11
13
|
|
|
12
14
|
## tools
|
|
13
15
|
|
|
@@ -76,18 +78,19 @@ or skip the install entirely and hit the hosted deployment at
|
|
|
76
78
|
|
|
77
79
|
## config
|
|
78
80
|
|
|
79
|
-
copy `.env.example`, set only what you need.
|
|
80
|
-
|
|
81
|
+
copy `.env.example`, set only what you need. blank/whitespace keys are treated
|
|
82
|
+
as absent. missing keys don't crash the server — they disable the affected
|
|
83
|
+
capability with a clear error at call time.
|
|
81
84
|
|
|
82
85
|
### server
|
|
83
86
|
|
|
84
87
|
| var | default | |
|
|
85
88
|
|-----|---------|---|
|
|
86
89
|
| `PORT` | `3000` | http port |
|
|
87
|
-
| `HOST` | `127.0.0.1` | bind address; cloud runtimes that set `PORT` auto-switch to `0.0.0.0` |
|
|
90
|
+
| `HOST` | `127.0.0.1` | bind address; cloud runtimes that set `PORT` auto-switch to `0.0.0.0`. public binds require `ALLOWED_ORIGINS` or `MCP_URL` |
|
|
88
91
|
| `ALLOWED_ORIGINS` | unset | comma-separated origins for host validation / cors |
|
|
89
|
-
| `MCP_URL` | unset |
|
|
90
|
-
| `NODE_ENV` | unset |
|
|
92
|
+
| `MCP_URL` | unset | public mcp url; when `ALLOWED_ORIGINS` is absent, the server derives the allowed origin and well-known resource urls from this value |
|
|
93
|
+
| `NODE_ENV` | unset | `production` also requires `ALLOWED_ORIGINS` or `MCP_URL`, even on a local bind |
|
|
91
94
|
| `DEBUG` | unset | `1` or `2` to bump mcp-use debug verbosity |
|
|
92
95
|
|
|
93
96
|
### providers
|
|
@@ -117,6 +120,7 @@ are required together. reasoning effort is hardcoded to `low`.
|
|
|
117
120
|
### concurrency
|
|
118
121
|
|
|
119
122
|
all optional. provider limits are clamped 1–200; kernel is clamped 1–20.
|
|
123
|
+
malformed numeric values are rejected instead of partially parsed.
|
|
120
124
|
|
|
121
125
|
| var | default | controls |
|
|
122
126
|
|-----|---------|----------|
|
|
@@ -146,11 +150,16 @@ useful env vars:
|
|
|
146
150
|
pnpm install
|
|
147
151
|
pnpm dev # watch mode, serves :3000/mcp
|
|
148
152
|
pnpm typecheck # tsc --noEmit
|
|
153
|
+
pnpm test:unit # deterministic unit tests
|
|
154
|
+
pnpm test:http # local http / mcp integration test
|
|
149
155
|
pnpm test # unit + http integration tests
|
|
150
156
|
pnpm build # compile to dist/
|
|
151
157
|
pnpm inspect # mcp-use inspector
|
|
152
158
|
```
|
|
153
159
|
|
|
160
|
+
`prepublishOnly` runs `pnpm typecheck`, `pnpm test:unit`, `pnpm test:http`,
|
|
161
|
+
and `pnpm build`, matching the required publish gate.
|
|
162
|
+
|
|
154
163
|
## deploy
|
|
155
164
|
|
|
156
165
|
deploy to manufact cloud via the `mcp-use` cli (github-backed):
|
|
@@ -166,6 +175,8 @@ or self-host anywhere with node 20.19+ / 22.12+:
|
|
|
166
175
|
|
|
167
176
|
```bash
|
|
168
177
|
HOST=0.0.0.0 ALLOWED_ORIGINS=https://app.example.com pnpm start
|
|
178
|
+
# or derive production origin protection from the public mcp url:
|
|
179
|
+
NODE_ENV=production MCP_URL=https://research.example.com/mcp pnpm start
|
|
169
180
|
```
|
|
170
181
|
|
|
171
182
|
## architecture
|
|
@@ -175,8 +186,8 @@ index.ts server startup, cors, health, shutdown
|
|
|
175
186
|
src/
|
|
176
187
|
config/ env parsing, capability detection, lazy proxy config
|
|
177
188
|
effect/ typed service tags + Live layers; runExternalEffect()
|
|
178
|
-
|
|
179
|
-
|
|
189
|
+
only accepts fully-provided programs at the async
|
|
190
|
+
tool boundary
|
|
180
191
|
clients/ provider api clients (serper, jina, kernel, reddit,
|
|
181
192
|
scrapedo) — wrapped by Live layers in src/effect/
|
|
182
193
|
tools/
|
|
@@ -204,9 +215,9 @@ key patterns: capability detection at startup, description-led tool routing
|
|
|
204
215
|
raw/smart tool split, tiered classified output in `smart-web-search`, reddit
|
|
205
216
|
api routing in scrape tools, jina reader first for non-reddit urls,
|
|
206
217
|
scrape.do proxy-mode retry through `X-Proxy-Url`, optional kernel
|
|
207
|
-
browser-render fallback, bounded concurrency via
|
|
208
|
-
url ranking, tools never throw (always return
|
|
209
|
-
errors with retry classification.
|
|
218
|
+
browser-render fallback with scoped session cleanup, bounded concurrency via
|
|
219
|
+
`Effect.forEach`, ctr-based url ranking, tools never throw (always return
|
|
220
|
+
`toolFailure`), and structured errors with retry classification.
|
|
210
221
|
|
|
211
222
|
## license
|
|
212
223
|
|