The short answer
Ask one question across sources and read a shared Run with citations, reported cost, and provenance. You still own provider accounts and charges.
| Your entry point | Interface |
|---|---|
| Coding agent | MCP |
| JavaScript | Research client |
| Laravel | Native facade |
| Terminal | CLI |
What you would otherwise build per provider
Every direct integration repeats the same work. Librarium does it once, behind one interface.
| Per-provider work | Librarium handles |
|---|---|
| Endpoints and parameters | One question, source list, and quick/deep depth |
| Credential loading | Setup or app configuration; presence is not authentication |
| Payload and citation mapping | Source answers, citations, safe errors, and costs in one Run |
| Submit, poll, retrieve | Stored progress and recovery of existing work |
| Pricing and usage | Offline estimates, admission caps, reported spending |
| Provenance mapping | Provider, model, AI answer engine, retrieval service |
Keep different evidence distinct
Source capabilities differ; a shared contract does not make results equivalent. Check citations against original material.
| Result | Keep its meaning |
|---|---|
| Search | Retrieved material |
| Grounded answer | A cited answer |
| Research report | A deeper report |
| AI answer-engine observation | A consumer-answer observation, not an API answer |
A concrete example: research for an agent
An agent comparing database options discovers sources, previews spending, then reads the completed evidence. Adding a supported source changes selection, not the code that reads the Run.
| Step | MCP call |
|---|---|
| Discover | list_sources |
| Preview | research with question, only, dry_run: true |
| Start deep work | research with depth: "deep", wait_seconds: 0 |
| Resume and page evidence | get_run with the Run ID |
The same workflow in your application
Choose your runtime; each can preview before paid work and recover stored research. Laravel apps can expose approved evidence through an AI SDK tool.
| Runtime | Preview → recover |
|---|---|
| CLI | research --dry-run → show <run-id> --wait |
| JavaScript | research with dryRun: true → get |
| Laravel | dryRun() → find($id) then refresh() |
When to call a provider directly
- You need an endpoint, option, or streaming experience that Librarium does not expose yet.
- Your application will only ever use one provider and needs no normalized evidence.
Mixing is normal: use Librarium for research and a native SDK for the rest.
Choose the runtime, not just the package name
The runtimes share public Runs, not private execution state. Applications own domain records, authorization, and retention.
| Runtime | Owns |
|---|---|
| JavaScript CLI | Built-in adapters, concurrency, saved Runs, recovery, MCP |
| JavaScript core | Caller-injected config, credentials, stores; no Node process or file inspection |
| Laravel | Native AI SDK integration, stored Runs, encrypted queue jobs |
Start small
Choose one real question and a small source set; read costs and limits before spending. Compare inspectable evidence, not just a polished summary.
Start with your first query, your coding agent, or Laravel installation.