Agent工坊

【Agent工坊】AI编程Agent的后端基础设施:InsForge部署与MCP集成实战指南

2026年5月,开源项目InsForge登上Hacker News首页(61 points),被社区称为"AI编程Agent的Heroku"。它让Claude Code、Hermes Agent等AI编程助手拥有了完整后端能力:数据库、认证、存储、边缘函数——全部通过MCP协议一键接入。

一、为什么AI编程Agent需要专用后端

AI编程助手已经能写出漂亮的前端代码,但在后端领域始终有一道坎:基础设施碎片化

一个典型AI辅助开发的SaaS项目需要:

  • PostgreSQL(Neon/Supabase)
  • 用户认证(Clerk/Auth0)
  • 文件存储(S3/Cloudflare R2)
  • AI网关(OpenRouter/直接API)
  • 部署(Vercel/Railway)

每个服务都要单独注册、配置、获取API Key——而AI Agent不会自己做这些。程序员必须手工完成这些"胶水工作",然后把上下文喂给Agent。这恰恰是AI自动化链条上最薄弱的一环。

InsForge解决的就是这个问题:把所有后端基础设施打包成一个MCP Server,AI Agent可以像调用工具一样操作数据库、创建存储桶、部署边缘函数。不需要打开5个浏览器标签页,不需要手动复制API Key——Agent直接通过MCP协议完成一切。

二、InsForge是什么

InsForge是一个开源的、面向AI Agent的后端即服务平台(Apache 2.0协议),核心产品包括:

模块能力对标
Authentication邮箱/密码 + OAuth(Google/GitHub),JWT会话管理Clerk
DatabasePostgreSQL + PostgREST自动API生成Supabase
StorageS3兼容文件存储Cloudflare R2
Model GatewayOpenAI兼容API,统一多LLM提供商OpenRouter
Edge FunctionsDeno运行时,边缘部署Vercel Functions
Compute长时运行容器服务(private preview)Railway

关键区别:以上所有能力通过两个接口暴露给AI Agent:

  1. MCP Server(自托管+云端):将InsForge的操作暴露为MCP工具,任何MCP兼容的Agent可调用
  2. CLI + Skills(云端):命令行接口配合Agent Skills,Agent直接通过终端操作

截至2026年5月,项目已有4056次commit,GitHub Star数快速增长,入选Vercel OSS计划。

三、架构解析:Agent如何操作后端

InsForge MCP架构:AI编程Agent通过MCP协议连接后端基础设施

▲ InsForge MCP架构:AI编程Agent通过MCP协议统一操作所有后端基础设施

InsForge的架构可以用下面这张图理解:

┌──────────────────────────────────┐

│ AI Coding Agent │

│ (Claude Code / Hermes / Codex) │

└──────────────┬───────────────────┘

               │ MCP Protocol

               ▼

┌──────────────────────────────────┐

│ InsForge MCP Server │

│ ┌──────┬──────┬──────┬──────┐ │

│ │ Auth │ DB │Storage│ Func │ │

│ └──────┴──────┴──────┴──────┘ │

│ ┌──────┬──────┐ │

│ │Gateway│Compute│ │

│ └──────┴──────┘ │

└──────────────────────────────────┘

MCP Server将InsForge的基础设施操作包装成标准MCP工具。Agent看到的不是"PostgreSQL连接字符串"和"AWS IAM策略",而是可读的工具名:

  • fetch-docs — 获取SDK文档
  • get-backend-metadata — 读取项目配置(Base URL、Anon Key等)
  • run-raw-sql — 执行SQL语句
  • get-table-schema — 查看表结构
  • create-bucket / list-buckets — 管理存储桶
  • create-function / update-function / delete-function — 管理边缘函数
  • download-template — 下载项目模板(含预配置的后端URL和Key)

真实工作流:开发者只需要说"帮我建一个带用户登录的待办事项应用",Agent会:

  1. 调用 download-template 下载Next.js模板
  2. 调用 run-raw-sql 创建 todos
  3. 调用 get-backend-metadata 获取API Key
  4. 自动生成前端代码,调用InsForge SDK完成CRUD
  5. 开发者只需审核代码、运行 npm run dev

四、实战部署:5分钟搭建InsForge

4.1 Docker Compose本地部署(推荐新手)

前提:Docker + Node.js 已安装。

# 1. 克隆仓库

git clone github.com/InsForge/InsForge.git

cd insforge

# 2. 配置环境变量

cp .env.example .env

# 3. 启动所有服务(PostgreSQL + PostgREST + Auth + Storage + App)

docker compose -f docker-compose.prod.yml up -d

启动后访问 ` Server。

输出示例

[+] Running 6/6

 ✔ Container insforge-postgres Started

 ✔ Container insforge-postgrest Started

 ✔ Container insforge-auth Started

 ✔ Container insforge-storage Started

 ✔ Container insforge-app Started

 ✔ Container insforge-functions Started

InsForge is ready at http://localhost:7130

Docker Compose一键部署InsForge,6个容器依次启动

▲ Docker Compose一键部署:6个容器自动编排,30秒启动完整后端

4.2 连接Claude Code

在Claude Code的MCP配置中添加:

{

  "mcpServers": {

    "insforge": {

      "command": "npx",

      "args": ["-y", "@insforge/mcp-server"],

      "env": {

        "INSFORGE_URL": "http://localhost:7130"

      }

    }

  }

}

4.3 验证连接

向Agent发送提示词:

I'm using InsForge as my backend platform, call InsForge MCP's

fetch-docs tool to learn about InsForge instructions.

如果Agent成功调用并返回SDK文档,说明连接正常。

4.4 运行多个项目

InsForge支持在同一台机器上运行多个独立项目——每个项目有独立的数据库、存储和配置:

# 为每个项目创建独立env文件

cp .env.example .env.project1

cp .env.example .env.project2

# 修改project2端口(避免冲突)

# POSTGRES_PORT=5442

# APP_PORT=7230

# 用不同project名启动

docker compose -f docker-compose.prod.yml --env-file .env.project1 -p project1 up -d

docker compose -f docker-compose.prod.yml --env-file .env.project2 -p project2 up -d

4.5 云端部署(免Docker)

如果不想本地跑Docker,InsForge支持一键部署到Railway、Zeabur、Sealos。直接访问 insforge.dev 注册云端版即可。

五、SDK实战:Agent驱动的全栈开发

InsForge提供了 @insforge/sdk npm包,Agent生成的代码可以直接使用。以下是核心模块的使用示例:

5.1 初始化客户端

import { createClient } from '@insforge/sdk';

const client = createClient({

  baseUrl: 'your-app.region.insforge.app',

  anonKey: 'your-anon-key-here' // 从 get-backend-metadata 获取

});

5.2 数据库操作

InsForge SDK对每个表自动生成REST API,Agent无需手写SQL(但也可以写):

// Agent自动生成的CRUD代码

// 创建记录

const { data, error } = await client

  .from('todos')

  .insert([{ title: '部署InsForge', completed: false }])

  .select();

// 查询记录

const { data: todos } = await client

  .from('todos')

  .select('*')

  .eq('completed', false)

  .order('created_at', { ascending: false });

// 更新记录

await client

  .from('todos')

  .update({ completed: true })

  .eq('id', 1);

5.3 用户认证

// 注册

const { data, error } = await client.auth.signUp({

  email: 'user@example.com',

  password: 'secure-password'

});

// 登录

const { data } = await client.auth.signInWithPassword({

  email: 'user@example.com',

  password: 'secure-password'

});

// 获取当前用户

const { data: { user } } = await client.auth.getUser();

5.4 文件存储

// 上传文件

const { data, error } = await client.storage

  .from('avatars')

  .upload('user-123.png', file);

// 获取公开URL

const { data: { publicUrl } } = client.storage

  .from('avatars')

  .getPublicUrl('user-123.png');

5.5 边缘函数

// 调用已部署的Serverless函数

const { data } = await client.functions.invoke('process-payment', {

  body: { amount: 99.99, currency: 'USD' }

});

Agent集成:以上代码片段都由AI Agent通过MCP获取最新SDK文档后自动生成,不需要开发者记忆API细节。

六、完整案例:Agent用InsForge构建Todo应用

下面展示一个完整流程:让AI Agent从零构建一个带用户认证的Todo应用。

6.1 初始化项目

向Agent发送:

用InsForge构建一个Todo应用,需要用户注册/登录,支持CRUD操作,

前端用React + Tailwind CSS 3.4。

Agent自动执行的步骤:

# Agent调用 download-template 获取项目模板

# 输出:Next.js + React + Tailwind项目已创建,InsForge SDK已预配置

# 检查模板结构

ls -la

# src/

# app/

# components/

# lib/insforge.ts ← SDK客户端已预配置

# package.json

# tailwind.config.js

6.2 创建数据库表

Agent通过MCP run-raw-sql 工具执行:

-- Agent生成的Schema

CREATE TABLE todos (

  id BIGSERIAL PRIMARY KEY,

  user_id UUID NOT NULL REFERENCES auth.users(id),

  title TEXT NOT NULL,

  completed BOOLEAN DEFAULT false,

  created_at TIMESTAMPTZ DEFAULT now()

);

-- 启用行级安全

ALTER TABLE todos ENABLE ROW LEVEL SECURITY;

-- 用户只能访问自己的todos

CREATE POLICY "Users can only access their own todos"

  ON todos FOR ALL

  USING (auth.uid() = user_id);

6.3 生成前端代码

Agent自动生成React组件(关键部分):

// src/components/TodoList.jsx

import { createClient } from '@/lib/insforge';

import { useState, useEffect } from 'react';

export default function TodoList() {

  const [todos, setTodos] = useState([]);

  const [newTitle, setNewTitle] = useState('');

  const client = createClient(/* 配置从模板自动注入 */);

  useEffect(() => {

    loadTodos();

  }, []);

  async function loadTodos() {

    const { data } = await client

      .from('todos')

      .select('*')

      .order('created_at', { ascending: false });

    setTodos(data || []);

  }

  async function addTodo() {

    if (!newTitle.trim()) return;

    await client.from('todos').insert([{ title: newTitle }]);

    setNewTitle('');

    loadTodos();

  }

  async function toggleTodo(id, completed) {

    await client.from('todos').update({ completed: !completed }).eq('id', id);

    loadTodos();

  }

  return (

    <div className="max-w-md mx-auto mt-10">

      <h1 className="text-2xl font-bold mb-4">我的待办事项</h1>

      <div className="flex gap-2 mb-4">

        <input

          value={newTitle}

          onChange={(e) => setNewTitle(e.target.value)}

          className="flex-1 border rounded px-3 py-2"

          placeholder="添加新任务..."

        />

        <button onClick={addTodo} className="bg-blue-500 text-white px-4 py-2 rounded">

          添加

        </button>

      </div>

      <ul className="space-y-2">

        {todos.map((todo) => (

          <li key={todo.id} className="flex items-center gap-2 p-2 border rounded">

            <input

              type="checkbox"

              checked={todo.completed}

              onChange={() => toggleTodo(todo.id, todo.completed)}

            />

            <span className={todo.completed ? 'line-through text-gray-400' : ''}>

              {todo.title}

            </span>

          </li>

        ))}

      </ul>

    </div>

  );

}

6.4 运行验证

npm install

npm run dev

# 打开 http://localhost:3000

# 注册 → 登录 → 添加Todo → CRUD全部正常 ✅

耗时统计:从发出指令到完整可运行应用,Agent完成时间约3-5分钟。传统方式下,手动配置PostgreSQL+Clerk+Vercel至少需要30分钟。

七、安全机制:Agent操作的安全边界

让AI Agent直接操作数据库和文件系统,安全性是第一要务。InsForge正在构建三层安全体系:

7.1 动态权限(开发中)

Agent获取的API Key具有有限作用域。当Agent需要扩展权限时(如删除表),会向开发者请求批准,且扩展后的权限仅对当前任务有效。

7.2 可逆操作(开发中)

类似"Git for backend"——所有写操作都有快照。Agent出错后可以一键回滚到之前的后端状态。

7.3 行级安全(已可用)

PostgreSQL的Row-Level Security(RLS)策略确保Agent只能操作用户授权范围内的数据。上面的Todo示例中,auth.uid() = user_id 策略保证用户A看不到用户B的Todo。

八、踩坑与排障

8.1 Docker端口冲突

症状docker compose up 报端口占用错误。

原因:默认端口(7130、5432等)被其他服务占用。

解决

# 修改 .env 中的端口

POSTGRES_PORT=5433 # 默认5432

APP_PORT=7131 # 默认7130

8.2 MCP连接失败

症状:Agent提示 "MCP server connection refused"。

排查步骤

# 1. 确认InsForge服务运行中

docker compose -f docker-compose.prod.yml ps

# 2. 确认MCP Server端点可访问

curl http://localhost:7130/mcp

# 3. 检查Claude Code MCP配置的URL是否正确

# ~/.claude/mcp.json 中 INSFORGE_URL 必须是 http://localhost:7130

8.3 SDK版本不匹配

症状:Agent生成的代码调用SDK方法报 undefined

原因:Agent使用了缓存的旧版SDK文档。

解决:在每次开始编码前,要求Agent调用 fetch-docs 获取最新文档:

Before writing any InsForge code, call fetch-docs to get the latest SDK documentation.

8.4 Tailwind CSS v4不兼容

症状:样式渲染异常、类名不生效。

原因:InsForge官方明确要求使用Tailwind CSS 3.4,升级到v4会破坏样式系统。

解决:锁定Tailwind版本:

// package.json

{

  "devDependencies": {

    "tailwindcss": "^3.4.0"

  }

}

8.5 OpenAI兼容端点调用失败

症状:Agent通过Model Gateway调用LLM时返回401。

解决:Cloud版自动从Model Gateway面板获取OpenRouter Key。自托管需手动配置:

# .env

OPENROUTER_API_KEY=sk-or-v1-your-key-here

九、与同类工具对比

InsForge vs Supabase vs Firebase vs Vercel+Neon后端平台对比

▲ 四大后端平台对比:InsForge是唯一原生支持MCP协议的Agent友好型后端

特性InsForgeSupabaseFirebaseVercel + Neon
Agent原生支持✅ MCP Server❌ 需手动配置
MCP协议✅ 完整覆盖
开源✅ Apache 2.0
一键部署✅ 3个平台
AI网关✅ 内置
适合Agent⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

InsForge的核心差异点不是技术能力(这些单点功能Supabase也有),而是对AI Agent工作流的原生适配。MCP协议将碎片化的后端能力统一为一个Agent可理解的接口,这是其他平台尚未做到的。

十、路线图与未来

InsForge团队在HN评论区透露了后续计划:

  1. 动态权限系统:Agent获得细粒度、可审批的临时权限
  2. 后端Git:所有写操作可回滚,降低Agent误操作风险
  3. 本地模拟器:开发者在本地测试,然后无缝同步到生产环境
  4. 更多Agent平台支持:除了Claude Code和Codex,计划支持Cursor、Windsurf等

从4月初的"Supabase替代品"定位,到5月底的"Agent原生后端平台",InsForge的迭代速度非常快——2个月内完成了3次HN展示,Star数快速增长。

十一、行动建议

对于AI创业者,InsForge给出了一个清晰的信号:AI Agent正在从"代码生成器"进化为"全栈开发者"。基础设施层面的适配——让Agent能像人一样操作后端——是这一进化的关键助推器。

立刻可以做的事

  1. 花30分钟部署InsForge:Docker Compose一行命令,比手动搭PostgreSQL+Auth+Storage快10倍
  2. 让Agent构建第一个InsForge应用:选一个你正在做的Side Project,看Agent能不能从零实现后端的80%
  3. 关注MCP生态:InsForge证明了"后端即MCP服务"的可行性,类似的"Agent原生基础设施"会越来越多
  4. 评估生产就绪度:截至2026年5月,InsForge适合Side Project和MVP阶段,生产级应用建议等动态权限和Git回滚功能上线后再迁移

风险提醒:InsForge仍处于快速迭代期,API可能变动。生产环境使用前请锁定SDK版本、做好数据备份、充分测试RLS策略。项目Apache 2.0开源,可以审计代码后自行托管。


常见问题(FAQ)

Q1:InsForge和Supabase有什么区别? A:功能上有重叠(都用PostgreSQL、都有认证和存储),但定位完全不同。Supabase是开发者工具,InsForge是Agent工具。InsForge的MCP Server让AI Agent无需人类介入即可完成数据库建表、函数部署、存储桶创建——这是Supabase做不到的。

Q2:InsForge免费吗? A:自托管版完全免费(Apache 2.0开源)。云端版有免费额度,足以支持Side Project开发。

Q3:需要学习新的查询语言吗? A:不需要。数据库操作使用标准SQL(通过MCP run-raw-sql),SDK API与Supabase SDK高度相似(from().select().insert() 模式),学习成本极低。

Q4:Agent会不会不小心删掉生产数据? A:这是合理的担忧。建议:(1)开发环境使用独立实例;(2)启用RLS策略限制数据访问范围;(3)等待InsForge的"Git回滚"功能上线后再用于生产。

Q5:支持哪些AI编程Agent? A:任何支持MCP协议的Agent(Claude Code、Hermes Agent、Codex、Continue等)。InsForge还提供Claude Code和Codex的专用Skills文件。


#AI创业 #Agent工坊 #InsForge #MCP #后端即服务 #AI编程 #一人公司

本文由AI辅助创作,经人工审核编辑发布