# Agent tools

> Native tools of `bun mcp` for coding agents: digest a directory and read the installed sources and docs of a project's dependencies, offline and at their exact versions.

Native tools of `bun mcp` for coding agents: digest a directory and read the installed sources and docs of a project's dependencies, offline and at their exact versions.

## `git_ingest`: Directory digest

Turn a local directory or a subpath of it into a prompt-ready digest in the GitIngest layout: a summary, the directory tree and the content of every text file. Honors .gitignore, skips binary files and files over max_file_size.

| Argument | Type | Description |
| --- | --- | --- |
| `source` | string | Directory to ingest, absolute or relative to the working directory. Defaults to the working directory. |
| `subpath` | string | Subdirectory of source to restrict the digest to. |
| `include_patterns` | string[] | Glob patterns a file must match, e.g. "*.rs" or "src/**/*.ts". |
| `exclude_patterns` | string[] | Glob patterns to skip, on top of .gitignore. |
| `max_file_size` | integer, min 1 | Largest file to include, in bytes. Default 10485760. |
| `max_total_bytes` | integer, min 1 | Stop adding file contents past this many bytes. Default 16777216. |

## `deps_list`: List dependencies

List the dependencies of a project whose sources are on disk: npm packages from package.json resolved through node_modules, Cargo packages from Cargo.lock resolved in the Cargo registry and git checkouts, and directories under vendor/. Each entry has its ecosystem, version and local path.

| Argument | Type | Description |
| --- | --- | --- |
| `root` | string | Project root. Defaults to the working directory. |
| `ecosystem` | "npm" \| "cargo" \| "vendor" | Only list this ecosystem. |
| `filter` | string | Case-insensitive substring the name must contain. |
| `limit` | integer, min 1 | Maximum entries. Default 500. |

## `deps_info`: Dependency facts

Facts about one dependency read from its installed manifest: version, local path, license, repository, homepage, description and the documentation files it ships.

| Argument | Type | Description |
| --- | --- | --- |
| `name` | string (required) | Package, crate or vendor directory name. |
| `root` | string | Project root. Defaults to the working directory. |
| `ecosystem` | "npm" \| "cargo" \| "vendor" | Disambiguate when the name exists in several ecosystems. |

## `deps_tree`: Dependency tree

List a directory of a dependency's installed sources.

| Argument | Type | Description |
| --- | --- | --- |
| `name` | string (required) | Package, crate or vendor directory name. |
| `path` | string | Directory inside the dependency. Defaults to its root. |
| `depth` | integer, min 1, max 8 | Levels to descend. Default 2. |
| `root` | string | Project root. Defaults to the working directory. |
| `ecosystem` | "npm" \| "cargo" \| "vendor" |  |

## `deps_read`: Read a dependency file

Read one file of a dependency's installed sources. Text past max_bytes is cut and the result is flagged truncated.

| Argument | Type | Description |
| --- | --- | --- |
| `name` | string (required) | Package, crate or vendor directory name. |
| `path` | string (required) | File inside the dependency, e.g. "README.md" or "src/lib.rs". |
| `offset` | integer, min 0 | Byte offset to start at. Default 0. |
| `max_bytes` | integer, min 1 | Bytes to return. Default 262144. |
| `root` | string | Project root. Defaults to the working directory. |
| `ecosystem` | "npm" \| "cargo" \| "vendor" |  |

## `deps_search`: Search dependency sources

Regular-expression search over the installed sources of one or more dependencies, in parallel. Returns file, line and the matching line.

| Argument | Type | Description |
| --- | --- | --- |
| `query` | string (required) | Regular expression (Rust regex syntax). |
| `names` | string[] (required) | Dependencies to search. |
| `glob` | string[] | Only search files matching these globs. |
| `case_insensitive` | boolean | Default false. |
| `max_results` | integer, min 1 | Default 100. |
| `root` | string | Project root. Defaults to the working directory. |

## `deps_docs`: Search dependency documentation

Rank the documentation shipped by installed dependencies (README, *.md, *.mdx, docs/, *.d.ts) against a query and return the best sections. Offline counterpart of a web documentation search, pinned to the installed versions.

