Skip to content

MCP QoL improvements - #36

Merged
corv89 merged 4 commits into
mainfrom
mcp-fixes
Nov 7, 2025
Merged

MCP QoL improvements#36
corv89 merged 4 commits into
mainfrom
mcp-fixes

Conversation

@corv89

@corv89 corv89 commented Nov 3, 2025

Copy link
Copy Markdown
Owner

LM Studio, auto-detection, and enhanced client support

  • Add LM Studio client support with JSON config
  • Add auto-detection for MCP clients (--client auto/all)
  • Add --yes flag for non-interactive installation
  • Update Codex to prefer TOML config (.codex/config.toml)
  • Update Claude Code to use CLI user config (.claude.json)
  • Add TOML dependencies (tomli/tomli-w)
  • Add type safety with assertions for TOML imports
  • Update tests to match improved client configurations
  • All tests pass (165 passed, 4 skipped)
  • All quality checks pass (ruff, basedpyright)

…support

- Add LM Studio client support with JSON config
- Add auto-detection for MCP clients (--client auto/all)
- Add --yes flag for non-interactive installation
- Update Codex to prefer TOML config (.codex/config.toml)
- Update Claude Code to use CLI user config (.claude.json)
- Add TOML dependencies (tomli/tomli-w)
- Add type safety with assertions for TOML imports
- Update tests to match improved client configurations
- All tests pass (165 passed, 4 skipped)
- All quality checks pass (ruff, basedpyright)
@corv89
corv89 requested a review from noaho November 3, 2025 07:36
@corv89 corv89 self-assigned this Nov 3, 2025
@corv89 corv89 added bug Something isn't working enhancement New feature or request labels Nov 3, 2025
@github-actions

github-actions Bot commented Nov 3, 2025

Copy link
Copy Markdown

CHANGELOG.md is out of date

Please update the changelog by running:

make changelog

Or manually:

git-cliff --config cliff.toml -o CHANGELOG.md

Then commit the updated CHANGELOG.md file.

Comment thread shannot/cli.py Fixed
corv89 and others added 2 commits November 3, 2025 14:39
- Use tomli fallback for Python 3.10 (tomllib is 3.11+ only)
- Test now works across all supported Python versions
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Nov 3, 2025

Copy link
Copy Markdown

CHANGELOG.md is out of date

Please update the changelog by running:

make changelog

Or manually:

git-cliff --config cliff.toml -o CHANGELOG.md

Then commit the updated CHANGELOG.md file.

Repository owner deleted a comment from github-actions Bot Nov 3, 2025
@corv89
corv89 marked this pull request as ready for review November 3, 2025 07:51
@github-actions

github-actions Bot commented Nov 7, 2025

Copy link
Copy Markdown

CHANGELOG.md is out of date

Please update the changelog by running:

make changelog

Or manually:

git-cliff --config cliff.toml -o CHANGELOG.md

Then commit the updated CHANGELOG.md file.

@github-actions

github-actions Bot commented Nov 7, 2025

Copy link
Copy Markdown

MCP Server Test Results

MCP Server Test Summary

Generated: /__w/shannot/shannot

Test Execution

Test results from mcp-probe:

