nlqdb — analytical memory for AI agents

com.nlqdb由 nlqdb.com 发布官方发布者v0.1.1更新于 Oct 24, 2026

Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

已验证Streamable HTTP可网页运行数据库数据与分析AI 与机器学习

概览

AI 生成的概览

托管式 MCP 服务器,让 AI 助手用自然语言查询真实的 Postgres 或 D1 数据库,并返回实际执行的 SQL。

可以做什么
  • 用自然语言向已连接的 Postgres 或 Cloudflare D1 数据库提问,由服务推断表结构并生成 SQL
  • 通过同一服务提供的托管 HTTP 接口执行查询与插入
  • 按名称或目标创建数据库,然后用自然语言与之对话
  • 每次回答附带实际执行的 SQL 和置信度信号
  • 接入现有数据库,由服务提出变更建议、应用并测量效果
适用场景
适合需要让助手对真实业务数据做聚合、连接和分组,而不只是回忆笔记的场景,也适合不想自建后端却想用自然语言写 SQL 的团队。更适合能接受答案尚不完美、并会核对返回 SQL 的早期使用者。
运行要求
通过 streamable HTTP 连接 mcp.nlqdb.com 远程端点,并在浏览器中完成 OAuth 授权。无浏览器的主机改用本地 npm 包并配合 sk_mcp_* MCP 密钥。需要一个 Postgres 或 Cloudflare D1 数据库和 nlqdb 账号;免费层使用内置开源模型,付费方案或自带 LLM 密钥为可选项。
安装前请注意
该服务会连接你的数据库并具备写入能力:它会提出变更、应用获批的变更并可回滚,API 还包含插入和运行接口。自然语言转 SQL 的准确率仍低于项目公开标准,答案可能出错,应核对 SQL 与置信度。查询和数据会发送到第三方托管服务,客户端代码片段中会内联 API 密钥。

安装

在 SourceWeft 中

  1. 打开 控制台中的 nlqdb — analytical memory for AI agents,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.nlqdb%2Fnlqdb/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "nlqdb-analytical-memory-for-ai-agents": {
      "type": "http",
      "url": "https://mcp.nlqdb.com/mcp"
    }
  }
}

README

nlqdb — your autonomous DBA.

nlqdb attaches to the Postgres or Cloudflare D1 database you already run, proposes the changes it needs, applies the ones you approve, measures them, and reverts any that regress.

Why it exists: the mission — encapsulate the trial-and-error journey every company walks to a good database infrastructure.

Where it is going (docs/END_GOAL.md): paste a connection string — on nlqdb.com, with the CLI, through the SDK, or from your coding agent over MCP — and the first proposals arrive within minutes, each with its expected effect, cost and inverse. Apply is one click; nlqdb then measures p95 on the same queries and keeps the change or reverts it, never on your app's request path. That loop is being built (Roadmap); what is live today is the hosted product below.

No backend to build. You write HTML; each component asks for what it wants in plain English; nlqdb infers the schema, writes the SQL, runs it, and renders the result. There is no backend for you to build.

Two actions. That's the whole product:

  1. Create a database — one word: a name (or a goal).
  2. Talk to it in plain English.
html
<script src="https://elements.nlqdb.com/v1.js" type="module"></script>
<nlq-data  goal="the 5 newest orders, with customer and item"  api-key="pk_live_xxx"  template="table"  refresh="10s"></nlq-data>

That's the entire backend for a live order list — no API to write, no schema to define, no JSON to parse. Engine choice (Postgres / Mongo / Redis / DuckDB / pgvector / …), schema inference, indexing, backups, and auto-migration between engines based on your real workload are background concerns you never have to see.

Status — early, open

nlqdb is early and built in the open, but fully public — no gate, no invite code. The marketing site, the /v1/ask pipeline, the <nlq-data> / <nlq-action> elements, the chat app, the TypeScript SDK, the hosted MCP server, and the nlq CLI are all live in some form (see the surface table below). Natural-language → SQL accuracy is still climbing toward our public bar (BIRD ≥ 0.65, Spider 2.0 ≥ 0.75 on the free model chain), so answers can be wrong — every response carries a confidence signal and the SQL it ran.

Use it

Connecting an agent over MCP? On Claude Code, one marketplace add wires the hosted server and both memory skills in a single step:

/plugin marketplace add nlqdb/nlqdb/plugin install nlqdb-memory@nlqdb

On any other MCP host, connect your agent with one browser-OAuth approval; headless hosts skip the browser with npx -y @nlqdb/mcp and an sk_mcp_* MCP key (MCP setup). @nlqdb/sdk and @nlqdb/mcp are both published and importable from npm.

The 60-second walkthrough — plain HTML, CLI, and ten framework wrappers — lives at docs.nlqdb.com. Start with the HTML tutorial or the CLI tutorial.

You don't generate an API key separately: describe your database at nlqdb.com, and the chat hands you a <nlq-data> snippet with the key already inlined.

Examples

examples/ — minimal scaffolds in plain HTML, Next.js, Nuxt, SvelteKit, Astro, plus a CLI-only walkthrough. Each is the smallest valid integration around one <nlq-data> element or one CLI session.

What makes it different

Four things every release has to move, none allowed to regress (GLOBAL-025):

  • Engine quality — natural-language → SQL accuracy (measured continuously on BIRD + Spider 2.0 + an internal eval), plus the multi-engine layer that moves your data to the right engine for your workload.
  • Onboarding — landing to first answer in under a minute, no card, no config.
  • UX — see the diff before any write, see the SQL behind every answer, and on low confidence get a one-click clarify — a guided turn, never a dead-end, and never a silent guess.
  • Performance — sub-400 ms cached, sub-1.5 s cold.

The bet: get this right on free, open models and it only gets better on frontier ones — the scaffolding compounds with whatever model is underneath.

Models & plans

  • Free forever on the built-in open-model chain — queries, embeds, and the elements, no card required.
  • Bring your own LLM key (Anthropic / OpenAI / Gemini / Grok / OpenRouter) on any tier, at no markup.
  • Hosted premium models on paid plans, when you'd rather not manage a key of your own.
  • Self-host the source — the engine, CLI, MCP server, and SDKs are source-available under FSL-1.1-ALv2: free to self-host for any non-competing use, bring your own LLM key, no per-call fees. The license auto-converts to Apache 2.0 two years after each release.

The hosted-premium model lane went live 2026-08-14. The full model strategy is in GLOBAL-026.

Surfaces at a glance

SurfaceStatusWhere
HTTP API (POST /v1/ask, POST /v1/run, POST /v1/insert)✓ shippedapps/api/src/ask/**
<nlq-data> + <nlq-action> elements✓ shipped (v0.1)packages/elements/**
@nlqdb/sdk (TypeScript)✓ shipped (incl. runSql + cross-tenant grant + pack-import runner verbs) — installable from npm; insert() and runSql params publish in 0.5.0packages/sdk/**
Framework wrappers (React / Next / Vue / Nuxt / Svelte / SvelteKit / Astro / Solid + Swift)~ built + CI-tested; npm / SPM publish pendingpackages/{react,next,…}/**
Chat app nlqdb.com/app✓ shippedapps/web/**
Hosted MCP server mcp.nlqdb.com/mcp✓ shipped (host auto-detect pending)apps/mcp/**, packages/mcp/**
Local stdio MCP server @nlqdb/mcp✓ shipped — npx -y @nlqdb/mcp with an sk_mcp_* keypackages/mcp/**
Droppable agent artifacts (AGENTS.md · Claude Code skill + plugin · Cursor rules · Codex config)✓ shipped — /plugin marketplace add nlqdb/nlqdb installs the server + skills in one stepapps/web/public/agent-artifacts/**
nlq CLI (Go)✓ shipped (core verbs; device-login pending)cli/**

Full integration matrix in docs/progress.md.

Packages on npm

Published to the public npm registry with build provenance (SK-CIPERM-003). Version badges are live from npm; the table itself is generated from the workspace by scripts/sync-readme-packages.mjs, so it lists exactly the packages that are un-gated ("private" removed) and nothing that isn't.

PackageVersionWhat it isSource
@nlqdb/cli[@nlqdb/cli]Shim that installs the nlq CLI binary for the host platform.packages/cli-shim
@nlqdb/mcp[@nlqdb/mcp]Analytical-memory MCP server for nlqdb — a real database your AI agent can GROUP BY / JOIN / aggregate over in natural language, not just recall.packages/mcp
@nlqdb/sdk[@nlqdb/sdk]Typed HTTP client for the nlqdb /v1 API — works in browsers, Node, Bun, Workers.packages/sdk

Roadmap

The section below is the live focus; the numbered phases after it are the hosted product's roadmap, kept until the GLOBAL-043 deletion series. Canonical plan + exit gates: docs/phase-plan.md. Legend: ✓ shipped · ~ in progress · ◯ planned.

This roadmap is yours to shape. Want something added, reprioritised, or dropped? Open a PR editing this section (and docs/phase-plan.md if it's engine-facing), or open an issue to float it first. Say why now — which of the four north-star pillars (engine quality, onboarding, UX, performance) it moves. New to the codebase? Point your coding agent at this repo and paste:

Read README.md and docs/phase-plan.md, then propose a roadmap change:add/change "<your idea>" under the right section in one line, with a"why now" naming which north-star pillar it moves. Open a PR with justthat edit — no code.

Setup, branch naming, and the CLA are in CONTRIBUTING.md.

Now — attach to the database you already run (GLOBAL-043)

One loop — observe → propose → apply → verify → revert — on your Postgres (Supabase, Neon, RDS) or Cloudflare D1. Plan, KPIs and exit gate: GLOBAL-043.

  • ~ /app/dba change ledger — every change with its inverse, newest first; Apply / Reject on each proposal
  • ~ Attach product on synthetic databases — observer, create_index proposal, apply → verify → auto-revert, the four doors (the web door, paste a Postgres string at /app/connect then Apply / Reject in /app/dba, the API door, POST /v1/attach / client.attach() with client.applyProposal() / rejectProposal(), the CLI door, nlq attach / nlq proposals / nlq apply / nlq reject, and the MCP door, nlqdb_connect_database / nlqdb_list_proposals / nlqdb_apply_proposal / nlqdb_reject_proposal; the web, API, CLI and stdio MCP (@nlqdb/mcp 0.4.0) doors are live; hosted mcp.nlqdb.com serves the MCP tools once its held deploy runs; verify runs on its own once an applied proposal's 72 h window has passed), tested in CI
  • ◯ Postgres spike — one index proposed, applied and measured (before/after p95) on a real-traffic database
  • ◯ D1 attach on the real rateme12 — the dogfood
  • ◯ The playbook — unused-index drops, bloat, retypes, partitioning, retention, placement

Phase 0 — Foundations ✓

Worker skeleton · KV + D1 + R2 bindings · Neon adapter + OTel · LLM router (free chain) · Better Auth (GitHub + Google + magic link) · /v1/ask end-to-end · events queue + drain · Stripe webhook · CI/CD + PR preview environments.

Phase 1 — On-ramp

A stranger lands on nlqdb.com, creates a DB in plain English, embeds it, and shares the link — in under 60 seconds, no card, no config.

  • ✓ Marketing site (Astro, live at nlqdb.com)
  • ✓ <nlq-data> + <nlq-action> elements (v0.1)
  • ✓ Sign-in — magic link + GitHub + Google
  • ✓ Chat surface — streaming three-part response (answer / data / trace), anonymous mode
  • ✓ Anonymous mode — 72h token, adopted onto your account on sign-in
  • ✓ Hosted db.create pipeline (table-card embeddings stubbed pending the pgvector slice)
  • ✓ API keys dashboard (/app/keys)
  • ◯ Hello-world tutorial polish

Phase 1.5 — Trust + telemetry

  • ✓ Diff preview on writes + visible SQL trace on every response
  • ✓ Demand-signal telemetry on every "not yet" path
  • ◯ Confidence floor (clarify-on-low-confidence — a guided turn, not a dead-end) — lands with quality-eval

Phase 2 — Distribution (agent + developer surfaces)

  • ✓ Hosted MCP server (mcp.nlqdb.com/mcp) — host auto-detect pending; local stdio @nlqdb/mcp is on npm, so npx -y @nlqdb/mcp with an sk_mcp_* key is a headless route in with no browser consent step (/agents now carries it; the per-host install panel is still OAuth-only). On Claude Code, /plugin marketplace add nlqdb/nlqdb installs the server + both memory skills in one step
  • ✓ CLI nlq (Go) — core verbs + raw-SQL escape hatch; device-login + chat REPL pending
  • ✓ @nlqdb/sdk — basic methods + runSql + cross-tenant grant + pack-import runner verbs; published and importable from the registry; insert() and runSql params publish in 0.5.0
  • ~ Framework wrappers + native Swift package — built + CI-tested; npm / SPM publish pending
  • ✓ Quality-eval harness (BIRD + Spider 2.0) — a CI regression alarm for the NL→SQL interface, not a KPI
  • ~ Bring-your-own-LLM dispatch — HTTP lane live; remaining surfaces in progress
  • ◯ CSV upload in chat
  • ~ Docs-site reference completeness — SDK + framework-wrapper guides, an enumerable error-code reference, and a build-time /llms.txt for agents now live; tutorial polish remains
  • ◯ Custom domains for embeds

Phase 3 — Multi-engine engine (the moat)

  • ◯ Workload analyzer → migration orchestrator
  • ◯ ClickHouse / DuckDB / Redis as additional engines
  • ◯ Dual-read verification
  • ✓ Hosted-premium model lane (demand-gated) — live 2026-08-14 (PREMIUM_METER_LIVE flipped)

Phase 4 — Beyond v1

  • ~ Bring-your-own Postgres / ClickHouse — connect path live end-to-end (POST /v1/db/connect + web UI, CLI, SDK, query dispatch); prod-gated on the BYO_SECRET_KEK secret. Supabase adds one-click OAuth connect over the read-only Management-API (no DSN to paste); prod-gated on the SUPABASE_OAUTH_CLIENT_ID / _SECRET secrets, with a graceful fall-back to paste when unset
  • ◯ SSO (SAML / OIDC), audit-log export, per-org quotas
  • ◯ EU data residency, VPC peering, SOC 2

Develop locally

bash
git clone [email protected]:nlqdb/nlqdb.git && cd nlqdbscripts/bootstrap-dev.sh   # installs everything, pulls Ollama models, seeds .envrcscripts/login-cloud.sh     # signs you into cloud providers that have a CLI flow

bootstrap-dev.sh stands up the whole toolchain in one shot — Bun, Node 20+, Go 1.25+, uv; Biome / gofumpt / golangci-lint / ruff; lefthook git hooks; the cloud CLIs (wrangler, flyctl, stripe, gh); a local Ollama so the LLM router works offline; and a .envrc with self-generated dev secrets. Details in docs/history/infrastructure-setup.md §8.

Day-to-day:

bash
bun run fix          # biome format + lint --write (most issues)bun run check:all    # biome + golangci-lint + ruff (what CI runs)bun run hooks:run    # run pre-commit hooks against staged files

End-to-end tests (manual trigger)

E2E coverage is persona-driven and manually triggered so cost stays inside the free-tier envelope — one workflow_dispatch workflow per surface:

bash
gh workflow run e2e-opencheck.yml             # web — live LLM, Neon branch, Workers previewgh workflow run e2e-cli.yml                   # Go testscript, hermeticgh workflow run e2e-sdk.yml                   # vitest + cassettes, hermeticgh workflow run e2e-mcp.yml                   # InMemoryTransport protocol tests, hermeticgh workflow run e2e-examples.yml              # Playwright across HTML/Next/Astro/Nuxt/SvelteKitgh workflow run e2e-examples.yml -f live=true # + staging for the curl + CLI shell smokes

Run the hermetic surfaces locally without GitHub:

bash
( cd tests/e2e/cli && go test ./... )( cd tests/e2e/sdk && bun install && bun run test )( cd tests/e2e/mcp && bun install && bun run test )( cd tests/e2e/examples && bun install && bun run install:browsers && bun run test )

Only execution is manual: tests/e2e/{sdk,mcp,examples} live outside the root workspace, so CI's typecheck-e2e job tscs them on every PR — the free backstop against a suite that compiles today and rots before the next dispatch.

Conventions, persona mapping, and cassette governance are in docs/features/e2e-coverage/FEATURE.md.

Docs & reference

Community & legal

License

FSL-1.1-ALv2 — Functional Source License, Apache 2.0 future license. Source-available for any non-competing use; auto-converts to Apache 2.0 two years after each release. (Pattern used by Sentry, Convex, and others.)

nlqdb™ is an unregistered trademark of the project's licensor. See TRADEMARKS.md for usage guidelines.

来源:README.md,提交 4139a21

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 75%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。