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

Status Closed — not planned
Reported on v2.1.20
Maintainer reply None cached
Activity 4 comments · opened Jan 27, 2026 · 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 ↗