mcp-researchpowerpack 7.0.14 → 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 +27 -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 +2 -2
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):
|
|
@@ -159,10 +168,15 @@ deploy to manufact cloud via the `mcp-use` cli (github-backed):
|
|
|
159
168
|
pnpm deploy # runs the package script: mcp-use deploy
|
|
160
169
|
```
|
|
161
170
|
|
|
171
|
+
the canonical hosted endpoint is `https://research-mcp.yigitkonur.com/mcp`.
|
|
172
|
+
the raw manufact server slug is `calm-wave-3gtvb`.
|
|
173
|
+
|
|
162
174
|
or self-host anywhere with node 20.19+ / 22.12+:
|
|
163
175
|
|
|
164
176
|
```bash
|
|
165
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
|
|
166
180
|
```
|
|
167
181
|
|
|
168
182
|
## architecture
|
|
@@ -172,8 +186,8 @@ index.ts server startup, cors, health, shutdown
|
|
|
172
186
|
src/
|
|
173
187
|
config/ env parsing, capability detection, lazy proxy config
|
|
174
188
|
effect/ typed service tags + Live layers; runExternalEffect()
|
|
175
|
-
|
|
176
|
-
|
|
189
|
+
only accepts fully-provided programs at the async
|
|
190
|
+
tool boundary
|
|
177
191
|
clients/ provider api clients (serper, jina, kernel, reddit,
|
|
178
192
|
scrapedo) — wrapped by Live layers in src/effect/
|
|
179
193
|
tools/
|
|
@@ -201,9 +215,9 @@ key patterns: capability detection at startup, description-led tool routing
|
|
|
201
215
|
raw/smart tool split, tiered classified output in `smart-web-search`, reddit
|
|
202
216
|
api routing in scrape tools, jina reader first for non-reddit urls,
|
|
203
217
|
scrape.do proxy-mode retry through `X-Proxy-Url`, optional kernel
|
|
204
|
-
browser-render fallback, bounded concurrency via
|
|
205
|
-
url ranking, tools never throw (always return
|
|
206
|
-
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.
|
|
207
221
|
|
|
208
222
|
## license
|
|
209
223
|
|