Changelog
What's new in the Brime API and SDKs.
2026-10-12 — Docs corrections
/v1/extractcharges only successfully extracted URLs; failed URLs are free.- Pricing plans updated to match brime.dev/pricing.
2026-05-21 — mcp-server-brime 0.2.0 — A-tier rebuild + hosted endpoint
- Hosted endpoint at
https://mcp.brime.dev/mcp. Streamable HTTP transport — zero install for new clients. The stdio binary stays as the advanced/local option. - 2025-11-25 spec parity:
outputSchema+structuredContenton every tool,annotations(readOnlyHint,idempotentHint,openWorldHint), read-only resources (brime://credentials/status,brime://account/*), in-bandnotifications/messagelogging,logging/setLevelhonored. - URL elicitation for first-time API key onboarding (hosted): the agent gets back a one-time
/auth/connectURL, the user pastes the key in the browser, the key never enters the LLM transcript. - Per-result
_metawithrequest_id,latency_ms,credits_used,cache_hit— dashboards build off this without parsing prose. - Retry + exponential backoff on transient 5xx, toolset gating via
BRIME_TOOLSETS/BRIME_READ_ONLYenv, MCP registry idio.brime/mcp-server-brime, OCI Dockerfile with MCP labels. brime_set_keytool marked[Legacy in v0.2]; will be removed in v0.3. Use the hosted endpoint for the canonical onboarding flow.- Fully additive — v0.1.x clients keep working.
2026-05-21 — mcp-server-brime 0.1.1 — zero-config setup
- No
BRIME_API_KEYenv required at startup. The MCP server now stays alive without a key and asks for one on first use via the newbrime_set_keytool. - First tool call without a key returns a structured "no_api_key" envelope. The agent reads it, asks the user, calls
brime_set_key, then retries — the user never has to touch a config file. - The key is persisted to
~/.brime/credentials(0600 permissions) and reused on every subsequent call across reboots. - Env var still wins when set, so staging / CI overrides keep working unchanged.
- One new tool (
brime_set_key), 14 new unit tests (vitest), updated install snippets in the MCP guide drop theenvblock.
2026-05-21 — Public launch — brime.dev
- Primary domain switched from
brime.aitobrime.dev. SDK metadata, base URLs, and contact email all point tobrime.dev. - Source repositories opened at github.com/brime-dev:
brime-node,brime-python,brime-mcp,brime-langchain. - SDKs published:
@brime-ai/brime(npm),mcp-server-brime(npm),brime(PyPI),langchain-brime(PyPI) — all at0.1.0. - Free-tier monthly credit refill cron is live (every month, 00:00 UTC on the 1st, 1,000 credits flat).
2026-05-20 — /v1/search — single instant tier
- The
depthselector is gone. Search now runs one tuned instant flow for every call: SERP snippets + a short synthesised answer in ~500 ms p50. - Flat 0.5 credits per call. The old multi-row pricing (
instant 0.5 / basic 1 / advanced 2) is collapsed. - Semantic intent filters (
topic,time_range,start_date,end_date,domains,exclude_domains,max_results,include_answer,include_images) are still honoured. - LLM tuning knobs (
depth,model,token_mode,ranking) are accepted but ignored — clients sending them will not break. - Compat adapters (
/tavily/v1/search,/exa/v1/search,/parallel/v1/search) keep their vendor-shaped depth knobs.
2026-05-20 — /v1/research — single tuned flow
- The
depth(basicvsdeep) andmax_roundsknobs are gone. Research now runs one tuned multi-round flow (5 rounds max, ~30–90 s wall-clock). - Flat 5 credits per call. The old
basic=2 / deep=5split is collapsed. - Default model is a tuned production LLM picked for the research workload. Advanced users can still override via the
modelparameter against a server-managed allowlist. - Prompt-level discipline removes residual model artefacts that were occasionally bleeding into final answers.
- Synthesis token budget raised so long answers no longer truncate mid-word.
- Streaming (SSE) is still available via
Accept: text/event-streamorstream: true. - Legacy GET endpoints (
/v1/research/{job_id},/v1/research/{job_id}/stream) remain for in-flight jobs but new POSTs always return sync JSON.
2026-05-20 — brime-extract — smart-clean default-ON
- HTML → markdown now runs a six-phase readability pipeline by default (linkedom DOM parse → noise selector strip → semantic content cascade → density fallback → htmd → markdown post-process).
- +21pt mean F1 vs the previous htmd-only pipeline on a 9-URL benchmark (52.1% → 73.1% against Mozilla Readability as ground truth).
- Fixes SAP/AEM CMS template leak (style, tags, limit N, publicationDate, document-footer tokens), Wikipedia 67-language sidebar, arXiv inline
[1]citations. - New request field
clean?: boolean(defaulttrue). Setfalseto opt out and use the pre-refactor pipeline (~180 ms faster, noisier output). - Latency cost of the new default: +180 ms mean on the static path. Bundle: 7.93 MB → 8.43 MB upload, 2.48 MB → 2.60 MB gzip.
- Smart-clean also runs on
chrome_renderoutput (post container).
2026-05-19 — /v1/extract — unified metadata pass-through
- Every successful extract now returns a stable
metadataobject:title,description,author,published_date,canonical,og_image,language— each a string ornull. - DOCX results have all fields
null(deferred capability — ZIP core.xml parsing not yet wired). - PDF results derive metadata via
unpdf(info.Title/Author/Subject/CreationDate). - Backward-compat: additive change. Old SDKs ignore the new fields.
metadatais always an object orundefined, nevernullor a string. - Node and Python SDKs gained typed
ExtractMetadatashapes; LangChain integration picks up the change transitively. rust_mdrequest flag dropped from the gateway → worker payload (was a no-op upstream). Theworker_rust_mdmethod enum value is kept for defensive parse of cached responses.- New gateway guard:
chrome_renderresults withtext_len < 100are demoted tofailed[]withcode: "render_failed"instead of returning emptyresults[].
2026-05-06 — P15 — Public docs site
- First public release of
docs.brime.dev(this site!) - Mintlify-powered, OpenAPI playground, Ask AI, dark/light toggle
- Three top-level tabs: Documentation, API Reference, Changelog
- 23 pages live across getting-started, endpoints, SDKs, drop-in compat, and recipes
2026-05-06 — P13 — Node.js SDK (brime npm)
- New:
npm install @brime-ai/brime— official TypeScript SDK - Single
Brimeclass (aliasBrimeClient) covering/v1/*via async methods - Overloaded
research()return type narrows ondepth+wait AsyncIterable<ResearchSseEvent>—for await (const evt of client.researchStream(...))- Auto-generated
Idempotency-Keyforextractand deepresearch - Dual ESM + CJS build (Node 18+, Bun, Deno, Cloudflare Workers, modern browsers)
- Zero external HTTP dependencies (native fetch, AbortController, crypto.randomUUID)
- 29 unit + 8 live e2e tests green
2026-05-06 — P12 — LangChain integration (langchain-brime)
- New:
pip install langchain-brime— drop-in for any LangChain agent or chain - Three
BaseTools:BrimeSearch,BrimeExtract,BrimeResearch - One
BaseRetriever:BrimeRetriever(returnsDocumentobjects) - Sync + async parity throughout
- Backed by the
brimePython SDK — single HTTP client, single error tree - Passes the official
langchain-testsToolsUnitTestscompliance suite (18/18)
2026-05-06 — P11 — Python SDK (brime)
- New:
pip install brime— official Python SDK - Sync (
Brime) and async (AsyncBrime) clients with symmetric APIs - Methods:
search,extract,research,research_status,research_stream research(depth="deep", wait=True)blocking polling with exponential backoff- SSE parser handles fragmented chunks,
[DONE]terminator, multiline data - Seven-class error hierarchy with code → class registry
- Pydantic v2 response models with full type hints (
py.typed) - 14 unit + 9 live e2e tests green
2026-05-06 — P14 — MCP server (mcp-server-brime)
- New:
npx -y mcp-server-brime— official Model Context Protocol server - Four tools:
brime_search,brime_extract,brime_research,brime_research_status - Stdio transport; works in Claude Code, Codex, Cursor, VS Code, any MCP client
- Deep-research polling pattern (server returns
job_id, agent polls status) - Friendly error messages with
isError: trueMCP convention
2026-05-06 — P10 — Parallel.ai compatibility adapter
- New:
/parallel/v1/{search,extract}— drop-in for Parallel SDK - Point your existing client at
https://api.brime.dev/parallel - Field mapping:
objective+search_queries→ Brime query;mode→depth - Native
Authorization: Bearerand Parallelx-api-keyboth accepted - Tasks / FindAll / Monitor / Chat APIs are on the roadmap
2026-05-06 — P9b — Exa SSE streaming
/exa/v1/searchand/exa/v1/answernow supportstream: true- OpenAI-style
chat.completion.chunkenvelope frames - Synthesised stream (sync call → SSE chunks); real LLM token streaming on the roadmap
2026-05-06 — P9 — Exa compatibility adapter
- New:
/exa/v1/{search,answer,contents}— drop-in for Exa SDK - Point
Exa(base_url="https://api.brime.dev/exa")at us - Both
Authorization: Bearerand Exax-api-keyheaders accepted costDollarssynthesised from Brime credits- findSimilar (vector retrieval) on the roadmap
2026-05-06 — P8c — Tavily research adapter
/tavily/v1/research(sync + stream + poll) — full Tavily research wire compatibility- SSE wrap: Brime native events → Tavily Pro nested research format
- Status poll endpoint with 200 (terminal) / 202 (running)
2026-05-06 — P8b — Tavily extract adapter
/tavily/v1/extract— fetch URLs and return Tavily-shaped result + failed_resultsmarkdownfield renamed toraw_contentto match Tavily SDK
2026-05-06 — P8 — Tavily search adapter
- First drop-in adapter shipped:
/tavily/v1/search - One-line migration:
TavilyClient(api_base_url="https://api.brime.dev/tavily")
2026-04-27 — P7 — Deep research (multi-round async)
/v1/researchwithdepth="deep"— multi-round async research- Per-job stateful coordinator with alarm-based 10-min cap
- SSE streaming with
Last-Event-IDresume support
2026-04-22 — P6 — Research basic mode
/v1/researchwithdepth="basic"— single-shot iterative agent- Inline citations + sources;
max_rounds1–3; optional SSE streaming
2026-04-15 — P5 — Extract V2
/v1/extract— multi-URL fan-out, PDF/DOCX/HTML/SPA support- Static-tier + browser-tier auto-escalation under the hood
2026-04-08 — P3 + P4 — Search
/v1/searchwith three depth presets: instant, basic, advanced- SERP + chunk + ranking + LLM answer pipeline; edge cache with topic-aware TTL
2026-04-01 — P0–P2 — Foundation, auth, rate limits
- Core edge gateway scaffolded
sk-brime-API keys with sha256 storage and hot-path key cache- Per-key sliding-window rate limiter,
Idempotency-Keymiddleware