AI代理工具构建服务器

Architect MCP是一个AI代理工具构建服务器,允许AI代理动态创建、测试和保存自定义JavaScript工具,运行在安全的沙箱环境中,并提供实时仪表板管理和全局市场功能。

  • by ageborn-dev
  • TypeScript
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 ageborn-dev/architect-mcp-server

使用说明

架构MCP服务器

构建自己工具的AI代理工作室。


🚀 什么是建筑师?

人工智能代理非常聪明,但当他们需要一个尚不存在的工具时,他们遇到了困难。 建筑师MCP拆除了那堵墙。

与其给你的AI代理一个固定的、僵化的工具箱,不如给它一个完整的工具箱 车间.如果您的代理需要调用非常规的API、解析模糊的文件格式或挂接数据库,它只需在运行中为其编写一个自定义工具。

一旦获得您的批准,该工具就会在隔离的沙盒中安全运行。下次你的经纪人遇到同样的问题?定制工具已经准备就绪。


✨ 主要特点

  • 自动工具创建: 代理实时构建、测试并永久保存自己的JavaScript工具。
  • 铁一般的安全和沙盒: 每个自定义工具都在高度受限的沙盒中执行。网络或文件系统访问需要通过精细的功能范围获得明确的用户批准。
  • 内置Web仪表板: 一个漂亮的实时仪表板UI(在端口上运行 3001 开箱即用)。管理您的活动工具,实时查看执行日志,监控故障,并安全地管理机密。
  • Cron调度: 不仅仅是手动使用!代理可以设置自定义工具以按cron计划运行或构建连续的后台管道。
  • 全球市场: 如果其他人已经这样做了,为什么还要从头开始构建?代理人可以搜索(marketplace_browse),安装(marketplace_install),甚至分享你的创作(marketplace_publish)使用GitHub令牌。
  • 持久数据层: 内置、超快的SQLite存储,用于可靠地管理工具、运行日志和执行状态。

🛠️ 入门指南

1.简单的本地设置

如果你安装了Node.js,你可以在几秒钟内运行。

npm install
npm run build
npm start

或者,一旦发布到npm,就无需设置即可运行它:

npx architect-mcp-server

MCP客户端配置(克劳德桌面/克劳德代码/光标):

{
  "mcpServers": {
    "architect": {
      "command": "npx",
      "args": ["architect-mcp-server"]
    }
  }
}

(专业提示:对于开发,使用 npm run dev 以启用自动重启。)

2.Docker设置(推荐)

不想弄乱Node环境?只需使用Docker Compose启动即可:

docker compose up -d

您的数据和工具在持久Docker卷内保持安全,仪表板可立即在 http://localhost:3001.


⚙️ 网关API(令牌优化)

每个暴露的MCP工具都会在AI客户端的会话中消耗上下文令牌。架构师通过以下方式展示其整个管理表面 8网关工具 (总共约2K个代币,而170多个单个工具约为23K):

网关 盖子
tool 创建、更新、验证、批准、激活、测试、版本、模板、导入/导出
find 列表、搜索、查看源代码、依赖关系图、意图匹配
run 批次、别名、管道
automate cron时间表、webhooks
store 机密、键值存储、MCP资源和提示
share 市场发布/浏览/安装,同行
admin 统计数据、审计日志、缓存、异常、人物角色、系统状态
browser 所有浏览器自动化操作

每个网关称为 {action: "<name>", args: {...}}.呼叫 {action: "help"} 列出可用操作; {action: "help", args: {action: "create_tool"}} 返回该操作的完整参数模式。由代理创建的自定义工具始终注册为可直接调用的MCP工具。

webhook服务器(端口 3002)按需启动——当webhook存在或创建时。

安全: 功能批准绑定到工具代码和导入的SHA-256哈希值。任何代码更改都会使批准无效,必须重新批准该工具——工具永远不能默默地继承新代码的权限。进口工具从不附带自己的权限。

🧱 沙盒执行

工具代码在 可重用子进程池,不在主服务器进程中:

  • 真正的隔离 --每个工具都在一个单独的操作系统进程中执行,该进程具有自己的内存 vm 每次执行的上下文(工具之间没有状态泄漏)。
  • 硬超时 --失控的工具(甚至是无限循环)在进程级别被杀死,而不仅仅是发出信号。
  • 每个进程的内存上限 --通过强制执行 --max-old-space-size.
  • 经纪能力 — net, fs, child_process, env, secrets,以及 callTool 在沙箱中永远无法直接使用;子节点向父节点发送请求,父节点执行批准的功能范围并执行操作。沙盒只会看到它被允许看到的结果。
  • 暖池 --进程在调用之间重用(在设定的执行次数或任何超时后回收),因此没有每次调用的生成成本。

可通过环境变量进行调整: ARCHITECT_SANDBOX_POOL (最大进程数,默认4), ARCHITECT_SANDBOX_MAX_EXEC (回收前执行,默认值50), ARCHITECT_SANDBOX_MEMORY_MB (每个进程的堆上限,默认值128)。

🛡️ 信任与可靠性

  • 秘密编辑 --在返回给AI之前,扫描工具输出、日志和错误消息以查找存储的秘密值;比赛被替换为 [REDACTED:NAME],阻断快速注射渗出。
  • 测试门控激活 --如果一个工具有测试用例,它们必须在工具激活之前通过沙盒(create_tool, save_tool,模板都强制执行此操作)。以JSON数组的形式通过测试: [{name, input, expect?, expectError?}].
  • 已签署的出口 — export_tool 使用本地ed25519密钥对工具进行签名; import_tool 拒绝任何内容被篡改的签名导出,并将未签名的导入标记为不可信。
  • 原子写入 --版本快照和工具写入发生在单个SQLite事务中;模式迁移在启动时自动运行。
  • 隔离 --无法加载的工具(损坏的数据、过时的批准)将被隔离并列在 get_system_status 而不是默默地跳过。
  • 健康与轮换 — GET http://localhost:3001/health 为了生动;审计日志会自动设置上限(默认为10000行,请使用 ARCHITECT_AUDIT_MAX_ROWS).
  • 加密和签名密钥存在 data/ (从未提交或发表)。

🧠 工作流的外观

  1. 创建: 你的AI代理需要完成一些新的事情,所以它会编写JavaScript代码来完成它。
  2. 审核和批准: 您查看该工具请求的权限,然后单击“批准”,授予其安全的网络或文件访问权限。不允许使用流氓脚本。
  3. 执行: 代理在隔离的沙箱中安全地运行其闪亮的新工具。
  4. 自动化和共享: 代理可以设置工具按计划运行,将其与其他工具链接,或将其发布到全球市场。

内置于❤️ 以及咖啡的质量 老年人.
因为代理应该是建设者,而不仅仅是用户。