Product Kit · 1.0.0

Browser-local · offline diagnostic

Agent Connection Diagnostic Kit

Diagnose a sanitized MCP or agent client configuration and submitted connection transcript offline without opening a connection.

Developers troubleshooting MCP and agent client configuration, protocol, capability, or submitted error evidence without sending credentials or asking Utilito to connect.

Do not paste credentials, authentication values, URLs, raw paths, or encoded configuration. Transcript claims remain caller-submitted and unverified.

Build-time sample shown separately below. Submit the form to create a live local result.

Live local result

Not generated. The build-time sample is not a live user result.
Build-time sample diagnostic
{
  "ok": true,
  "schema_version": "utilito.product-kit.v1",
  "kit": {
    "id": "agent-connection-diagnostic-kit",
    "version": "1.0.0"
  },
  "result": {
    "status": "review_required",
    "client_support": "known",
    "normalized_config": {
      "client_profile": "cursor",
      "transport": "http",
      "credential_free": true,
      "placeholder_notice": "MCP_ENDPOINT_URL is a clearly labeled inert placeholder; replace it manually before use.",
      "format": "json",
      "config": {
        "mcpServers": {
          "utilito": {
            "url": "<MCP_ENDPOINT_URL>"
          }
        }
      },
      "endpoint": null
    },
    "compatibility_matrix": [
      {
        "check": "client_profile",
        "status": "compatible",
        "path": "client_profile",
        "evidence_line": null,
        "detail": "Known bounded client profile."
      },
      {
        "check": "transport",
        "status": "compatible",
        "path": "transport",
        "evidence_line": null,
        "detail": "http matches the canonical client metadata."
      },
      {
        "check": "protocol_version",
        "status": "mismatch",
        "path": "sanitized_configuration.protocol_version",
        "evidence_line": 1,
        "detail": "Submitted and expected protocol versions differ."
      },
      {
        "check": "tools_capability",
        "status": "compatible",
        "path": "sanitized_configuration.declared_capabilities",
        "evidence_line": 2,
        "detail": "Caller declared tools capability."
      },
      {
        "check": "submitted_errors",
        "status": "mismatch",
        "path": "transcript",
        "evidence_line": 3,
        "detail": "Caller transcript contains an unverified error line."
      }
    ],
    "evidence_findings": [
      {
        "id": "finding-1",
        "code": "SUBMITTED_PROTOCOL_VERSION",
        "line": 1,
        "path": "transcript.line[1]",
        "quote": "protocolVersion: 2025-03-26",
        "caller_submitted_unverified": true
      },
      {
        "id": "finding-2",
        "code": "SUBMITTED_TOOL_CAPABILITY",
        "line": 2,
        "path": "transcript.line[2]",
        "quote": "tools/list: available",
        "caller_submitted_unverified": true
      },
      {
        "id": "finding-3",
        "code": "SUBMITTED_ERROR",
        "line": 3,
        "path": "transcript.line[3]",
        "quote": "error: Method not found",
        "caller_submitted_unverified": true
      }
    ],
    "evidence_claim": "All findings are exact safe caller-submitted transcript lines and remain unverified.",
    "fix_checklist": [
      {
        "code": "ALIGN_PROTOCOL_VERSION",
        "priority": "high",
        "path": "sanitized_configuration.protocol_version",
        "message": "Align the client protocol version with the expected version after manual review.",
        "automatic": false
      },
      {
        "code": "REVIEW_SUBMITTED_ERROR",
        "priority": "high",
        "path": "transcript",
        "message": "Use a Streamable HTTP MCP client that sends JSON-RPC 2.0 POST requests and supports protocol 2025-06-18.",
        "automatic": false
      },
      {
        "code": "RUN_INERT_VERIFICATION_MANUALLY",
        "priority": "medium",
        "path": "verification",
        "message": "Copy only the reviewed inert snippets into an appropriate client or test harness manually.",
        "automatic": false
      }
    ],
    "verification": [
      {
        "id": "verification-1",
        "kind": "json_rpc_initialize",
        "label": "Review initialize",
        "text": "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"utilito-connection-doctor\",\"version\":\"1.0.0\"}}}",
        "inert": true,
        "execute": false
      },
      {
        "id": "verification-2",
        "kind": "json_rpc_request",
        "label": "Review tools/list",
        "text": "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\",\"params\":{}}",
        "inert": true,
        "execute": false
      },
      {
        "id": "verification-3",
        "kind": "json_rpc_request",
        "label": "Review tools/call",
        "text": "{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"search_tools\",\"arguments\":{\"query\":\"json repair\",\"limit\":5}}}",
        "inert": true,
        "execute": false
      },
      {
        "id": "verification-4",
        "kind": "json_rpc_request",
        "label": "Review tools/call",
        "text": "{\"jsonrpc\":\"2.0\",\"id\":4,\"method\":\"tools/call\",\"params\":{\"name\":\"get_tool_schema\",\"arguments\":{\"tool_id\":\"json-repair\"}}}",
        "inert": true,
        "execute": false
      },
      {
        "id": "verification-5",
        "kind": "json_rpc_request",
        "label": "Review tools/call",
        "text": "{\"jsonrpc\":\"2.0\",\"id\":5,\"method\":\"tools/call\",\"params\":{\"name\":\"run_tool\",\"arguments\":{\"tool_id\":\"json-repair\",\"input\":{\"input\":\"{name:\\\"Ada\\\",items:[1,2,],}\"},\"options\":{},\"response_mode\":\"compact\"}}}",
        "inert": true,
        "execute": false
      }
    ],
    "safety": {
      "connection_attempted": false,
      "socket_opened": false,
      "subprocess_started": false,
      "dns_lookup": false,
      "network_used": false,
      "storage_used": false,
      "commands_executed": false,
      "transcript_verified": false
    }
  },
  "receipt": {
    "input_bytes": 531,
    "output_bytes": 4542,
    "operations": 4,
    "omitted_items": 0,
    "warnings": [],
    "findings": 3,
    "connections_attempted": 0,
    "commands_executed": 0
  },
  "provenance": {
    "deterministic": true,
    "model_used": false,
    "network_used": false,
    "storage_used": false,
    "core_versions": {
      "agent_connection_diagnostic_kit": "1.0.0",
      "agent_connection_doctor": "1.0.0",
      "mcp_config": "1.0.0",
      "developer_protocol": "1.0.0"
    }
  },
  "error": null
}