{
  "metadata": {
    "generated_at": "2025-11-07T06:25:53.598606075+00:00",
    "mcp_probe_version": "0.3.0",
    "total_duration_ms": 1210,
    "transport_type": "stdio"
  },
  "protocol_info": {
    "available_protocols": [
      {
        "endpoints": [
          "/mcp"
        ],
        "session_management": "Mcp-Session-Id header",
        "spec_date": "2025-03-26",
        "supported_methods": [
          "initialize",
          "initialized",
          "tools/list",
          "tools/call",
          "resources/list",
          "resources/read",
          "prompts/list",
          "prompts/get",
          "logging/setLevel",
          "notifications/*"
        ],
        "version": "Modern Streamable HTTP"
      },
      {
        "endpoints": [
          "/sse",
          "/events"
        ],
        "session_management": "sessionId query parameter",
        "spec_date": "2024-11-05",
        "supported_methods": [
          "initialize",
          "initialized",
          "tools/list",
          "tools/call",
          "resources/list",
          "resources/read",
          "prompts/list",
          "prompts/get",
          "logging/setLevel"
        ],
        "version": "Legacy HTTP+SSE"
      },
      {
        "endpoints": [
          "stdio"
        ],
        "session_management": "N/A (stdio)",
        "spec_date": "2025-03-26",
        "supported_methods": [
          "initialize",
          "initialized",
          "tools/list",
          "tools/call",
          "resources/list",
          "resources/read",
          "prompts/list",
          "prompts/get",
          "logging/setLevel",
          "notifications/*"
        ],
        "version": "Standard Transport"
      }
    ],
    "detected_protocol": {
      "endpoints": [
        "stdio"
      ],
      "session_management": "N/A (stdio)",
      "spec_date": "2025-03-26",
      "supported_methods": [
        "initialize",
        "initialized",
        "tools/list",
        "tools/call",
        "resources/list",
        "resources/read",
        "prompts/list",
        "prompts/get",
        "logging/setLevel",
        "notifications/*"
      ],
      "version": "Standard Transport"
    }
  },
  "results": [
    {
      "details": null,
      "duration_ms": 0,
      "message": "Successfully created MCP client",
      "name": "Connection",
      "status": "PASS"
    },
    {
      "details": {
        "name": "shannot-sandbox",
        "protocol_version": "2025-03-26",
        "version": "0.2.1"
      },
      "duration_ms": 404,
      "message": "Connected to shannot-sandbox v0.2.1",
      "name": "Initialization",
      "status": "PASS"
    },
    {
      "details": null,
      "duration_ms": 1,
      "message": "Server capabilities discovered successfully",
      "name": "Capability Discovery",
      "status": "PASS"
    },
    {
      "details": [
        {
          "description": "Execute read-only commands in 'minimal' sandbox on local sandbox. Allowed commands include: ls, /usr/bin/ls, /bin/ls, cat, /usr/bin/cat, ... (11 total). network isolated. Provide arguments as {\"command\": [\"ls\", \"/\"]}.",
          "input_schema": {
            "properties": {
              "command": {
                "description": "Command and arguments to execute",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "command"
            ],
            "type": "object"
          },
          "name": "sandbox_minimal"
        },
        {
          "description": "Execute read-only commands in 'diagnostics' sandbox on local sandbox. Allowed commands include: ls, /usr/bin/ls, /bin/ls, cat, /usr/bin/cat, ... (31 total). network isolated. Provide arguments as {\"command\": [\"ls\", \"/\"]}.",
          "input_schema": {
            "properties": {
              "command": {
                "description": "Command and arguments to execute",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "command"
            ],
            "type": "object"
          },
          "name": "sandbox_diagnostics"
        },
        {
          "description": "Execute read-only commands in 'readonly' sandbox on local sandbox. Allowed commands include: ls, /usr/bin/ls, cat, /usr/bin/cat, head, ... (13 total). network isolated. Provide arguments as {\"command\": [\"ls\", \"/\"]}.",
          "input_schema": {
            "properties": {
              "command": {
                "description": "Command and arguments to execute",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "command"
            ],
            "type": "object"
          },
          "name": "sandbox_readonly"
        }
      ],
      "duration_ms": 1,
      "message": "Successfully listed 3 tools",
      "name": "Tools Listing",
      "status": "PASS"
    },
    {
      "details": [
        {
          "description": "Configuration for minimal sandbox profile",
          "name": "Sandbox Profile: minimal",
          "uri": "sandbox://profiles/minimal"
        },
        {
          "description": "Configuration for diagnostics sandbox profile",
          "name": "Sandbox Profile: diagnostics",
          "uri": "sandbox://profiles/diagnostics"
        },
        {
          "description": "Configuration for readonly sandbox profile",
          "name": "Sandbox Profile: readonly",
          "uri": "sandbox://profiles/readonly"
        }
      ],
      "duration_ms": 1,
      "message": "Successfully listed 3 resources",
      "name": "Resources Listing",
      "status": "PASS"
    },
    {
      "details": [
        {
          "arguments": [
            {
              "description": "Target environment for context (e.g., 'production', 'staging')",
              "name": "target",
              "required": false
            }
          ],
          "description": "Perform a comprehensive system health assessment checking disk space, memory, CPU, processes, and uptime",
          "name": "system-health-check"
        },
        {
          "arguments": [
            {
              "description": "Observed symptom (e.g., 'slow response', 'high load', 'memory exhaustion')",
              "name": "symptom",
              "required": false
            }
          ],
          "description": "Diagnose performance issues by checking resource consumption and identifying bottlenecks",
          "name": "investigate-performance"
        },
        {
          "arguments": [
            {
              "description": "Specific log file path to analyze (e.g., '/var/log/syslog')",
              "name": "log_path",
              "required": false
            },
            {
              "description": "Time period to analyze (e.g., 'last hour', 'today')",
              "name": "timeframe",
              "required": false
            }
          ],
          "description": "Search and analyze system logs to identify errors, warnings, and anomalies",
          "name": "analyze-logs"
        },
        {
          "arguments": [
            {
              "description": "Alert if disk usage exceeds this percentage (e.g., '80')",
              "name": "threshold",
              "required": false
            }
          ],
          "description": "Audit disk space usage to identify what's consuming storage and potential cleanup targets",
          "name": "disk-usage-audit"
        },
        {
          "arguments": [
            {
              "description": "Sort criteria: 'cpu', 'memory', or 'time'",
              "name": "sort_by",
              "required": false
            }
          ],
          "description": "Monitor and analyze running processes to identify resource-intensive or unusual activity",
          "name": "monitor-processes"
        },
        {
          "arguments": [
            {
              "description": "Name of the service to check (e.g., 'nginx', 'postgresql')",
              "name": "service_name",
              "required": true
            }
          ],
          "description": "Check the status and health of a specific system service",
          "name": "check-service-status"
        }
      ],
      "duration_ms": 1,
      "message": "Successfully listed 6 prompts",
      "name": "Prompts Listing",
      "status": "PASS"
    },
    {
      "details": {
        "code": -32602,
        "data": "",
        "message": "Invalid request parameters"
      },
      "duration_ms": 1,
      "message": "Unexpected error code: -32602",
      "name": "Error Handling",
      "status": "WARN"
    }
  ],
  "summary": {
    "failed": 0,
    "passed": 6,
    "skipped": 0,
    "total_tests": 7,
    "warnings": 1
  }
}

Artifacts

  • 20251107-test-report-062553.json (8,991 bytes)

@corv89
corv89 merged commit 9de79e0 into main Nov 7, 2025
15 of 16 checks passed
@corv89
corv89 deleted the mcp-fixes branch November 7, 2025 06:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants