プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Formio MCP

作者:formioバージョン 1.0.1i★ –iパソコンで動く
レジストリ名io.form/formio-mcp

インストール

概要

作者による説明(英語の原文)

Create and manage Form.io forms, resources, actions, roles, and projects from your AI agent.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他
  • 入力が必要なもの:FORMIO_API_KEY

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: FORMIO_PROJECT_URL, FORMIO_BASE_URL, FORMIO_API_KEY, FORMIO_LOGIN_FORM, FORMIO_AUTH_HOST, FORMIO_AUTH_PORT, FORMIO_AUTH_TIMEOUT, FORMIO_FORCE_BROWSER, FORMIO_REQUEST_TIMEOUT, FORMIO_INSECURE_TLS

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "formio": {
      "command": "npx",
      "args": [
        "-y",
        "@formio/mcp"
      ],
      "env": {
        "FORMIO_PROJECT_URL": "your-value",
        "FORMIO_BASE_URL": "your-value",
        "FORMIO_API_KEY": "your-value",
        "FORMIO_LOGIN_FORM": "your-value",
        "FORMIO_AUTH_HOST": "your-value",
        "FORMIO_AUTH_PORT": "your-value",
        "FORMIO_AUTH_TIMEOUT": "your-value",
        "FORMIO_FORCE_BROWSER": "your-value",
        "FORMIO_REQUEST_TIMEOUT": "your-value",
        "FORMIO_INSECURE_TLS": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add formio --env FORMIO_PROJECT_URL=your-value --env FORMIO_BASE_URL=your-value --env FORMIO_API_KEY=your-value --env FORMIO_LOGIN_FORM=your-value --env FORMIO_AUTH_HOST=your-value --env FORMIO_AUTH_PORT=your-value --env FORMIO_AUTH_TIMEOUT=your-value --env FORMIO_FORCE_BROWSER=your-value --env FORMIO_REQUEST_TIMEOUT=your-value --env FORMIO_INSECURE_TLS=your-value -- npx -y @formio/mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "formio": {
      "command": "npx",
      "args": [
        "-y",
        "@formio/mcp"
      ],
      "env": {
        "FORMIO_PROJECT_URL": "your-value",
        "FORMIO_BASE_URL": "your-value",
        "FORMIO_API_KEY": "your-value",
        "FORMIO_LOGIN_FORM": "your-value",
        "FORMIO_AUTH_HOST": "your-value",
        "FORMIO_AUTH_PORT": "your-value",
        "FORMIO_AUTH_TIMEOUT": "your-value",
        "FORMIO_FORCE_BROWSER": "your-value",
        "FORMIO_REQUEST_TIMEOUT": "your-value",
        "FORMIO_INSECURE_TLS": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "formio": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@formio/mcp"
      ],
      "env": {
        "FORMIO_PROJECT_URL": "your-value",
        "FORMIO_BASE_URL": "your-value",
        "FORMIO_API_KEY": "your-value",
        "FORMIO_LOGIN_FORM": "your-value",
        "FORMIO_AUTH_HOST": "your-value",
        "FORMIO_AUTH_PORT": "your-value",
        "FORMIO_AUTH_TIMEOUT": "your-value",
        "FORMIO_FORCE_BROWSER": "your-value",
        "FORMIO_REQUEST_TIMEOUT": "your-value",
        "FORMIO_INSECURE_TLS": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • FORMIO_PROJECT_URL env
    Optional, and the WEAKEST of the three project sources: a committed formio.json found by walking up from the working directory wins, then the per-directory mapping project_set writes, then this. It p…
  • FORMIO_BASE_URL env
    Optional, and usually unnecessary: the base URL is DERIVED from the project URL — https://api.form.io for a project on a form.io host, the parent path for a project addressed as a sub-directory — and…
  • FORMIO_API_KEY 秘密 env
    Form.io project API key. Optional — applied only to the project FORMIO_PROJECT_URL names, so set FORMIO_PROJECT_URL beside it; any other project, and every project when it is omitted, uses the browse…
  • FORMIO_LOGIN_FORM env
    URL of a custom login form used by the browser-based portal login flow. Defaults to the deployment's portal login form.
  • FORMIO_AUTH_HOST env
    Address the browser-login page binds to. Optional; defaults to 127.0.0.1. Set it to 0.0.0.0, together with FORMIO_AUTH_PORT, when the server runs in a container or on a remote machine and the login p…
  • FORMIO_AUTH_PORT env
    Fixed port for the browser-login page, so a container can publish it (e.g. 43117). Optional; a positive integer, and by default the page takes an ephemeral port.
  • FORMIO_AUTH_TIMEOUT env
    Seconds to wait for a browser login before the call fails with an error naming the remedies. Optional; a positive integer no larger than 2147483, and any other value is ignored. Defaults to 900.
  • FORMIO_FORCE_BROWSER env
    Set to 1 to attempt the browser login even where the server detects it cannot present one (CI, a container, a remote shell with no display). Use it when the login page is reachable from a browser els…
  • FORMIO_REQUEST_TIMEOUT env
    Seconds a Form.io request may go unanswered before the call fails with a network error naming the URL. Optional; a positive integer no larger than 2147483, and any other value is ignored. Defaults to…
  • FORMIO_INSECURE_TLS env
    Set to 1 to skip TLS certificate verification only for requests to the configured deployment (the hosts of the resolved project URL and base URL); every other host is verified as usual. For local dev…

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名はドメイン form.io で確認済みです(レジストリがドメインの所有を確認しています)

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32451件のうち0%よりスターが多い
  • このカテゴリのほかの32451件のうち62%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32451件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Formio MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:FORMIO_API_KEY

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.0.1)がレジストリに届いたのは23 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Recta

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

Recta

作者:RectaBuild

Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.

クラウドで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Formio MCP server

The MCP server (@formio/mcp) is independently usable from any MCP-aware client. It speaks stdio: the client spawns it and owns stdin/stdout. There is no port to open and nothing to start by hand.

From a clone of this repo, the entry point is src/stdio.ts:

pnpm install

pnpm --filter @formio/mcp exec tsx src/stdio.ts

Run that way it waits for MCP traffic on stdin, which only tells you it starts cleanly — point a client at the command instead. A built package exposes the same entry point as the formio-mcp bin and as dist/stdio.js.

Transport
TransportCommandCompatible with
stdionpx -y @formio/mcp@1.0.1 (or node dist/stdio.js)Claude Code, Claude Desktop, Cursor, VS Code, Codex, Windsurf, Cline — anything that speaks MCP over stdio

There is no HTTP or SSE transport. The server's only HTTP listener is the temporary browser-login page described under Authentication, which carries no MCP traffic.

Connect a client

The same stdio entry works everywhere, but the file it goes in and the key it goes under both vary by client — .mcp.json under mcpServers for Claude Code, .cursor/mcp.json under mcpServers for Cursor, .vscode/mcp.json under `servers` for VS Code, and .codex/config.toml as TOML for Codex. There is no universal .mcp.json. The root README carries the full per-client table; the JSON mcpServers shape is:

{

"mcpServers": { "formio-mcp": { "command": "npx", "args": ["-y", "@formio/mcp@1.0.1"], "env": { "FORMIO_PROJECT_URL": "https://your-project.form.io" } } } }

Every tool that reaches Form.io needs a project. It can come from a committed formio.json, from a per-directory mapping written by the project_set tool, or from FORMIO_PROJECT_URL in the environment — in that order, narrowest scope first, so a mapping overrides the environment and a committed file overrides both. FORMIO_BASE_URL is optional and usually unnecessary: the base URL is derived from the project URL's shape — https://api.form.io for a project on a form.io host, the parent path for a sub-directory-routed one — and is asked for only when it cannot be derived. No plugin manifest prompts for either value; every client records them per directory with project_set or a committed formio.json, and the .mcpb desktop bundle is the one exception because a desktop host has no working directory to interview in.

The server starts without either one, so a client can connect and list the tools before anything is configured — the project URL is only demanded at the point a tool needs it, and server_status works regardless.

Run in Docker

The server ships a Dockerfile and is published to Docker Hub as formio/mcp for linux/amd64 and linux/arm64. The image speaks stdio, so the MCP client owns stdin/stdout and the container must be run with -i:

docker run -i --rm \

-e FORMIO_PROJECT_URL=https://your-project.form.io \ -e FORMIO_API_KEY=your-api-key \ formio/mcp

Wired into a client — the same entry as Connect a client, with command and args pointed at Docker — that becomes (shown in the JSON mcpServers shape; VS Code uses servers and Codex uses TOML, as noted there):

{

"mcpServers": { "formio-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "FORMIO_PROJECT_URL", "-e", "FORMIO_API_KEY", "formio/mcp" ], "env": { "FORMIO_PROJECT_URL": "https://your-project.form.io", "FORMIO_API_KEY": "your-api-key" } } } }

Authentication in a container

FORMIO_API_KEY is the recommended path — no browser, nothing interactive. Browser login also works if you publish the auth port; see Headless environments for both.

Two container-specific notes regardless of auth mode. Prefer the FORMIO_PROJECT_URL environment variable over the project_set tool: project_set persists its per-directory mapping to ~/.formio/projects.json, which lives inside the container and is discarded when it exits. And the cwd argument every tool takes refers to a path *inside* the container, not on your host — while a workspace root the client reports is a host path, so pass cwd explicitly.

To reuse a token across container runs, mount the cache directory — it must be writable, since the server rewrites the file when a token is refreshed or cleared:

-v "$HOME/.formio:/root/.formio"
Self-hosted deployments

Two things commonly bite when the deployment is not public:

Hostname resolution. A private hostname won't resolve inside the container. Map it explicitly:

docker run -i --rm --add-host forms.internal:10.0.0.5 \

-e FORMIO_BASE_URL=https://forms.internal \ -e FORMIO_PROJECT_URL=https://forms.internal/my-project \ -e FORMIO_API_KEY=your-api-key \ formio/mcp

Private or self-signed certificates. The image trusts only the standard CA bundle. A certificate your host trusts — via the macOS keychain, say — will still fail inside the container, surfacing as a bare fetch failed from the tool. There are two cases, and they behave differently:

*Issued by a private CA.* Mount the CA certificate and point Node at it:

-v /path/to/rootCA.pem:/certs/rootCA.pem:ro -e NODE_EXTRA_CA_CERTS=/certs/rootCA.pem

*A fully self-signed server certificate* — one where subject and issuer are identical and there is no CA:TRUE basic constraint. NODE_EXTRA_CA_CERTS cannot fix this, even if you mount the server's own certificate: Node requires a trust anchor to be a CA, and rejects the chain with DEPTH_ZERO_SELF_SIGNED_CERT. Confirm which case you have with:

echo | openssl s_client -connect your-host:443 -servername your-host 2>/dev/null \

| openssl x509 -noout -subject -issuer

If subject and issuer match, your only option is FORMIO_INSECURE_TLS=1, which skips certificate verification only for requests to the configured deployment; every other host the server reaches is still verified. Use it for local development only — never against a production deployment.

Building the image locally

The build context is the repository root, not this directory: the image installs its dependencies from the repository's pnpm-lock.yaml with a frozen lockfile, so it carries exactly the versions the repository tested. Run this from the repository root:

docker build -f packages/mcp-server/Dockerfile -t formio-mcp .
Inspect it with MCP Inspector

The MCP Inspector connects to the server and lets you browse and call its tools by hand — useful for confirming a config works before wiring it into an agent. Start the web portal:

npx @modelcontextprotocol/inspector

It prints a URL carrying an auth token and opens a browser. The default port is 6274; if something already holds it, move both with CLIENT_PORT=6284 SERVER_PORT=6285.

Copy inspector-config.example.json to inspector-config.json, fill in your project URL and API key, and you have the file the next step asks for. That name is gitignored, so a filled-in copy cannot be committed by accident.

The same run, step by step:

1. Choose Add Servers → Import from client config.

2. Click "From file…". The dialog takes a client config file or a client installed on this machine — there is nowhere to paste JSON.

3. Select your `inspector-config.json`, and the server it defines is listed as new. Confirm with "Import 1 server".

4. Enable the server with the toggle on its card. It turns green and reports the negotiated protocol version once the container is up; the first connection is slower because Docker has to start it.

5. Open the Tools tab for the tools this server exposes. Every server lists all 25 — including project_set and project_get, which are registered for every client.

6. Pick a tool, fill in its arguments, and press "Execute Tool". The result appears in the middle pane and the JSON-RPC exchange in the right-hand Protocol panel. server_status touches no credentials and makes no Form.io request, so it isolates transport problems from auth problems; form_list below is a real call against a project.

Importing writes the server into the inspector's own catalog at ~/.mcp-inspector/mcp.json, so it is still there next time — remove it from the card when you are done. A tool that fails with a bare fetch failed is usually the deployment, not the server: see Self-hosted deployments for hostname resolution and certificate trust inside a container.


MCP server tools

The bundled @formio/mcp server exposes these 25 tools. Skills prefer these over raw HTTP whenever an operation is covered.

Forms
ToolPurpose
form_createCreate a new form. Use the formio-schema skill first to build the JSON definition. On a deployment licensed for revisions, revisions defaults to "original".
form_getFetch a single form definition by _id or path (formIdOrPath). draft: true fetches its draft instead.
form_listList forms, one page at a time, filtered by type and by tags (forms carrying every tag given). Returns summary fields unless select asks for others.
form_updateUpdate a form with its edited JSON. Call form_get first, edit with formio-schema, then update. draft: true saves a draft instead of the live form.
form_publishPublish a form's draft as its live version (formId, note). Fails with NO_DRAFT when the form has no draft. Needs the revisions licence (Security Module).
form_revertRestore a prior revision's components, tags, properties and display onto the live form (formId, version, note). Needs the revisions licence (Security Module).

| form_revision_list | List a form's revision summaries (_id, _vid, _vnote, _vuser, created, `

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く