Free runnable capability

Build one bounded browser-local connection diagnostic packet with deterministic evidence and no signup.

Builder capability

The existing Builder Pilot can coordinate higher bounded review volume; it does not add live connections, credential handling, execution, storage, history, monitoring, or automatic fixes.

See the existing Builder Pilot

Privacy boundary

Browser generation runs locally. API and MCP requests are response-only; no socket, subprocess, DNS, fetch, connection, command execution, model, storage, telemetry, history, or monitoring is used.

Diagnostic limits

  • Only strict sanitized metadata and bounded transcript text are accepted. Credential assignments, authentication material, URLs, unsafe paths, schemes, and encoded raw values fail non-reflectively before findings or snippets are produced.
  • Transcript lines are copied only when they match the bounded protocol, capability, tool-list, or error vocabulary. They remain exact caller-submitted unverified evidence; no server truth, root cause, or connectivity is inferred.
  • Unknown client profiles remain supported only as explicit manual-review cases. stdio and http are the only transports; normalized candidates and JSON-RPC snippets are inert text that must be reviewed and used manually.
  • No fetch, socket, subprocess, DNS lookup, connection attempt, command execution, storage, history, monitoring, model call, or pipeline execution occurs. Hosted requests are capped at 65,536 bytes and complete successful responses at 262,144 bytes.