Tencent/WeKnora · error

tool not found

Error message

tool not found

What it means

Sentinel error returned by the MCP client when a tool call names a tool the connected server did not advertise in its initialize/Tools response — i.e., the tool list has no such entry (wrong name, server version drift, or tool disabled server-side). Callers match on this value with errors.Is to surface a 'tool not found' condition distinctly from transport failures.

Source

Thrown at internal/mcp/errors.go:19

package mcp

import "errors"

var (
	// ErrUnsupportedTransport is returned when transport type is not supported
	ErrUnsupportedTransport = errors.New("unsupported transport type")

	// ErrNotConnected is returned when operation requires connection but client is not connected
	ErrNotConnected = errors.New("client not connected")

	// ErrAlreadyConnected is returned when trying to connect an already connected client
	ErrAlreadyConnected = errors.New("client already connected")

	// ErrInitializeFailed is returned when MCP initialize handshake fails
	ErrInitializeFailed = errors.New("MCP initialize handshake failed")

	// ErrToolNotFound is returned when requested tool is not found
	ErrToolNotFound = errors.New("tool not found")

	// ErrResourceNotFound is returned when requested resource is not found
	ErrResourceNotFound = errors.New("resource not found")

	// ErrInvalidResponse is returned when server response is invalid
	ErrInvalidResponse = errors.New("invalid response from server")

	// ErrTimeout is returned when operation times out
	ErrTimeout = errors.New("operation timed out")

	// ErrConnectionClosed is returned when connection is closed unexpectedly
	ErrConnectionClosed = errors.New("connection closed")
)

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Call ListTools to discover the exact tool names the server exposes
  2. Fix the tool name typo or case mismatch in the caller
  3. Confirm the MCP server actually registers/loads the tool (server-side config)
  4. Handle tool availability changes dynamically rather than caching names
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/mcp/errors.go:19 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/2e5d1b5198bcfce1. Report an issue: GitHub.