Skip to main content
Glama

StoreRocket MCP by usefulapi

Server Details

Read StoreRocket projects and store-locator locations; create and update locations.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool maps to a distinct resource+action pair: four location operations (create/get/list/update), plus list_projects and get_user. No two tools could plausibly be confused, and descriptions reinforce the boundaries (list vs get, create vs update).

Naming Consistency5/5

All names follow the same storerocket_{verb}_{noun} snake_case pattern with a consistent verb style (create, get, list, update). The shared prefix makes the namespace predictable throughout.

Tool Count5/5

Six tools is a tight, well-scoped surface for a store locator API: just the location lifecycle plus the required project and user context lookups. Every tool earns its place with no filler.

Completeness3/5

Create/get/list/update plus project and user lookups cover the main workflow, but there is no delete tool for locations — agents must fall back to setting visible=false, and draft locations created by mistake cannot be removed. Everything else (list filters, pagination, partial updates) is well covered.

Available Tools

6 tools
storerocket_create_locationCreate locationAInspect

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.

NameRequiredDescriptionDefault
latNoLatitude, -90 to 90. Supply with lng for an exact pin.
lngNoLongitude, -180 to 180. Supply with lat for an exact pin.
urlNoWebsite URL.
cityYesCity.
nameYesLocation name.
yelpNoyelp profile handle or URL; null clears it (update only).
emailNoEmail address.
hoursNoA FULL week: all seven days (mon..sun), each a range like 09:00-17:00 or closed. Omit for no schedule.
phoneNoPhone number.
stateNoState or region.
fieldsNoCustom fields as {"Manager":"Sam"}.
tiktokNotiktok profile handle or URL; null clears it (update only).
countryNoCountry.
filtersNoFilter names to attach.
twitterNotwitter profile handle or URL; null clears it (update only).
visibleNoWhether the location shows on the locator. Set false to keep it hidden.
youtubeNoyoutube profile handle or URL; null clears it (update only).
facebookNofacebook profile handle or URL; null clears it (update only).
postcodeNoPostal code.
timezoneNoLocation timezone, e.g. Europe/London.
instagramNoinstagram profile handle or URL; null clears it (update only).
project_idYesPublic project id (from storerocket_list_projects), kept as a string.
location_typeNoName of an existing location type in the project.
address_line_1NoStreet address.
address_line_2NoAdditional address information.
calls_to_actionNoCalls to action as {"Book":"https://example.com/book"}.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: warns that the location appears live immediately unless visible=false, that creating twice makes two locations (consequence of non-idempotency, not just the hint flag), that geocoding is used when lat/lng are absent and may be inaccurate, and that the location:create permission is required. This is precisely the behavioral context an agent needs before a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the operation type and target, then layers in requirements, behavior, edge cases, and the permission/endpoint. Every sentence carries actionable information with no filler, and it is dense but readable for a 26-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description could say what is returned (e.g. the new location id), which would help an agent chain into get_location or update_location. Otherwise it covers the mutation's side effects, prerequisites, and key parameter constraints thoroughly for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3; the description adds genuine meaning on top by explaining why to supply lat/lng (precise pin vs. approximate geocoding) and the omit-or-all-seven-days constraint on hours. Required fields name and city are called out, though most of the 26 optional fields receive no mention in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with an explicit 'WRITE: add a location to a project's store locator', giving a specific verb, resource, and mutation class. It is trivially distinguishable from sibling get_location, list_locations, and update_location, and the POST endpoint confirms the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use conditions: set visible=false for coming-soon or draft locations, and call storerocket_list_locations before retrying after an error. It does not explicitly route the agent to storerocket_update_location when modifying an existing location, which is the one obvious sibling alternative left unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storerocket_get_locationGet locationA
Read-only
Inspect

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}.

NameRequiredDescriptionDefault
project_idYesPublic project id (from storerocket_list_projects), kept as a string.
location_idYesPublic location id (from storerocket_list_locations), kept as a string.
include_hoursNoInclude opening hours on every location (default false).
include_fieldsNoInclude custom fields on every location (default false).
include_filtersNoInclude search filters on every location (default false).
include_calls_to_actionNoInclude calls to action (buttons) on every location (default false).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true. The description adds genuinely new behavioral context: the required location:read permission scope and the underlying HTTP route, plus the fact that the four include_* payloads are optional add-ons rather than defaults. It stops short of describing failure behavior for an unknown id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core purpose and optional expansions stated first and the permission/endpoint constraints trailing as supporting detail. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only fetch with a fully documented schema and no output schema, the description covers purpose, optional payloads, auth scope and endpoint. The only meaningful omission is what happens for a nonexistent or unauthorized location id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and every parameter carries its own description, including the discovery path for project_id and location_id and the default-false behavior of the include flags. The description's list of optional payloads mirrors the schema without adding format, cost, or interaction detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('One location by id') plus the optional expansions it can return (hours, filters, custom fields, calls to action), and pins it down with the endpoint GET /projects/{project_id}/locations/{location_id}. This clearly separates it from the sibling list_locations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'One location by id' signals the single-resource case versus listing, and the required permission is named. It does not explicitly route the agent to storerocket_list_locations when the id is unknown (that hint only lives in the schema field description), so it falls short of naming alternatives explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storerocket_get_userGet userA
Read-only
Inspect

The StoreRocket user the API token belongs to: id, name, email and company. GET /user.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the concrete response shape and the underlying endpoint (

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence front-loads resource identity and then lists returned fields with zero filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully compensates by naming the four returned fields, which is what an agent needs to decide whether to call it. Minor gaps remain around error/auth behavior if the token is invalid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; the description correctly implies no input is required by anchoring the lookup to the API token itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Identifies the exact resource as the StoreRocket user tied to the current API token and enumerates the returned fields (id, name, email, company). It is clearly distinguishable from the location/project siblings, though the verb is only implicit via the 'GET /user' trailer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'the API token belongs to' implicitly tells an agent this returns the authenticated user with no ID needed, which is a usable selection hint. However, there is no explicit when-to-use/when-not guidance and no reference to any sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storerocket_list_locationsList locationsA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
cityNoFilter by city.
nameNoFilter by location name.
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
limitNoLocations per page, 1-100 (default 25).
stateNoFilter by state or region.
addressNoFilter by address.
countryNoFilter by country.
project_idYesPublic project id (from storerocket_list_projects), kept as a string.
postal_codeNoFilter by exact postal code.
city_operatorNoeq (exact, default) or like (substring).
include_hoursNoInclude opening hours on every location (default false).
name_operatorNoHow name is matched: eq (exact, default), ne (not equal) or like (substring).
include_fieldsNoInclude custom fields on every location (default false).
state_operatorNoeq (exact, default) or like (substring).
include_filtersNoInclude search filters on every location (default false).
address_operatorNoeq (exact, default) or like (substring).
country_operatorNoeq (exact, default) or like (substring).
include_calls_to_actionNoInclude calls to action (buttons) on every location (default false).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/openWorld/non-destructive, and the description adds what annotations cannot: the required location:read permission, the GET endpoint, the 25-per-page default, and which data is only present when include_* flags are set. It does not mention rate limits or error/empty-result behavior, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single front-loaded sentence that begins with the verb and resource, then layers fields, pagination, filters, permission, and endpoint. It is dense and slightly run-on, but every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter tool with no output schema, the description compensates by enumerating the returned fields and noting the optional include_* expansions, which is exactly the missing return-shape information. Only pagination mechanics for next_page and failure modes are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including defaults, ranges, and all operator enums, so the schema carries parameter semantics. The description restates the filter set and the 25-per-page default but adds no operator or format detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the locations of a project') plus the returned fields, pagination default, filterability, and the underlying endpoint. An agent can distinguish this from storerocket_get_location (single location) and storerocket_list_projects without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Scope and precondition are explicit: filterable multi-location retrieval scoped to a project, requiring the location:read permission. However, it never names an alternative or states when not to use it (e.g., use storerocket_get_location for a single known location), so usage guidance is clear but not exclusionary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storerocket_list_projectsList projectsA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, open-world, non-destructive profile, and the description adds real context on top: the authorization scope is the token's user, the endpoint is GET /projects, and location tools additionally require a Business-plan project. It doesn't discuss result size or error behavior for unauthorized projects, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what is listed and what is returned, then the routing instruction and the plan caveat. No filler or restated name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no output schema, the description covers input (none), output fields, the authorization scope, the endpoint, and the downstream constraint on sibling calls. Nothing an agent needs before invoking or chaining it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; the description correctly implies no inputs are needed and instead spends its words on what the returned id is used for, which is the semantically useful part for a no-arg tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the StoreRocket projects (store locators)') and scopes it to 'the token's user belongs to', then enumerates the returned fields (public id, name, location count, status, plan). An agent can distinguish it from the location siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit downstream usage ('Use the id as project_id in every location tool') and a prerequisite ('Location tools need a project on the Business plan (API access)'), which tells the agent both why and when to call this first. It stops short of naming when-not-to-use cases, so it lands just below the top mark.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

storerocket_update_locationUpdate locationA
DestructiveIdempotent
Inspect

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}.

NameRequiredDescriptionDefault
latNoLatitude, -90 to 90. When moving a location, send the new lat and lng together (an address change alone keeps the old pin).
lngNoLongitude, -180 to 180.
urlNoWebsite URL. Send null to clear it.
cityNoNew city.
nameNoNew location name.
yelpNoyelp profile handle or URL; null clears it (update only).
coverNoCover image URL or the project's stored image name; null clears it.
emailNoEmail address. Send null to clear it.
hoursNoDays to change (mon..sun or full names), each 'HH:MM-HH:MM', 'closed' or null to clear; null removes the schedule; {} keeps it.
phoneNoPhone number. Send null to clear it.
stateNoState or region. Send null to clear it.
fieldsNoCustom fields to add or update by name, e.g. {"Manager":"Sam","Old":null}; null clears all.
tiktokNotiktok profile handle or URL; null clears it (update only).
countryNoCountry. Send null to clear it.
filtersNoREPLACES the filter list; [] or null clears it.
twitterNotwitter profile handle or URL; null clears it (update only).
visibleNoShow (true) or hide (false) the location on the locator.
youtubeNoyoutube profile handle or URL; null clears it (update only).
facebookNofacebook profile handle or URL; null clears it (update only).
postcodeNoPostal code. Send null to clear it.
timezoneNoLocation timezone, e.g. Europe/London.
instagramNoinstagram profile handle or URL; null clears it (update only).
marker_idNoId of a marker in the project; null restores the project default.
project_idYesPublic project id (from storerocket_list_projects), kept as a string.
location_idYesPublic location id (from storerocket_list_locations), kept as a string.
location_typeNoName of a location type in the project; null restores the project default.
address_line_1NoStreet address. Send null to clear it.
address_line_2NoAdditional address information. Send null to clear it.
calls_to_actionNoCalls to action to add or update by name, e.g. {"Book":"https://example.com/book"}; null clears all.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (destructiveHint, idempotentHint, openWorldHint) by stating that only sent fields change, that changes appear on the live locator immediately, that an invalid value saves nothing (atomicity), and that visible=false hides without deleting. It also distinguishes merge semantics (fields, calls_to_action) from replace semantics (filters), which no annotation conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the write/PATCH semantics before the field-level rules, and uses compact notation (hours:{mon:'09:00-17:00'}) efficiently. It is dense and close to overloaded for a single paragraph, but for a 29-parameter mutation little of it is expendable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers mutation semantics, permissions, atomic failure and clearing rules, which is what an agent needs to call this safely across 29 parameters. The main gap is that with no output schema, the description never says what a successful call returns, so an agent can't anticipate the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, and the description earns above that by consolidating the null-clearing model (phone/email/url/socials/cover), the hours day-level vs whole-schedule null distinction, and the merge-vs-replace contract for fields, calls_to_action and filters. Some of this restates the schema, and it doesn't explain the lat/lng-together rule carried only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb, resource and update model: "WRITE: change selected fields of one location with a partial update (PATCH)". This cleanly separates it from the create/get/list siblings without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives actionable context: needs the location:update permission, and explicitly routes the hide-don't-delete case to visible=false. It does not, however, name storerocket_create_location or get_location as the alternative for other intents, so sibling routing is only partly covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedstorerocket_create_location
    • First observedstorerocket_get_location
    • First observedstorerocket_get_user
    • First observedstorerocket_list_locations
    • First observedstorerocket_list_projects
    • First observedstorerocket_update_location

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.