
Backenly
io.github.backenly由 GitHub 账号 backenly 发布v0.4.0更新于 Oct 24, 2026
Postgres backend your coding agent builds over MCP; destructive actions wait for a person.
概览
Backenly 是远程或本地运行的 MCP 服务器,让编码助手通过自然语言创建和管理 Postgres 后端,破坏性操作须经人工批准。
- 可以做什么
- 用自然语言提出需求,由 Backenly 规划并执行后端变更,再返回摘要。读取后端状态、数据表结构、REST 端点、RLS、指标与错误,并执行只读 SQL 查询。应用数据库结构迁移、插入或更新数据行,以及设置行级安全规则。管理认证、存储、函数、实时、集成、监控、Webhook、部署与预览分支等能力。轮询已升级的破坏性请求,等待人工批准。
- 适用场景
- 适合让编码代理直接在同一 Postgres 后端上创建和调整数据表、RLS、API 与部署,而不必手动切换控制台。也适合需要只读查询与结构查看、同时希望破坏性操作仍由人工批准的团队。
- 运行要求
- 需要 Backenly 项目与范围限定的 MCP 密钥(BACKENLY_API_KEY,以 mcp_live_ 开头),可通过环境变量或安装程序写入的本地配置文件提供。本地运行需 Node.js 20 以上,并需连接 backenly.com 或自托管端点(BACKENLY_API_URL)。
安装
在 SourceWeft 中
- 打开 控制台中的 Backenly,将其添加到工作区。
- 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.backenly%2Fbackenly/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。
{
"mcpServers": {
"backenly": {
"type": "http",
"url": "https://backenly.com/api/mcp"
}
}
}README
@backenly/mcp-server
Plug Backenly into Claude Code, Cursor, Codex, Cline, and Claude Desktop over the Model Context Protocol.
Run it before you open the agent: hosts read MCP config when a conversation starts, so the tools appear in the next conversation, not the one that ran the command. An agent that installs it mid-conversation keeps working through npx -y @backenly/cli@latest call <tool>, which reaches the same tools with the same key.
What you get
Twenty-three advertised tools, not sixty. The catalog is an allowlist admitted on one
rule — is there exactly one tool here that answers a given request? — because
tool-selection accuracy degrades with catalog size and models misfire hardest
between similarly-named tools. Everything else is reached through backend_chat.
Unlisted tools stay dispatchable, so clients pinned to an older manifest keep
working.
backend_chat — say what you want
The host LLM hands the request to Backenly's brain. Brain plans, executes, and returns a summary. The host LLM never has to learn a vocabulary.
Read
read_backend_state— the single read-state door. Call with no arguments for the grounding overview; passsection(schema,tables,apis,rls,metrics,errors,deploy,usage,autonomy, …) to drill in. It replaces the ~26list_*/get_*tools, which remain dispatchable.run_query— standard read-only SQL over your workspace schema: joins,GROUP BY, aggregates, window functions, CTEs,EXPLAIN. Runs as a SELECT-only Postgres role scoped to the project, so isolation is a database grant rather than a parser. Secret-bearing columns come back redacted.get_table_schema— everything about one table: columns, foreign keys, indexes, CHECK constraints with their permitted values, and live RLS policies. Read it before any write.generate_types— TypeScript types (or a typed client, or OpenAPI) from the live catalog, with aschemaHashfor drift checks.fetch_docs— pull current Backenly docs instead of guessing.check_approval— poll an escalated destructive request.
Write
apply_migration— ordinary PostgreSQL DDL (CREATE TABLE,ALTER TABLE,CREATE INDEX), translated statement by statement into governed actions. All-or-nothing; anything it cannot govern is refused with the tool to use instead. Not raw SQL execution.db_insert/db_update/db_delete— row writes. Owner-level: validates shapes but bypasses end-user RLS and triggers, so treat them as maintenance tools.set_rls— a row-level security predicate installed verbatim and read back frompg_policies.
Capabilities
One tool per dashboard section, each with an action: auth, storage, functions, realtime, integrations, monitoring, autonomy, webhooks, deploy, connect, plus branch (preview branches). Each tool's description lists its actions and their arguments. Destructive and high-risk actions (deploy, rollback, deletes, revoking a key) park the exact call for a human and run it verbatim once approved; poll check_approval. REST endpoints need no generation step, and older tool names such as enable_auth or adopt_external_schema stay callable by name without being advertised.
Resources (11)
Browse live state without spending a tool call:
Setup
Generate a scoped key from backenly.com → your project → Connect → Agents. It starts with mcp_live_, only works on MCP routes, and is revocable from the same page.
Claude Code / Codex — one command:
Cursor (~/.cursor/mcp.json, not the project's), Cline (cline_mcp_settings.json), Claude Desktop — same server block:
Prefer to keep the key out of a file you might commit? Run the installer once —
it verifies the key, writes ~/.backenly/mcp.json (mode 0600), and prints config
snippets. The host block then needs no key at all.
Open a new conversation in your host. Backenly appears as a tool surface.
The mcp_live_ key is for your agent only. Backenly's runtime API refuses it,
so it never goes in app code or an app's environment: the app gets its own key
from connect { action: "create_api_key" }, or Settings → API keys.
How it works
The package contains zero business logic — it's a thin protocol adapter. Tool definitions, billing, rate limiting, and audit logging all live server-side. New brain tools appear in your host immediately without npm update.
Protocol
Built on the official MCP TypeScript SDK (v2). It serves both protocol eras from one server: hosts that open with initialize (revisions 2024-11-05 through 2025-11-25) and hosts that speak 2026-07-28 (server/discover, per-request _meta). Requires Node.js 20 or newer.
Every tool result carries the server's JSON body twice: as structuredContent, for hosts that read fields (ok, code, hint, applied, approval, …), and as text, for hosts that only read text. A failure adds a second text block saying what its fields mean for the next step. Fields the server did not send stay absent.
What this package serves (tools, instructions, resources, result shapes) is what the remote endpoint (https://backenly.com/api/mcp) serves, and CI compares the two call for call.
Reliability
- Retry — network errors and
502/503/504retry with exponential backoff (250ms / 1s / 3s + jitter), honoringRetry-After. - Boot health check —
/api/mcp/healthruns before manifest fetch so auth failures surface in <1s. - Graceful shutdown — SIGINT/SIGTERM close the transport cleanly so MCP hosts don't see corrupt frames.
- Correlation IDs — every request carries
x-correlation-idfor distributed tracing.
Security
- MCP keys (
mcp_live_…) are scope-gated —/api/mcp/*rejectsruntimeSDK keys. A leaked SDK key cannot be replayed against MCP to drop tables. - Destructive tools are not exposed.
drop_table,delete_bucket,truncate_table, etc. are never executed from MCP. Ask for one viabackend_chatand it parks in the project's Review Queue and returns an approval id; a human decides in the dashboard and you pollcheck_approvaluntil it is executed or rejected. The agent cannot self-approve. - Per-key rate limit — sliding-window using
ApiKey.rateLimit/rateLimitWindow. 429 includesRetry-After+X-RateLimit-*headers. - Audit log — every mutation through MCP writes an
AuditLogrow on your project timeline. - Local config is written with
0600permissions (user-only readable). - Revoke any key, or disconnect an agent you signed in from the browser, anytime from your project's Connect → Agents page.
Environment
CLI
Troubleshooting
"This key has scope='runtime'" — you pasted your SDK anon key. Generate a separate MCP key from the project's Connect → Agents page.
"Could not reach Backenly" — check your internet or set BACKENLY_API_URL if self-hosting.
Host shows "MCP server crashed" — run npx @backenly/mcp-server health to verify the key. Check ~/.backenly/mcp.json exists and has mode 0600.
Rate-limited (429) — your MCP key hit its per-minute cap. Default is 600/min; raise it from the dashboard or wait until X-RateLimit-Reset.
License
MIT — see LICENSE.
来源:packages/mcp-server/README.md,提交 08671c7
工具
0版本历史
1- v0.4.0最新Oct 24, 2026
评分
已满足适用检查项的 85%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分