Skip to content

MCP config tools panic with "interface conversion: interface {} is nil, not string" when using protocol version 2025-11-25 #1613

@mahrens61

Description

@mahrens61

Bug Report

Version: nginx-ui 2.3.5 (build 516, commit 1a9cd29)
OS: Linux (amd64)
MCP Client: Claude Desktop (mcp-remote 0.1.38, protocol version 2025-11-25)

Description

All MCP configuration tools panic with an interface conversion error when called via Claude Desktop. Only nginx_status and nginx_config_base_path work correctly.

Affected tools

  • nginx_config_list
  • nginx_config_get
  • nginx_config_add
  • nginx_config_modify
  • nginx_config_rename
  • nginx_config_mkdir
  • nginx_config_history
  • nginx_config_enable

Error message

MCP error -32603: panic recovered in nginx_config_list tool handler:
interface conversion: interface {} is nil, not string

Steps to reproduce

  1. Configure nginx-ui as an MCP server in Claude Desktop using mcp-remote with --transport sse-only
  2. Connect successfully (nginx_status returns {"running":true})
  3. Call any config tool, e.g. nginx_config_list with path /etc/nginx
  4. Server panics with the above error

Expected behavior

Config tools should return the list/content of Nginx configuration files.

Suspected cause

Likely a parameter deserialization mismatch between the MCP protocol version 2025-11-25 used by Claude Desktop and the mcp-go version bundled with nginx-ui 2.3.5. The tool handlers appear to receive nil instead of the expected string for path parameters.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions