Back. No authentication. 20 requests a minute per address; past that you get 429 with Retry-After.
Nothing is stored unless you opt in with X-Contribute: 1 (or /mcp/contribute).
| endpoint | |
|---|---|
POST /mcp | MCP over streamable HTTP (JSON-RPC): initialize, tools/list, tools/call. |
POST /mcp/contribute | The same, with this call's data kept for training. |
POST /search | The web_search tool as plain JSON: send its arguments as the body. |
POST /contents | The web_contents tool as plain JSON. |
POST /answer | The web_answer tool as plain JSON. |
POST /v1/extract, /v1/preview, /v1/summarize | The single-page tools as plain JSON. |
GET /healthz | Liveness. |
Example:
curl https://search.nkp.pet/search -H 'content-type: application/json' \
-d '{"query":"what is the atproto firehose","numResults":3,"contents":{"highlights":true}}'
web_searchSearch the web (SearXNG), rerank with a decision model, and optionally return text, highlights or grounded summaries. Exa-shaped input and output.
| argument | type | |
|---|---|---|
contents | object | |
excludeDomains | array | |
includeDomains | array | |
numResults | integer | |
query | string, required | |
type | string |
web_contentsRead up to 20 known urls. Full text by default; request verbatim highlights picked by the decision model or a query-focused summary explicitly.
| argument | type | |
|---|---|---|
highlights | boolean or object | |
ids | array | |
livecrawlTimeout | integer | |
maxAgeHours | integer | |
summary | boolean or object | |
text | boolean or object | |
urls | array |
web_answerSearch and return one grounded plain-prose answer plus sources, using the original evidence the decision model picked rather than summaries of summaries.
| argument | type | |
|---|---|---|
query | string, required | |
stream | boolean | |
text | boolean |
web_extractSingle-url alias for web_contents with text enabled, without model calls. Returns the new requestId/results/statuses shape, not legacy markdown fields.
| argument | type | |
|---|---|---|
max_chars | integer | |
url | string, required |
web_previewSingle-url alias for web_contents with a query-focused, evidence-grounded summary. Returns the new requestId/results/statuses shape. Inspect per-url statuses.
| argument | type | |
|---|---|---|
include_markdown | boolean | |
max_chars | integer | |
query | string, required | |
url | string, required |
web_summarizeSingle-url alias for web_contents with an evidence-grounded summary. Optional query (or instructions as the fallback query) focuses the summary. Returns the new requestId/results/statuses shape.
| argument | type | |
|---|---|---|
include_markdown | boolean | |
instructions | string | |
max_chars | integer | |
query | string | |
url | string, required |