TT

tooljet/tooljet-mcp

开发工具官方

本页由 AI 翻译,技术细节请以原文为准。 查看原文

30 stars 2 forks 质量 78 趋势 31MIT

通过受控的MCP工具和应用构建技能,端到端构建ToolJet应用。

概览

这是一个MCP服务器,允许编码代理(Codex、Claude Code等)通过ToolJet受控的API(工作区、应用/页面、数据源查询、ToolJet数据库表、组件、布局和生命周期事件)构建和维护应用。它包含生成的组件和数据源目录,使代理使用第一方合约而非猜测配置键。 - 支持个人访问令牌的 ToolJet 实例。- 针对目标 ToolJet 工作区的个人访问令牌。- Node.js 20 或更新版本。 默认的MCP配置文件通过仅开放批量创建工具,保持工具选择的紧凑;每个批次接受一个物品。较旧的客户端可以用TOOLJET_INCLUDE_LEGACY_SINGULAR_TOOLS=true恢复冗余的单数别名。 该仓库是一个自包含的仓库,将捆绑的 MCP 服务器和 tooljet-app-builder 技能一起注册。Codex 的 manifest 是 .codex-plugin/plugin.json,.mcp.json 无需用户安装或构建即可启动 bundle/index.js。

概述(AI 翻译)

这是一个MCP服务器,允许编码代理(Codex、Claude Code等)通过ToolJet治理的API(工作区、应用/页面、数据源查询、ToolJet数据库表、组件、布局和生命周期事件)构建和维护ToolJet应用。它包含生成的组件和数据源目录,使代理使用第一方合同而非猜测配置密钥。

浏览器 OAuth 连接

对于远程 HTTP 客户端,OAuth 设置通过工作区的 ToolJet 登录和同意流程连接,无需复制 PAT。OAuth 在本版本中仅支持云端,需要配套的 ToolJet Cloud 后端,包含 MCP_OAUTH_ENABLED=true 及所有五个 OAuth 迁移。现有的本地 PAT 插件仍然支持;以下前提描述了该本地设置。

先修条件

  • 支持个人访问令牌的 ToolJet 实例。
  • 针对目标 ToolJet 工作区的个人访问令牌。
  • Node.js 20年或更晚。

布置

.env:

默认的MCP配置文件通过仅展示批量创建工具,保持工具选择的紧凑;每个批次接受一个物品。较旧的客户端可以用TOOLJET_INCLUDE_LEGACY_SINGULAR_TOOLS=true恢复冗余的单数别名。

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

tooljet-mcp

An MCP server that lets a coding agent (Codex, Claude Code, …) build and maintain ToolJet apps through ToolJet’s governed APIs: workspaces, apps/pages, datasource queries, ToolJet DB tables, components, layouts, and lifecycle events. It includes generated component and datasource catalogs so agents use first-party contracts instead of guessing configuration keys.

Browser OAuth connections

For remote HTTP clients, OAuth setup connects through the workspace’s ToolJet login and consent flow without copying a PAT. OAuth is Cloud-only in this release and requires the companion ToolJet Cloud backend with MCP_OAUTH_ENABLED=true and all five OAuth migrations. Existing local PAT plugins remain supported; the prerequisites below describe that local setup.

Gemini CLI and Kiro

Build a Gemini CLI extension or Kiro power from the same maintained skill, then configure a native Cloud OAuth connection. Generated packages are ignored build artifacts; local installation does not establish public gallery availability or successful live OAuth/app editing.

Prerequisites

Grok Build Cloud plugin

See Grok Build setup for the separate native HTTP/OAuth package, workspace selection, validation and reviewer checks. Build it with npm run build:grok-plugin; it reuses the canonical skill and does not ship a PAT or local MCP runtime. Live Grok OAuth compatibility must be verified before marketplace submission.

GitHub Copilot

See Copilot setup for the shared app-builder skill package and native Cloud OAuth connection instructions. npm run build:copilot-plugin builds ignored distribution output; no separate skill source is maintained. The package requires an existing ToolJet MCP connection and is not yet marketplace-listed.

Cursor and MCP Registry

Cursor users can use the same maintained skill with a native Cloud OAuth connection; see Cursor setup. The official MCP Registry metadata is prepared separately. Neither build publishes a marketplace or registry listing.

Local server

  • A ToolJet instance with personal access token support.
  • A personal access token for the target ToolJet workspace.
  • Node.js 20 or newer.

Setup

git clone https://github.com/ToolJet/tooljet-mcp.git
cd tooljet-mcp
cp .env.example .env        # then edit .env with your creds
npm install
npm run build               # compiles to dist/

.env:

TOOLJET_URL=http://localhost:3000        # your ToolJet deployment
TOOLJET_PAT=tj_pat_...                   # Settings -> Access tokens, in the target workspace
# Only needed if the UI is served from a different origin than TOOLJET_URL (defaults to it otherwise):
# TOOLJET_DEPLOYMENT_URL=http://localhost:8082
在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "tooljet": { "httpUrl": "https://mcp-oauth.tooljet.com/mcp/YOUR-WORKSPACE-UUID", "oauth": { "enabled": true } } } }