| Argument | Type | Description |
| --- | --- | --- |
| `query` | string (required) | Words to look for. |
| `names` | string[] | Restrict to these dependencies. Defaults to every npm and vendor dependency. |
| `max_results` | integer, min 1, max 50 | Default 8. |
| `root` | string | Project root. Defaults to the working directory. |

## Skills

These skills are generated from the repository into `.claude/skills`, shipped with `bun mcp` and the agent plugin:

| Skill | Use | Sources |
| --- | --- | --- |
| `cpp-bun` | C++ in the Bun fork: JavaScriptCore bindings in src/jsc/bindings, JS classes and .classes.ts codegen, exception scopes (BUN_JSC_validateExceptionChecks), GC and iso subspaces, Rust and C++ interop. Use when editing the runtime's .cpp/.h files or their Rust counterparts. | `CLAUDE.md`, `src/CLAUDE.md`, `src/**/*.classes.ts`, `docs/project/bindgen.mdx`, `docs/project/contributing.mdx`, `src/jsc/bindings/v8/CLAUDE.md`, `scripts/build/CLAUDE.md`, `src/lsp`, `package.json` |
| `webkit` | The WebKit/JavaScriptCore fork behind the Bun fork (aphrody-labs/WebKit, prebuilt from oven-sh/WebKit): the pinned WEBKIT_VERSION, building JSC locally with `bun run build:local`, patching JSC and publishing prebuilts, rebasing on upstream WebKit. Use when a change needs JSC, WTF or bmalloc sources. | `docs/project/contributing.mdx`, `scripts/build/deps/webkit.ts`, `scripts/aphrody/webkit-prebuilt.ts`, `PLAN-ALPINE-BUN.md`, `.claude/commands/upgrade-webkit.md`, `src/lsp`, `package.json` |
| `win32` | Win32, COM, WinRT and NT in the Bun fork: bun:windows, bun:winrt, bun:winui, bun msvc and bun winmd, the Rust modules behind them (src/runtime/windows, src/windows_sys), HANDLE ownership, wide strings, HRESULT/NTSTATUS errors, the MSVC toolchain and Windows debugging. Use for any Windows-specific code or build. | `docs/runtime/windows.mdx`, `src/runtime/windows/**/*.rs`, `src/windows_sys/*.rs`, `docs/runtime/winrt.mdx`, `docs/runtime/winui.mdx`, `docs/runtime/dotnet.mdx`, `docs/runtime/msvc.mdx`, `docs/project/building-windows.mdx`, `.claude/docs/windows-deep.md`, `src/lsp`, `package.json` |
| `linux-kernel` | Linux kernel work for the Bun fork: bun:linux (namespaces, cgroups, seccomp, io_uring probe, eBPF, netlink, perf_event), bun_sys syscall wrappers, the /dev/bun_accel driver of the aphrody-labs/linux fork (Kbuild, Kconfig, checkpatch, selftests), clangd with compile_commands.json, WSL kernel and Alpine images. Use for kernel patches or Linux-only runtime code. | `src/runtime/linux/*.rs`, `src/sys/bun_accel.rs`, `src/sys/linux_syscall.rs`, `docs/runtime/linux.mdx`, `docs/aphrody/wsl.md`, `PLAN-ALPINE-BUN.md`, `src/lsp`, `package.json` |
| `bun-apis` | Which Bun API replaces which Node.js module or npm package in an application run by the Bun fork, and how complete the Node.js compatibility is. Use before adding a dependency or writing Node-style code. | `docs/runtime/bun-apis.mdx`, `docs/runtime/nodejs-compat.mdx`, `docs/runtime/n2b.mdx`, `docs/runtime/python.mdx` |
| `n2b` | Move a Node.js project to Bun with n2b (`bun n2b`): safe and behavior-changing rewrites, reports, project migration. Use when converting Node code, scripts or package.json to Bun. | `docs/runtime/n2b.mdx` |
| `bun-deps` | Read the installed sources and docs of a project's dependencies (npm packages, Cargo crates, vendored libraries) at their exact versions, and digest a directory into one prompt, with the `bun mcp` tools git_ingest and deps_*. Use instead of fetching a library's repository from the web. | `src/agent_tools/tools.json` |
