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 |