[Bug] Marketplace plugin agents lack access to WebSearch and WebFetch tools

Resolved 💬 4 comments Opened Jan 27, 2026 by cadrianmae Closed Feb 28, 2026

Bug Description

Agents defined in marketplace plugins fail when attempting to use the WebSearch tool, despite WebSearch being listed in their allowed tools.

Steps to reproduce:

  1. Create a marketplace plugin with a custom agent
  2. Add WebSearch to the agent's tools list in frontmatter
  3. Agent attempts to invoke WebSearch tool
  4. Tool call fails with error

Expected behavior:
Marketplace plugin agents should have access to all tools specified in their frontmatter, including WebSearch, WebFetch, and other built-in tools.

Actual behavior:
WebSearch (and possibly other web-related tools) fail when invoked by marketplace agents. Only core tools like Read, Grep, Bash appear to work.

Example affected agent:

  • tool-docs plugin's pandoc-guide agent
  • Attempts to use WebFetch for documentation lookup
  • Had to work around by removing WebSearch from tools list

Impact:
Severely limits usefulness of custom agents in marketplace plugins. Documentation-focused agents cannot fetch live documentation, research agents cannot search the web, etc.

Environment Info

  • Platform: linux
  • Terminal: tmux
  • Version: 2.1.20
  • Feedback ID: 6ba32b95-d701-46ed-9310-d5bd2606cd87

Errors

[{"error":"Error: ENOENT: no such file or directory, scandir '/etc/claude-code/.claude/skills'\n    at readdirSync (unknown)\n    at <anonymous> (/$bunfs/root/claude:12:2063)\n    at tJ (/$bunfs/root/claude:11:35584)\n    at readdirSync (/$bunfs/root/claude:12:2024)\n    at RC$ (/$bunfs/root/claude:1756:380)\n    at RC$ (/$bunfs/root/claude:1756:1350)\n    at <anonymous> (/$bunfs/root/claude:1756:4670)\n    at <anonymous> (/$bunfs/root/claude:1756:5401)\n    at A (/$bunfs/root/claude:11:7259)\n    at PO1 (/$bunfs/root/claude:4824:4342)","timestamp":"2026-01-27T19:24:07.850Z"},{"error":"Error: LSP server plugin:pyright-lsp:pyright failed to start: Executable not found in $PATH: \"pyright-langserver\"\n    at start (/$bunfs/root/claude:1724:22299)\n    at async f (/$bunfs/root/claude:1724:24751)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: LSP server plugin:gopls-lsp:gopls failed to start: Executable not found in $PATH: \"gopls\"\n    at start (/$bunfs/root/claude:1724:22299)\n    at async f (/$bunfs/root/claude:1724:24751)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Executable not found in $PATH: \"pyright-langserver\"\n    at spawn (unknown)\n    at spawn (node:child_process:669:35)\n    at spawn (node:child_process:14:39)\n    at start (/$bunfs/root/claude:1724:20844)\n    at start (/$bunfs/root/claude:1724:22353)\n    at f (/$bunfs/root/claude:1724:24751)\n    at f (/$bunfs/root/claude:1724:25726)\n    at L (/$bunfs/root/claude:1724:32513)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Executable not found in $PATH: \"gopls\"\n    at spawn (unknown)\n    at spawn (node:child_process:669:35)\n    at spawn (node:child_process:14:39)\n    at start (/$bunfs/root/claude:1724:20844)\n    at start (/$bunfs/root/claude:1724:22353)\n    at f (/$bunfs/root/claude:1724:24751)\n    at f (/$bunfs/root/claude:1724:25726)\n    at L (/$bunfs/root/claude:1724:32513)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Failed to start LSP server plugin:pyright-lsp:pyright: Executable not found in $PATH: \"pyright-langserver\"\n    at <anonymous> (/$bunfs/root/claude:1724:32535)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"Error: Failed to start LSP server plugin:gopls-lsp:gopls: Executable not found in $PATH: \"gopls\"\n    at <anonymous> (/$bunfs/root/claude:1724:32535)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-01-27T19:24:09.898Z"},{"error":"AbortError: The operation was aborted.\n    at unknown\n    at abortChildProcess (node:child_process:937:42)\n    at onAbortListener2 (node:child_process:35:24)\n    at abort (unknown)\n    at <anonymous> (/$bunfs/root/claude:6271:13481)","timestamp":"2026-01-27T19:24:13.258Z"},{"error":"Error: ENOENT: no such file or directory, scandir '/etc/claude-code/.claude/skills'\n    at readdirSync (unknown)\n    at <anonymous> (/$bunfs/root/claude:12:2063)\n    at tJ (/$bunfs/root/claude:11:35584)\n    at readdirSync (/$bunfs/root/claude:12:2024)\n    at RC$ (/$bunfs/root/claude:1756:380)\n    at RC$ (/$bunfs/root/claude:1756:1350)\n    at <anonymous> (/$bunfs/root/c…

Note: Content was truncated.

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