# esbuild

Runs the esbuild bundler and returns structured errors, warnings, and output files.

Agent View of the PolicyLayer registry record for `esbuild`. HTML page: https://policylayer.com/tools/io-github-dave-london-go/esbuild

## Facts

- Tool: `esbuild`
- Server: Go (`Dave-London/Pare`) — https://policylayer.com/tools/io-github-dave-london-go.md
- Homepage: https://github.com/Dave-London/pare
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "esbuild",
    "arguments": {}
  }
}
```

## Why esbuild is rated High

The tool invokes the esbuild bundler as an external process. This is an execution of an arbitrary build pipeline that can read from the filesystem, write output files, and run plugins. Since it produces side effects (output files written to disk) and executes external tooling, Execute is the appropriate category.

From the tool's own definition: "'Runs the esbuild bundler' — actively executes an external build/bundler process whose effects depend on arguments (entry points, output paths, plugins, etc.)"

## Use case

AI agents invoke esbuild to trigger actions in Go. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Go:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "esbuild": {
      "limits": [
        {
          "counter": "esbuild_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Go (201)

- `branch` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/branch.md
- `clean` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/clean.md
- `package-clean` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/package-clean.md
- `remove` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/remove.md
- `reset` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/reset.md
- `secret-delete` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/secret-delete.md
- `tag` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/tag.md
- `variable-delete` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/variable-delete.md
- `workspace` — Destructive — https://policylayer.com/tools/io-github-dave-london-go/workspace.md
- `add` — Execute — https://policylayer.com/tools/io-github-dave-london-go/add.md
- `add-package` — Execute — https://policylayer.com/tools/io-github-dave-london-go/add-package.md
- `ansible-galaxy` — Execute — https://policylayer.com/tools/io-github-dave-london-go/ansible-galaxy.md
- `ansible-playbook` — Execute — https://policylayer.com/tools/io-github-dave-london-go/ansible-playbook.md
- `api` — Execute — https://policylayer.com/tools/io-github-dave-london-go/api.md
- `apply` — Execute — https://policylayer.com/tools/io-github-dave-london-go/apply.md
- `bazel` — Execute — https://policylayer.com/tools/io-github-dave-london-go/bazel.md
- `bisect` — Execute — https://policylayer.com/tools/io-github-dave-london-go/bisect.md
- `black` — Execute — https://policylayer.com/tools/io-github-dave-london-go/black.md
- `build` — Execute — https://policylayer.com/tools/io-github-dave-london-go/build.md
- `bundle-exec` — Execute — https://policylayer.com/tools/io-github-dave-london-go/bundle-exec.md
- `bundle-install` — Execute — https://policylayer.com/tools/io-github-dave-london-go/bundle-install.md
- `check` — Execute — https://policylayer.com/tools/io-github-dave-london-go/check.md
- `cherry-pick` — Execute — https://policylayer.com/tools/io-github-dave-london-go/cherry-pick.md
- `clippy` — Execute — https://policylayer.com/tools/io-github-dave-london-go/clippy.md
- `cmake` — Execute — https://policylayer.com/tools/io-github-dave-london-go/cmake.md
- `compose-build` — Execute — https://policylayer.com/tools/io-github-dave-london-go/compose-build.md
- `compose-down` — Execute — https://policylayer.com/tools/io-github-dave-london-go/compose-down.md
- `compose-up` — Execute — https://policylayer.com/tools/io-github-dave-london-go/compose-up.md
- `conda` — Execute — https://policylayer.com/tools/io-github-dave-london-go/conda.md
- `coverage` — Execute — https://policylayer.com/tools/io-github-dave-london-go/coverage.md
- …and 171 more: https://policylayer.com/tools/io-github-dave-london-go.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-dave-london-go · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-dave-london-go
