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.
Files changed (51) hide show
  1. package/README.md +27 -13
  2. package/dist/index.js +893 -362
  3. package/dist/index.js.map +4 -4
  4. package/dist/mcp-use.json +2 -2
  5. package/dist/src/clients/jina.js +156 -17
  6. package/dist/src/clients/jina.js.map +4 -4
  7. package/dist/src/clients/kernel.js +95 -48
  8. package/dist/src/clients/kernel.js.map +4 -4
  9. package/dist/src/clients/reddit.js +71 -31
  10. package/dist/src/clients/reddit.js.map +4 -4
  11. package/dist/src/clients/scraper.js +62 -27
  12. package/dist/src/clients/scraper.js.map +4 -4
  13. package/dist/src/clients/search.js +77 -39
  14. package/dist/src/clients/search.js.map +4 -4
  15. package/dist/src/config/index.js +33 -27
  16. package/dist/src/config/index.js.map +2 -2
  17. package/dist/src/effect/errors.js +12 -1
  18. package/dist/src/effect/errors.js.map +2 -2
  19. package/dist/src/effect/runtime.js +533 -173
  20. package/dist/src/effect/runtime.js.map +4 -4
  21. package/dist/src/effect/services.js +554 -185
  22. package/dist/src/effect/services.js.map +4 -4
  23. package/dist/src/schemas/scrape-links.js +1 -2
  24. package/dist/src/schemas/scrape-links.js.map +2 -2
  25. package/dist/src/schemas/web-search.js +1 -4
  26. package/dist/src/schemas/web-search.js.map +2 -2
  27. package/dist/src/services/llm-processor.js +309 -75
  28. package/dist/src/services/llm-processor.js.map +4 -4
  29. package/dist/src/tools/mcp-helpers.js +68 -4
  30. package/dist/src/tools/mcp-helpers.js.map +3 -3
  31. package/dist/src/tools/registry.js +2175 -1679
  32. package/dist/src/tools/registry.js.map +4 -4
  33. package/dist/src/tools/scrape.js +2047 -1550
  34. package/dist/src/tools/scrape.js.map +4 -4
  35. package/dist/src/tools/search.js +1979 -1605
  36. package/dist/src/tools/search.js.map +4 -4
  37. package/dist/src/tools/start-research.js +571 -204
  38. package/dist/src/tools/start-research.js.map +4 -4
  39. package/dist/src/tools/utils.js +35 -4
  40. package/dist/src/tools/utils.js.map +3 -3
  41. package/dist/src/utils/content-extractor.js +35 -4
  42. package/dist/src/utils/content-extractor.js.map +3 -3
  43. package/dist/src/utils/errors.js +35 -4
  44. package/dist/src/utils/errors.js.map +3 -3
  45. package/dist/src/utils/logger.js +35 -4
  46. package/dist/src/utils/logger.js.map +3 -3
  47. package/dist/src/utils/sanitize.js +25 -0
  48. package/dist/src/utils/sanitize.js.map +2 -2
  49. package/dist/src/utils/url-aggregator.js +20 -16
  50. package/dist/src/utils/url-aggregator.js.map +2 -2
  51. 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). every external call
9
- flows through an effect ts service layer for typed concurrency, typed errors,
10
- and timeouts that actually mean something. no stdio http only.
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. missing keys don't crash the
80
- server they disable the affected capability with a clear error at call time.
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 | fallback public mcp url used by the production origin-protection guard |
90
- | `NODE_ENV` | unset | set to `production` to enforce `ALLOWED_ORIGINS` or `MCP_URL` (server exits otherwise) |
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
- is the single boundary tool handlers cross to talk
176
- to the outside world
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 `Effect.forEach`, ctr-based
205
- url ranking, tools never throw (always return `toolFailure`), and structured
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