Koskamo

SJ Storage MCP

Read-only MCP server providing public information about SJ Storage facilities, including availability snapshots, unit prices, deposits, hours, location, policies, and FAQ search capabilities without requiring authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

SJ Storage MCP logo, by SJ StorageVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by SJ Storage
MCP endpoint (Streamable HTTP)
https://sjstorage.net/mcp
Vendor documentation

What its tools do

10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

10 of 10 have a description · 10 of 10 declare behavior hints · 5 of 5 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to sjstorage.net ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Check current storage unit availability and prices
  • Retrieve facility location, directions, and access hours
  • Search published FAQs and site content
  • View storage features and rental policies

Source and maintenance

Vendor evidenceRegistry 1.1.1

Protocol and capabilities

Server
net.sjstorage/site 1.1.1
MCP protocol negotiated in check
2025-11-25
Tools
10 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

SJ Storage public information and availability snapshots. Public page facts include source links. Availability comes from the public SJ Storage feed, is cached for about 60 seconds, and includes a checked time. It does not hold or reserve units. The reserve step rechecks. Tools do not read tenant accounts, leases or payments, submit forms, sign agreements or take payments. The signed rental agreement governs rental terms. Help: https://sjstorage.net/connect/ and (208) 420-6328.

Tools

10 advertised

check_availability — Check storage availability
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Read-only: checks the SJ Storage public availability feed for unit types, sizes, monthly rent, deposits and open counts. Optional unit type or size matches the current feed or the published sizes. A published size absent from the feed is not listed as open right now. The snapshot is shared for about 60 seconds. Nothing is held or reserved; the reserve step rechecks. Missing types are not treated as zero.

check_availability input schema
{
  "type": "object",
  "examples": [
    {}
  ],
  "properties": {
    "unit": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "Type code, label or size from the feed, or a published size such as 8x20 or 12x30. Omit to list reported types."
    }
  },
  "additionalProperties": false
}
check_availability output schema
{
  "type": "object",
  "required": [
    "unitTypes",
    "checkedAt",
    "availabilityUrl",
    "notice"
  ],
  "properties": {
    "notice": {
      "type": "string"
    },
    "checkedAt": {
      "type": "string"
    },
    "unitTypes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type",
          "label",
          "size",
          "monthlyRentCents",
          "depositCents",
          "openCount",
          "currency"
        ],
        "properties": {
          "size": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "openCount": {
            "type": "integer"
          },
          "depositCents": {
            "type": "integer"
          },
          "monthlyRentCents": {
            "type": "integer"
          }
        },
        "additionalProperties": false
      }
    },
    "availabilityUrl": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
check_availability annotations
{
  "title": "Check storage availability",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_units_and_prices — Unit sizes, prices and deposits
Advertised by the server during the last successful anonymous check.
Advertised read-only

The two storage unit sizes SJ Storage rents (8x20 drive-up outdoor container, 12x30 powered indoor unit) with monthly rent and refundable deposit exactly as the site publishes them, from the Storage Units in Twin Falls page and the rates table on the availability page. Optionally one unit. It never states whether a unit is open: current availability is on the availability page it links.

get_units_and_prices input schema
{
  "type": "object",
  "examples": [
    {
      "unit": "12x30"
    }
  ],
  "properties": {
    "unit": {
      "enum": [
        "8x20",
        "12x30"
      ],
      "type": "string",
      "description": "One unit size; omit for both."
    }
  },
  "additionalProperties": false
}
get_units_and_prices output schema
{
  "type": "object",
  "required": [
    "units",
    "url",
    "ratesPage",
    "availability",
    "notice"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "intro": {
      "type": "string"
    },
    "units": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "unit",
          "heading",
          "text",
          "table",
          "ratesTable"
        ],
        "properties": {
          "text": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "table": {
            "type": "object",
            "required": [
              "Unit",
              "Size",
              "Type",
              "Monthly rent",
              "Deposit"
            ],
            "properties": {
              "Size": {
                "type": "string"
              },
              "Type": {
                "type": "string"
              },
              "Unit": {
                "type": "string"
              },
              "Deposit": {
                "type": "string"
              },
              "Monthly rent": {
                "type": "string"
              }
            }
          },
          "heading": {
            "type": "string"
          },
          "ratesTable": {
            "type": "object",
            "required": [
              "Unit Type",
              "Size",
              "Monthly Rate",
              "Deposit",
              "Key Features"
            ],
            "properties": {
              "Size": {
                "type": "string"
              },
              "Deposit": {
                "type": "string"
              },
              "Unit Type": {
                "type": "string"
              },
              "Key Features": {
                "type": "string"
              },
              "Monthly Rate": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "ratesPage": {
      "type": "object",
      "required": [
        "url",
        "note"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "intro": {
          "type": "string"
        }
      }
    },
    "availability": {
      "type": "object",
      "required": [
        "url",
        "text"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    }
  }
}
get_units_and_prices annotations
{
  "title": "Unit sizes, prices and deposits",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_location — Location and directions
Advertised by the server during the last successful anonymous check.
Advertised read-only

Where SJ Storage is (225 Blake St S, Twin Falls, ID 83301) as the site describes it, the Google Maps directions link the site publishes, its approximate drive times from Twin Falls landmarks, and its pages for nearby towns (Kimberly, Filer, Hansen, Jerome, Buhl).

get_location input schema
{
  "type": "object",
  "examples": [
    {}
  ],
  "properties": {},
  "additionalProperties": false
}
get_location output schema
{
  "type": "object",
  "required": [
    "address",
    "directions",
    "contactPage",
    "description",
    "driveTimes",
    "towns",
    "notice"
  ],
  "properties": {
    "faq": {
      "type": "object",
      "required": [
        "n",
        "question",
        "answer",
        "url"
      ],
      "properties": {
        "n": {
          "type": "integer"
        },
        "url": {
          "type": "string"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "text",
              "href"
            ],
            "properties": {
              "href": {
                "type": "string"
              },
              "text": {
                "type": "string"
              }
            }
          }
        },
        "answer": {
          "type": "string"
        },
        "question": {
          "type": "string"
        }
      }
    },
    "towns": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "text",
          "href"
        ],
        "properties": {
          "href": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "address": {
      "type": "string"
    },
    "directions": {
      "type": "string"
    },
    "driveTimes": {
      "type": "object",
      "required": [
        "intro",
        "url",
        "rows",
        "note"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "rows": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "from",
              "distance",
              "driveTime"
            ],
            "properties": {
              "from": {
                "type": "string"
              },
              "distance": {
                "type": "string"
              },
              "driveTime": {
                "type": "string"
              }
            }
          }
        },
        "intro": {
          "type": "string"
        }
      }
    },
    "contactPage": {
      "type": "string"
    },
    "description": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "descriptionUrl": {
      "type": "string"
    }
  }
}
get_location annotations
{
  "title": "Location and directions",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_hours — Gate and access hours
Advertised by the server during the last successful anonymous check.
Advertised read-only

Gate and access hours as the site publishes them: the hours on the contact page and the FAQ answers on gate hours, 24/7 and 24-hour access, weekends and holidays. The site publishes one set of hours (the gate hours); it lists no separate office hours.

get_hours input schema
{
  "type": "object",
  "examples": [
    {}
  ],
  "properties": {},
  "additionalProperties": false
}
get_hours output schema
{
  "type": "object",
  "required": [
    "contactPage",
    "gate",
    "faq",
    "notice"
  ],
  "properties": {
    "faq": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "n",
          "question",
          "answer",
          "url"
        ],
        "properties": {
          "n": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "text",
                "href"
              ],
              "properties": {
                "href": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                }
              }
            }
          },
          "answer": {
            "type": "string"
          },
          "question": {
            "type": "string"
          }
        }
      }
    },
    "gate": {
      "type": "object",
      "required": [
        "name",
        "text",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "contactPage": {
      "type": "object",
      "required": [
        "url",
        "label",
        "text"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      }
    }
  }
}
get_hours annotations
{
  "title": "Gate and access hours",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_features — Features and fit
Advertised by the server during the last successful anonymous check.
Advertised read-only

What every unit includes as the site lists it (gated keypad entry and its hours, 24/7 video surveillance, drive-up loading, month-to-month lease signed online, payment options, power in the 12x30), the homepage amenities list, and the site's own "good fit / look elsewhere" lists (it has no small lockers, no climate control and no 24-hour gate access).

get_features input schema
{
  "type": "object",
  "examples": [
    {}
  ],
  "properties": {},
  "additionalProperties": false
}
get_features output schema
{
  "type": "object",
  "required": [
    "features",
    "amenities",
    "fit",
    "notice"
  ],
  "properties": {
    "fit": {
      "type": "object",
      "required": [
        "url",
        "goodFit",
        "lookElsewhere"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "intro": {
          "type": "string"
        },
        "goodFit": {
          "type": "object",
          "required": [
            "heading",
            "items"
          ],
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "heading": {
              "type": "string"
            }
          }
        },
        "lookElsewhere": {
          "type": "object",
          "required": [
            "heading",
            "items"
          ],
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "heading": {
              "type": "string"
            }
          }
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "features": {
      "type": "object",
      "required": [
        "heading",
        "url",
        "items"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "text"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "text": {
                "type": "string"
              }
            }
          }
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "amenities": {
      "type": "object",
      "required": [
        "heading",
        "url",
        "items"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "intro": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "text"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "text": {
                "type": "string"
              }
            }
          }
        },
        "heading": {
          "type": "string"
        }
      }
    }
  }
}
get_features annotations
{
  "title": "Features and fit",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_policies — Policies as published
Advertised by the server during the last successful anonymous check.
Advertised read-only

What the site says about a policy, quoted from its FAQ and pages: deposit, fees, lease term and moving out, missed payments, what you need to rent, prohibited items and use, insurance, climate control, access and authorized users. Where a term is not published (late fee amounts, notice periods, proration), the answer quotes the site's own statement that the signed rental agreement governs it. Omit `topic` for the list of topics.

get_policies input schema
{
  "type": "object",
  "examples": [
    {
      "topic": "deposit"
    }
  ],
  "properties": {
    "topic": {
      "enum": [
        "deposit",
        "fees",
        "lease-term",
        "late-payment",
        "what-you-need",
        "prohibited-items",
        "insurance",
        "climate-control",
        "access-and-authorized-users"
      ],
      "type": "string",
      "description": "One policy topic; omit for the list of topics."
    }
  },
  "additionalProperties": false
}
get_policies output schema
{
  "type": "object",
  "required": [
    "topics",
    "notice"
  ],
  "properties": {
    "faq": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "n",
          "question",
          "answer",
          "url"
        ],
        "properties": {
          "n": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "text",
                "href"
              ],
              "properties": {
                "href": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                }
              }
            }
          },
          "answer": {
            "type": "string"
          },
          "question": {
            "type": "string"
          }
        }
      }
    },
    "label": {
      "type": "string"
    },
    "topic": {
      "type": "string"
    },
    "notice": {
      "type": "string"
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "label"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      }
    },
    "specials": {
      "type": "object",
      "required": [
        "url",
        "lead"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "lead": {
          "type": "string"
        }
      }
    },
    "rentalAgreement": {
      "type": "object",
      "required": [
        "url",
        "heading",
        "paragraphs"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "heading": {
          "type": "string"
        },
        "paragraphs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
get_policies annotations
{
  "title": "Policies as published",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
how_to_rent_and_pay — How to rent and how to pay
Advertised by the server during the last successful anonymous check.
Advertised read-only

How to rent a unit, as the site describes it (check availability, sign the lease online, pay the first month and deposit, bring a lock and move in), the payment methods it accepts, its online payment page. Links only: this tool never reserves a unit, signs a lease, reads an account or takes a payment.

how_to_rent_and_pay input schema
{
  "type": "object",
  "examples": [
    {}
  ],
  "properties": {},
  "additionalProperties": false
}
how_to_rent_and_pay output schema
{
  "type": "object",
  "required": [
    "steps",
    "stepsUrl",
    "availability",
    "paymentPage",
    "contact",
    "notice"
  ],
  "properties": {
    "steps": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "step",
          "name",
          "text"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "step": {
            "type": "integer"
          },
          "text": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "text",
                "href"
              ],
              "properties": {
                "href": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "contact": {
      "type": "object",
      "required": [
        "phone",
        "email",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        }
      }
    },
    "stepsUrl": {
      "type": "string"
    },
    "paymentPage": {
      "type": "object",
      "required": [
        "url",
        "heading",
        "text"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "text": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "heading": {
          "type": "string"
        },
        "embeddedPortal": {
          "type": "string"
        }
      }
    },
    "availability": {
      "type": "object",
      "required": [
        "url",
        "text"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    },
    "paymentMethods": {
      "type": "object",
      "required": [
        "n",
        "question",
        "answer",
        "url"
      ],
      "properties": {
        "n": {
          "type": "integer"
        },
        "url": {
          "type": "string"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "text",
              "href"
            ],
            "properties": {
              "href": {
                "type": "string"
              },
              "text": {
                "type": "string"
              }
            }
          }
        },
        "answer": {
          "type": "string"
        },
        "question": {
          "type": "string"
        }
      }
    },
    "rentalAgreement": {
      "type": "object",
      "required": [
        "url",
        "text"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    }
  }
}
how_to_rent_and_pay annotations
{
  "title": "How to rent and how to pay",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_contact — Contact
Advertised by the server during the last successful anonymous check.
Advertised read-only

How to reach SJ Storage as the contact page publishes it: phone (208) 420-6328, email, the contact page and its form, the street address with its Google Maps link, the hours, and the Facebook and Instagram pages. This tool does not send messages. To save the person typing, the form can be opened prefilled: https://sjstorage.net/contact?unit=12x30&message=<URL-encoded text>#contact (unit is 8x20 or 12x30, both optional) fills only the topic and the message; the person adds their own name and email and presses Send.

get_contact input schema
{
  "type": "object",
  "examples": [
    {}
  ],
  "properties": {},
  "additionalProperties": false
}
get_contact output schema
{
  "type": "object",
  "required": [
    "phone",
    "phoneHref",
    "email",
    "contactPage",
    "address",
    "directions",
    "hours",
    "notice"
  ],
  "properties": {
    "form": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "hours": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "notice": {
      "type": "string"
    },
    "address": {
      "type": "string"
    },
    "facebook": {
      "type": "string"
    },
    "instagram": {
      "type": "string"
    },
    "phoneHref": {
      "type": "string"
    },
    "directions": {
      "type": "string"
    },
    "contactPage": {
      "type": "string"
    }
  }
}
get_contact annotations
{
  "title": "Contact",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_faq — Search the FAQ
Advertised by the server during the last successful anonymous check.
Advertised read-only

The site's FAQ answers as published: the FAQ page (50 questions) and the questions on the Storage Units in Twin Falls page. Search by words ("deposit", "RV", "lock", "24 hour access"), or omit the query to return the first five answers.

search_faq input schema
{
  "type": "object",
  "examples": [
    {
      "query": "deposit"
    }
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "At most this many answers (default 5, maximum 10)."
    },
    "query": {
      "type": "string",
      "pattern": "\\S",
      "maxLength": 200,
      "minLength": 1,
      "description": "Words to look for; omit for the first five answers."
    }
  },
  "additionalProperties": false
}
search_faq output schema
{
  "type": "object",
  "required": [
    "queryWords",
    "results",
    "total",
    "url",
    "notice"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "total": {
      "type": "integer"
    },
    "notice": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "n",
          "question",
          "answer",
          "url"
        ],
        "properties": {
          "n": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "text",
                "href"
              ],
              "properties": {
                "href": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                }
              }
            }
          },
          "answer": {
            "type": "string"
          },
          "question": {
            "type": "string"
          }
        }
      }
    },
    "queryWords": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
search_faq annotations
{
  "title": "Search the FAQ",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_site — Search the site
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find pages on sjstorage.net by words (every page in its sitemap: units and prices, sizing guide, space calculator, RV and boat, powered units, commercial, town pages, comparisons, blog, FAQ, contact and the legal pages). Returns up to `limit` pages with title, link and the page's own description, best match first.

search_site input schema
{
  "type": "object",
  "examples": [
    {
      "query": "what fits in a 12x30"
    }
  ],
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "How many pages at most (1 to 10, default 5)."
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Words to look for, e.g. \"winter RV storage\"."
    }
  },
  "additionalProperties": false
}
search_site output schema
{
  "type": "object",
  "required": [
    "queryWords",
    "results",
    "notice"
  ],
  "properties": {
    "notice": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "url",
          "description",
          "matched"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "matched": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string"
          }
        }
      }
    },
    "queryWords": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
search_site annotations
{
  "title": "Search the site",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
549 ms
95th percentile latency
549 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 549 ms · metadata changed · 10 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http sj-storage-mcp https://sjstorage.net/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add sj-storage-mcp --url https://sjstorage.net/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable sj-storage-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "sj-storage-mcp": {
      "url": "https://sjstorage.net/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "sj-storage-mcp": {
      "type": "streamableHttp",
      "url": "https://sjstorage.net/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start sj-storage-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "sj-storage-mcp": {
      "type": "http",
      "url": "https://sjstorage.net/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http sj-storage-mcp https://sjstorage.net/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://sjstorage.net/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "sj-storage-mcp": {
      "serverUrl": "https://sjstorage.net/mcp"
    }
  }
}

Let your agent find its tools

Find servers like SJ Storage MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run SJ Storage MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing