Skip to content

kjanat/bun-docs-mcp-zed

Repository files navigation

Bun Docs MCP for Zed

Rust CI

Search Bun documentation directly in Zed using the Model Context Protocol (MCP).

Important

Zed started supporting remote MCP servers since zed-industries/zed#39021, released in Zed v0.214.5.
If you encounter issues using this extension, please submit an issue, and use the official remote server directly:

{
  "context_servers": {
    "bun-docs": {
      "url": "https://bun.com/docs/mcp",
      "enabled": true,
      "headers": {},
    },
  },
}

It is unfortunately not (yet) possible for extension authors to provide custom server URLs in the extension manifest.

Features

  • πŸ” Search Bun Docs - Query Bun documentation from Zed Assistant
  • ⚑ Pure Rust - Native binary with automatic download from GitHub Releases

Installation

From Zed Extensions (Coming Soon)

  1. Open Zed
  2. Cmd+Shift+X (macOS) or
    Ctrl+Shift+X (Linux/Windows)
    β†’ Extensions
  3. Search: "Bun Docs MCP"
  4. Click Install

As Dev Extension (Local Development)

# Clone this repository
git clone https://github.com/kjanat/bun-docs-mcp-zed
cd bun-docs-mcp-zed

Then, install in Zed:

  • Press Cmd+Shift+P (macOS) or
    Ctrl+Shift+P (Linux/Windows)
  • Type: "zed: install dev extension"
  • Select this directory

No build required! The extension auto-downloads the Rust binary from GitHub Releases on first use.

Usage

  1. Open Assistant:
    Cmd+Shift+A (macOS) or
    Ctrl+Shift+A (Linux/Windows)
  2. Enable Context: Click context dropdown β†’ Enable "bun-docs-mcp"
  3. Ask Questions: "How does Bun.serve work?"

Example Queries

  • How does Bun.serve work?
  • Explain Bun's WebSocket support
  • What are Bun's TCP APIs?
  • How do I use Bun.file?
  • Show me Bun.spawn examples

Architecture

flowchart TD
    A["πŸ”§ Zed Extension (WASM)<br/>β€’ Auto-downloads binary<br/>β€’ Platform detection<br/>β€’ Daily update checks<br/>β€’ Size: 171 KB"]
    B["πŸ“¦ GitHub Releases<br/>kjanat/bun-docs-mcp-proxy<br/>β€’ 6 platforms supported<br/>β€’ ~1.3 MB compressed"]
    C["βš™οΈ Rust MCP Proxy (Native)<br/>β€’ stdio ↔ HTTP ↔ SSE<br/>β€’ 2.7 MB extracted<br/>β€’ 4ms startup"]
    D["🌐 Bun Docs API<br/>https://bun.com/docs/mcp"]

    A -->|"downloads from"| B
    B -->|"extracts to /work/"| C
    C -->|"queries"| D
Loading

How It Works

  1. Extension: Zed loads the WASM extension from this repo
  2. Auto-Download: On first use, downloads platform-specific binary from GitHub Releases
  3. Proxy Binary: Rust binary translates between:
    • Zed's stdin/stdout (JSON-RPC)
    • Bun Docs HTTP API (SSE responses)
  4. Search: Queries Bun documentation and returns results

Supported Platforms

All platforms auto-detected and supported:

Platform Binary Size
Linux x86_64 bun-docs-mcp-proxy-linux-x86_64.tar.gz 1.3 MB
Linux ARM64 bun-docs-mcp-proxy-linux-aarch64.tar.gz 1.25 MB
macOS Intel bun-docs-mcp-proxy-macos-x86_64.tar.gz 1.19 MB
macOS Apple Silicon bun-docs-mcp-proxy-macos-aarch64.tar.gz 1.13 MB
Windows x86_64 bun-docs-mcp-proxy-windows-x86_64.zip 1.09 MB
Windows ARM64 bun-docs-mcp-proxy-windows-aarch64.zip 1.04 MB

Static Linux builds (musl) also available.

Development

Project Structure

bun-docs-mcp-zed/
β”œβ”€β”€ extension.toml      # Zed extension metadata
β”œβ”€β”€ Cargo.toml          # Rust build configuration
β”œβ”€β”€ src/
β”‚   └── lib.rs          # Extension (auto-downloads proxy binary)
β”œβ”€β”€ ARCHITECTURE.md     # Technical architecture
└── README.md           # This file

Proxy implementation: Separate repo at kjanat/bun-docs-mcp-proxy

Building

# Build extension WASM
cargo build --release --lib

# Extension auto-downloads proxy binary from GitHub
# No need to build proxy locally!

Testing

# Install as dev extension in Zed
# Cmd+Shift+P (macOS) or Ctrl+Shift+P (Linux/Windows) β†’ "zed: install dev extension"
# Select this directory

# Enable in Assistant and test
# Open Assistant β†’ Enable "bun-docs-mcp"
# Ask: "How does Bun.serve work?"

Technical Details

MCP Protocol: JSON-RPC 2.0 over stdio
Transport: Server-Sent Events (SSE) over HTTPS
API Endpoint: https://bun.com/docs/mcp
Binary Source: Auto-downloaded from GitHub Releases

For detailed architecture information, see ARCHITECTURE.md.

Troubleshooting

Extension won't enable

Check Zed log:
Cmd+Shift+P (macOS) or
Ctrl+Shift+P (Linux/Windows)
β†’ "zed: open log"

Common issues:

  • First use takes 2-3 seconds (downloading binary)
  • Network issues prevent download β†’ Check internet connection
  • Binary not for your platform β†’ Check supported platforms above

Binary downloaded but won't run

Find the binary location:

The extension stores the binary in Zed's extension work directory. The exact path varies by platform:

  • Linux: ~/.local/share/zed/extensions/work/bun-docs-mcp/bun-docs-mcp-proxy/
  • macOS: ~/Library/Application Support/Zed/extensions/work/bun-docs-mcp/bun-docs-mcp-proxy/
  • Windows: %APPDATA%\Zed\extensions\work\bun-docs-mcp\bun-docs-mcp-proxy\

Verify binary exists (Linux/macOS):

ls -lh ~/.local/share/zed/extensions/work/bun-docs-mcp/bun-docs-mcp-proxy/
# Should show: bun-docs-mcp-proxy (executable)

Test manually (Linux/macOS):

~/.local/share/zed/extensions/work/bun-docs-mcp/bun-docs-mcp-proxy/bun-docs-mcp-proxy <<< '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# Should return: {"jsonrpc":"2.0","id":1,"result":{"tools":[...]}}

Note: Replace paths with your platform-specific location from above.

Why Rust?

  • Boredom: Why not...

See ARCHITECTURE.md for migration history and technical details.

Contributing

Contributions welcome!

Proxy implementation: kjanat/bun-docs-mcp-proxy
Extension: This repository

License

MIT

Credits


Ready to search Bun docs in Zed! Install the extension and start asking questions. πŸš€

About

MCP server integration for searching Bun documentation directly in Zed editor

Resources

License

Stars

Watchers

Forks

Contributors