{
  "slug": "mongodb",
  "name": "MongoDB",
  "author": "mongodb-js (GitHub)",
  "category": "Data and databases",
  "tier": "anchor",
  "kind": "stdio",
  "packageSpec": "npm:mongodb-mcp-server@3.2.2",
  "sourceUrl": "https://registry.modelcontextprotocol.io/v0/servers/io.github.mongodb-js%2Fmongodb-mcp-server/versions/latest",
  "repoUrl": "https://github.com/mongodb-js/mongodb-mcp-server",
  "enrichment": {},
  "current": {
    "verdict": "alive",
    "reason": "all_passed",
    "failedChecks": [],
    "untestedTools": 22,
    "checkedAt": "2026-10-29T06:44:20.669Z",
    "methodologyVersion": "1.0.0",
    "serverVersion": "3.2.1",
    "checks": [
      {
        "id": "L0.reachable",
        "detail": "http undefined",
        "status": "pass",
        "durationMs": 71833
      },
      {
        "id": "L0.tls",
        "status": "skipped"
      },
      {
        "id": "L0.initialize",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"protocolVersion\":\"2025-11-25\",\"capabilities\":{\"resources\":{\"listChanged\":true,\"subscribe\":true},\"completions\":{},\"logging\":{},\"tools\":{\"listChanged\":true}},\"serverInfo\":{\"name\":\"MongoDB MCP Server\",\"version\":\"3.2.1\"}},\"jsonrpc\":\"2.0\",\"id\":1}"
        },
        "durationMs": 71833
      },
      {
        "id": "L0.protocol_version",
        "detail": "server reported \"2025-11-25\"; published versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25",
        "status": "pass"
      },
      {
        "id": "L0.capabilities",
        "detail": "resources, completions, logging, tools",
        "status": "pass"
      },
      {
        "id": "L1.server_info",
        "detail": "MongoDB MCP Server 3.2.1",
        "status": "pass"
      },
      {
        "id": "L1.tools_list",
        "detail": "27 tools",
        "status": "pass"
      },
      {
        "id": "L1.tool_schemas",
        "detail": "27 schemas valid",
        "status": "pass"
      },
      {
        "id": "L1.resources_list",
        "detail": "2 entries",
        "status": "pass"
      },
      {
        "id": "L1.prompts_list",
        "detail": "prompts capability not declared",
        "status": "skipped"
      },
      {
        "id": "L1.unknown_method",
        "status": "pass",
        "evidence": {
          "raw": "{\"jsonrpc\":\"2.0\",\"id\":4,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}"
        },
        "durationMs": 4
      },
      {
        "id": "L1.envelope",
        "detail": "4 replies valid",
        "status": "pass"
      },
      {
        "id": "L2.call_ok",
        "tool": "aggregate",
        "detail": "mutation_description",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "aggregate-db",
        "detail": "mutation_description",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "collection-indexes",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Connection \\\"knot-verified-probe\\\" does not exist or has expired. Call the \\\"list-connections\\\" tool to see the active connections, or establish a new one and retry with the connectionId it returns.\"},{\"type\":\"text\",\"text\":\"Please use one of the following tools: \\\"connect\\\" to connect to a MongoDB instance or update the MCP server configuration to include a connection string. Note to LLM: do not invent connection strings and explicitly ask the user to provide one. If they have previously connected to MongoDB using MCP, you can ask them if they want to reconnect using the same connection string.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":5}",
          "arguments": {
            "database": "knot-verified-probe",
            "collection": "knot-verified-probe",
            "connectionId": "knot-verified-probe"
          }
        },
        "durationMs": 10
      },
      {
        "id": "L2.output_schema",
        "tool": "collection-indexes",
        "detail": "tool reported isError",
        "status": "skipped"
      },
      {
        "id": "L2.bad_input",
        "tool": "collection-indexes",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool collection-indexes: connectionId: Invalid input: expected string, received undefined, database: Invalid input: expected string, received undefined, collection: Invalid input: expected string, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":6}",
          "arguments": {}
        },
        "durationMs": 4
      },
      {
        "id": "L2.call_ok",
        "tool": "collection-schema",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Connection \\\"knot-verified-probe\\\" does not exist or has expired. Call the \\\"list-connections\\\" tool to see the active connections, or establish a new one and retry with the connectionId it returns.\"},{\"type\":\"text\",\"text\":\"Please use one of the following tools: \\\"connect\\\" to connect to a MongoDB instance or update the MCP server configuration to include a connection string. Note to LLM: do not invent connection strings and explicitly ask the user to provide one. If they have previously connected to MongoDB using MCP, you can ask them if they want to reconnect using the same connection string.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":7}",
          "arguments": {
            "database": "knot-verified-probe",
            "collection": "knot-verified-probe",
            "connectionId": "knot-verified-probe"
          }
        },
        "durationMs": 6
      },
      {
        "id": "L2.output_schema",
        "tool": "collection-schema",
        "detail": "tool reported isError",
        "status": "skipped"
      },
      {
        "id": "L2.bad_input",
        "tool": "collection-schema",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool collection-schema: connectionId: Invalid input: expected string, received undefined, database: Invalid input: expected string, received undefined, collection: Invalid input: expected string, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":8}",
          "arguments": {}
        },
        "durationMs": 4
      },
      {
        "id": "L2.call_ok",
        "tool": "collection-storage-size",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Connection \\\"knot-verified-probe\\\" does not exist or has expired. Call the \\\"list-connections\\\" tool to see the active connections, or establish a new one and retry with the connectionId it returns.\"},{\"type\":\"text\",\"text\":\"Please use one of the following tools: \\\"connect\\\" to connect to a MongoDB instance or update the MCP server configuration to include a connection string. Note to LLM: do not invent connection strings and explicitly ask the user to provide one. If they have previously connected to MongoDB using MCP, you can ask them if they want to reconnect using the same connection string.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":9}",
          "arguments": {
            "database": "knot-verified-probe",
            "collection": "knot-verified-probe",
            "connectionId": "knot-verified-probe"
          }
        },
        "durationMs": 5
      },
      {
        "id": "L2.output_schema",
        "tool": "collection-storage-size",
        "detail": "tool reported isError",
        "status": "skipped"
      },
      {
        "id": "L2.bad_input",
        "tool": "collection-storage-size",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool collection-storage-size: connectionId: Invalid input: expected string, received undefined, database: Invalid input: expected string, received undefined, collection: Invalid input: expected string, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":10}",
          "arguments": {}
        },
        "durationMs": 2
      },
      {
        "id": "L2.call_ok",
        "tool": "connect",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Could not connect to MongoDB. Last error: Invalid scheme, expected connection string to start with \\\"<mongodb uri> or \\\"<mongodb uri>\"},{\"type\":\"text\",\"text\":\"Alternatively, you can use one of the following tools: \\\"connect\\\" to connect to a MongoDB instance. Note to LLM: do not invent connection strings and explicitly ask the user to provide one. If they have previously connected to MongoDB using MCP, you can ask them if they want to reconnect using the same connection string.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":11}",
          "arguments": {
            "connectionString": "knot-verified-probe"
          }
        },
        "durationMs": 6
      },
      {
        "id": "L2.output_schema",
        "tool": "connect",
        "detail": "tool reported isError",
        "status": "skipped"
      },
      {
        "id": "L2.bad_input",
        "tool": "connect",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool connect: connectionString: Invalid input: expected string, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":12}",
          "arguments": {}
        },
        "durationMs": 3
      },
      {
        "id": "L2.call_ok",
        "tool": "count",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Connection \\\"knot-verified-probe\\\" does not exist or has expired. Call the \\\"list-connections\\\" tool to see the active connections, or establish a new one and retry with the connectionId it returns.\"},{\"type\":\"text\",\"text\":\"Please use one of the following tools: \\\"connect\\\" to connect to a MongoDB instance or update the MCP server configuration to include a connection string. Note to LLM: do not invent connection strings and explicitly ask the user to provide one. If they have previously connected to MongoDB using MCP, you can ask them if they want to reconnect using the same connection string.\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":13}",
          "arguments": {
            "database": "knot-verified-probe",
            "collection": "knot-verified-probe",
            "connectionId": "knot-verified-probe"
          }
        },
        "durationMs": 4
      },
      {
        "id": "L2.output_schema",
        "tool": "count",
        "detail": "tool reported isError",
        "status": "skipped"
      },
      {
        "id": "L2.bad_input",
        "tool": "count",
        "status": "pass",
        "evidence": {
          "raw": "{\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Input validation error: Invalid arguments for tool count: connectionId: Invalid input: expected string, received undefined, database: Invalid input: expected string, received undefined, collection: Invalid input: expected string, received undefined\"}],\"isError\":true},\"jsonrpc\":\"2.0\",\"id\":14}",
          "arguments": {}
        },
        "durationMs": 3
      },
      {
        "id": "L2.call_ok",
        "tool": "create-collection",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "create-index",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "db-stats",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "delete-many",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "disconnect",
        "detail": "mutation_description",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "drop-collection",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "drop-database",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "drop-index",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "explain",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "export",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "find",
        "detail": "mutation_description",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "insert-many",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "list-collections",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "list-connections",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "list-databases",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "list-knowledge-sources",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "mongodb-logs",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "rename-collection",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "search-knowledge",
        "detail": "per_run_cap",
        "status": "untested"
      },
      {
        "id": "L2.call_ok",
        "tool": "update-many",
        "detail": "mutation_name",
        "status": "untested"
      },
      {
        "id": "L2.timeout",
        "detail": "5 calls answered within 30000 ms",
        "status": "pass"
      }
    ],
    "metrics": {
      "callMs": [
        10,
        4,
        6,
        4,
        5,
        2,
        6,
        3,
        4,
        3
      ],
      "toolsListMs": 33,
      "initializeMs": 71833
    },
    "facts": {
      "authModel": "none",
      "transport": "stdio",
      "capabilities": [
        "completions",
        "logging",
        "resources",
        "tools"
      ],
      "toolAnnotations": {
        "readOnly": 18,
        "unmarked": 3,
        "destructive": 6
      },
      "credentialsInUrl": false
    }
  },
  "l3": {
    "uptime": {
      "24h": null,
      "7d": 1,
      "30d": 1
    },
    "sampleSize": {
      "24h": 0,
      "7d": 1,
      "30d": 1
    },
    "latency": {
      "initialize": {
        "p50": null,
        "p95": null
      },
      "calls": {
        "p50": 4,
        "p95": 10
      }
    },
    "flakiness": null,
    "versionDrift": []
  },
  "history": [
    {
      "startedAt": "2026-10-29T06:43:08.660Z",
      "runKind": "full",
      "l0Ok": true,
      "verdict": "alive"
    }
  ]
}