StoreRocket MCP by usefulapi
Read StoreRocket projects and store-locator locations; create and update locations.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"storerocket": {
"url": "https://storerocket.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://storerocket.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢storerocket_get_user
The StoreRocket user the API token belongs to: id, name, email and company. GET /user.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢storerocket_list_projects
List the StoreRocket projects (store locators) the token's user belongs to: public id, name, number of locations, status and plan. Use the id as project_id in every location tool. Location tools need a project on the Business plan (API access). GET /projects.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢storerocket_list_locations(project_id, name, name_operator, address, address_operator, ...)
List the locations of a project (name, address, city, coordinates, phone, visibility, location type, marker, cover image), 25 per page by default, with optional filters on name, address, city, state, country and postal code and optional hours/filters/custom fields/calls to action. Needs the location:read permission. GET /projects/{project_id}/locations.
入力スキーマ
{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Public project id (from storerocket_list_projects), kept as a string."
},
"name": {
"description": "Filter by location name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name_operator": {
"description": "How name is matched: eq (exact, default), ne (not equal) or like (substring).",
"type": "string",
"enum": [
"eq",
"ne",
"like"
]
},
"address": {
"description": "Filter by address.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"address_operator": {
"description": "eq (exact, default) or like (substring).",
"type": "string",
"enum": [
"eq",
"like"
]
},
"city": {
"description": "Filter by city.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"city_operator": {
"description": "eq (exact, default) or like (substring).",
"type": "string",
"enum": [
"eq",
"like"
]
},
"state": {
"description": "Filter by state or region.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"state_operator": {
"description": "eq (exact, default) or like (substring).",
"type": "string",
"enum": [
"eq",
"like"
]
},
"country": {
"description": "Filter by country.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"country_operator": {
"description": "eq (exact, default) or like (substring).",
"type": "string",
"enum": [
"eq",
"like"
]
},
"postal_code": {
"description": "Filter by exact postal code.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"include_hours": {
"description": "Include opening hours on every location (default false).",
"type": "boolean"
},
"include_filters": {
"description": "Include search filters on every location (default false).",
"type": "boolean"
},
"include_fields": {
"description": "Include custom fields on every location (default false).",
"type": "boolean"
},
"include_calls_to_action": {
"description": "Include calls to action (buttons) on every location (default false).",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Locations per page, 1-100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"project_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢storerocket_get_location(project_id, location_id, include_hours, include_filters, include_fields, ...)
One location by id, optionally with its opening hours, search filters, custom fields and calls to action. Needs the location:read permission. GET /projects/{project_id}/locations/{location_id}.
入力スキーマ
{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Public project id (from storerocket_list_projects), kept as a string."
},
"location_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Public location id (from storerocket_list_locations), kept as a string."
},
"include_hours": {
"description": "Include opening hours on every location (default false).",
"type": "boolean"
},
"include_filters": {
"description": "Include search filters on every location (default false).",
"type": "boolean"
},
"include_fields": {
"description": "Include custom fields on every location (default false).",
"type": "boolean"
},
"include_calls_to_action": {
"description": "Include calls to action (buttons) on every location (default false).",
"type": "boolean"
}
},
"required": [
"project_id",
"location_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡storerocket_create_location(project_id, name, city, address_line_1, address_line_2, ...)
WRITE: add a location to a project's store locator. name and city are required; supply lat and lng for a precise pin (otherwise StoreRocket geocodes the address, which can be off). It appears on the live locator immediately unless visible is false, so set visible=false for a coming-soon or draft location. Opening hours: omit, or give all seven days. Creating twice makes two locations, so check storerocket_list_locations before retrying after an error. Needs the location:create permission. POST /projects/{project_id}/locations.
入力スキーマ
{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Public project id (from storerocket_list_projects), kept as a string."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Location name."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "City."
},
"address_line_1": {
"description": "Street address.",
"type": "string",
"maxLength": 255
},
"address_line_2": {
"description": "Additional address information.",
"type": "string",
"maxLength": 255
},
"state": {
"description": "State or region.",
"type": "string",
"maxLength": 255
},
"postcode": {
"description": "Postal code.",
"type": "string",
"maxLength": 50
},
"country": {
"description": "Country.",
"type": "string",
"maxLength": 255
},
"lat": {
"description": "Latitude, -90 to 90. Supply with lng for an exact pin.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"description": "Longitude, -180 to 180. Supply with lat for an exact pin.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"visible": {
"description": "Whether the location shows on the locator. Set false to keep it hidden.",
"type": "boolean"
},
"phone": {
"description": "Phone number.",
"type": "string",
"maxLength": 100
},
"email": {
"description": "Email address.",
"type": "string",
"maxLength": 255
},
"url": {
"description": "Website URL.",
"type": "string",
"maxLength": 500
},
"timezone": {
"description": "Location timezone, e.g. Europe/London.",
"type": "string",
"maxLength": 100
},
"location_type": {
"description": "Name of an existing location type in the project.",
"type": "string",
"maxLength": 255
},
"hours": {
"description": "A FULL week: all seven days (mon..sun), each a range like 09:00-17:00 or closed. Omit for no schedule.",
"type": "object",
"properties": {
"mon": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"tue": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"wed": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"thu": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"fri": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"sat": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"sun": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"monday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"tuesday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"wednesday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"thursday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"friday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"saturday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"sunday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
}
},
"additionalProperties": false
},
"filters": {
"description": "Filter names to attach.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"fields": {
"description": "Custom fields as {\"Manager\":\"Sam\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
}
},
"calls_to_action": {
"description": "Calls to action as {\"Book\":\"https://example.com/book\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
}
},
"facebook": {
"description": "facebook profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"instagram": {
"description": "instagram profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"twitter": {
"description": "twitter profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"yelp": {
"description": "yelp profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"youtube": {
"description": "youtube profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"tiktok": {
"description": "tiktok profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
}
},
"required": [
"project_id",
"name",
"city"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴storerocket_update_location(project_id, location_id, name, city, address_line_1, ...)
WRITE: change selected fields of one location with a partial update (PATCH): only the fields you send change, everything else is kept. The change shows on the live locator at once. Use null to clear phone, email, url, socials or cover; hours accepts single days (hours:{mon:'09:00-17:00'}), null for a day clears it, hours:null removes the whole schedule; fields and calls_to_action merge by name (a null value removes that entry); filters REPLACES the list ([] clears it). To take a location off the locator without deleting it, set visible=false. An invalid value saves nothing. Needs the location:update permission. PATCH /projects/{project_id}/locations/{location_id}.
入力スキーマ
{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Public project id (from storerocket_list_projects), kept as a string."
},
"location_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Public location id (from storerocket_list_locations), kept as a string."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "New location name."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "New city."
},
"address_line_1": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"description": "Street address. Send null to clear it."
},
"address_line_2": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"description": "Additional address information. Send null to clear it."
},
"state": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"description": "State or region. Send null to clear it."
},
"postcode": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"description": "Postal code. Send null to clear it."
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"description": "Country. Send null to clear it."
},
"lat": {
"description": "Latitude, -90 to 90. When moving a location, send the new lat and lng together (an address change alone keeps the old pin).",
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"description": "Longitude, -180 to 180.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"visible": {
"description": "Show (true) or hide (false) the location on the locator.",
"type": "boolean"
},
"phone": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"description": "Phone number. Send null to clear it."
},
"email": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"description": "Email address. Send null to clear it."
},
"url": {
"description": "Website URL. Send null to clear it.",
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
]
},
"timezone": {
"description": "Location timezone, e.g. Europe/London.",
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"location_type": {
"description": "Name of a location type in the project; null restores the project default.",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"marker_id": {
"description": "Id of a marker in the project; null restores the project default.",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"cover": {
"description": "Cover image URL or the project's stored image name; null clears it.",
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
},
"hours": {
"description": "Days to change (mon..sun or full names), each 'HH:MM-HH:MM', 'closed' or null to clear; null removes the schedule; {} keeps it.",
"anyOf": [
{
"type": "object",
"properties": {
"mon": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"tue": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"wed": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"thu": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"fri": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"sat": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"sun": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"monday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"tuesday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"wednesday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"thursday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"friday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"saturday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
},
"sunday": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 60
},
{
"type": "null"
}
],
"description": "A time range such as \"09:00-17:00\", \"closed\", or null to clear that day."
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"filters": {
"description": "REPLACES the filter list; [] or null clears it.",
"anyOf": [
{
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
{
"type": "null"
}
]
},
"fields": {
"description": "Custom fields to add or update by name, e.g. {\"Manager\":\"Sam\",\"Old\":null}; null clears all.",
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
]
},
"calls_to_action": {
"description": "Calls to action to add or update by name, e.g. {\"Book\":\"https://example.com/book\"}; null clears all.",
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
]
},
"facebook": {
"description": "facebook profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"instagram": {
"description": "instagram profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"twitter": {
"description": "twitter profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"yelp": {
"description": "yelp profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"youtube": {
"description": "youtube profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
},
"tiktok": {
"description": "tiktok profile handle or URL; null clears it (update only).",
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
]
}
},
"required": [
"project_id",
"location_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス