Adds full-text search to Next.js apps using BM25 scoring and fuzzy matching, no external service required. You create a Sifter with a schema that defines which fields to index and their weights, pass in your documents, and get back ranked results. Part of the sathergate-toolkit, a collection of eight zero-dependency packages that all expose MCP tools for agent discovery. The searchcraft package runs entirely in your app's runtime, making it a solid choice when you want search without Algolia or Elasticsearch overhead. Ships with CLI scaffolding via npx for quick setup.
Agent-native infrastructure toolkit for Next.js. 8 packages, zero dependencies, MCP in every one.
| Package | Description | Install |
|---|---|---|
| gatehouse | Drop-in RBAC with role hierarchy | npm i gatehouse |
| shutterbox | Image processing pipeline | npm i shutterbox |
| flagpost | Feature flags with percentage rollouts | npm i flagpost |
| ratelimit-next | Rate limiting (sliding window, token bucket) | npm i ratelimit-next |
| notifykit | Unified notifications (email, SMS, push) | npm i @sathergate/notifykit |
| croncall | Serverless-native cron jobs | npm i croncall |
| vaultbox | AES-256-GCM encrypted secrets | npm i vaultbox |
| searchcraft | Full-text search with BM25 scoring | npm i searchcraft |
Or install them all:
npm i @sathergate/toolkit
import { createFloodgate } from "ratelimit-next";
import { createSifter } from "searchcraft";
import { createFlagpost } from "flagpost";
// Rate limiting
const limiter = createFloodgate({
rules: { api: { limit: 60, window: "1m" } },
});
// Full-text search
const search = createSifter({
schema: { title: { weight: 2 }, body: true },
documents: articles,
});
// Feature flags
const flags = createFlagpost({
flags: {
newSearch: { defaultValue: false, rules: [{ value: true, percentage: 25 }] },
},
});
See the kitchen-sink example for a complete Next.js app using 5 packages together.
Every package is agent-native — designed to be discovered and used by AI coding agents:
npx <package> init) for zero-config setupnpm install
npm run build
npm run test
npm run typecheck
See CONTRIBUTING.md for the full guide.
MIT
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp