Skip to main content
Glama

ScareMap

Server Details

Find haunted houses, ghost tours and haunted places near you, with visitor ratings.

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-11-25
URL

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation4/5

The two find_haunts tools share a purpose (searching haunts) but are cleanly differentiated by input mode: coordinates/radius vs. state/city names. Descriptions explicitly cross-reference each other ('For a whole city or state use scaremap_find_haunts_in_city', 'To search by distance from a point use scaremap_find_haunts'), so misselection is unlikely. scaremap_categories and scaremap_get_haunt have clearly distinct roles.

Naming Consistency4/5

All names use snake_case with a consistent scaremap_ prefix, and three of four are verb_noun (find_haunts, find_haunts_in_city, get_haunt). scaremap_categories is a bare noun that breaks the verb pattern, a minor deviation. The prefix is somewhat redundant but harmless.

Tool Count4/5

Four tools is on the lean side but each covers a distinct read path: taxonomy, geo search, admin-area search, and entity detail. For a read-only directory of haunted attractions nothing feels redundant or missing from the count itself.

Completeness4/5

The surface covers the full browse lifecycle: categories, discovery by location two ways, and full record plus reviews. Notable gaps remain: no name/keyword search (explicitly excluded) and no way to browse popular haunts nationwide without a location. These are workable around but real limitations.

Available Tools

4 tools
scaremap_categoriesList haunt categoriesA
Read-onlyIdempotent
Inspect

List every haunt category with its display label and the number of public haunts in it. Call this first when the user asks what kinds of places ScareMap covers, or to get valid values for the category filter on the other tools. Takes no input.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
categoriesYes
total_hauntsYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description still adds value beyond them by scoping the counts to public haunts only and confirming the tool takes no input.

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 the tool returns, then when to call it and the no-input fact. Nothing is padded or repeated from the schema.

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?

With an output schema present, an input-free schema, and full annotations, the description covers everything an agent needs: contents of each row, the routing trigger, and the absence of arguments.

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?

There are zero parameters, so the baseline is 4; the description reinforces this with 'Takes no input', removing any doubt that arguments are expected.

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 haunt categories) plus exactly what each entry contains (display label, count of public haunts). It is trivially distinguishable from the haunt-lookup siblings scaremap_find_haunts / scaremap_get_haunt.

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

Usage Guidelines5/5

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

Gives an explicit call-first condition ('when the user asks what kinds of places ScareMap covers') and a second concrete trigger (to obtain valid values for the category filter used by the other tools). No alternatives are needed since no sibling overlaps this purpose.

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

scaremap_find_hauntsFind haunts near a locationA
Read-onlyIdempotent
Inspect

Find haunted houses, haunt farms, ghost tours, horror escape rooms and haunted places within a radius of a latitude/longitude, nearest first. Call this when the user gives a place, address or coordinates and wants scary things to do nearby. Geocode a place name to lat/lng first; this tool does not search by name. Filter by category, by season, or by minimum visitor ratings. Unrated haunts (review_count 0) have null ratings and are left out when min_stars or min_scare is set. For a whole city or state use scaremap_find_haunts_in_city. For the full record and reviews of one result use scaremap_get_haunt.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the search center, decimal degrees.
lngYesLongitude of the search center, decimal degrees.
limitNoMaximum results. Default 10, maximum 25.
seasonNohalloween = seasonal haunt, year_round = open outside October.
categoryNoOnly this category. Call scaremap_categories for the list.
min_scareNoMinimum average scare intensity (1 to 5).
min_starsNoMinimum average quality rating (1 to 5).
radius_milesNoSearch radius in miles. Default 25, maximum 150.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hauntsYes
total_matchesYesMatches inside the radius before the limit is applied.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds behavior annotations don't: nearest-first result ordering and the important caveat that unrated haunts (review_count 0) have null ratings and are dropped when min_stars or min_scare is set. It doesn't discuss pagination or result caps beyond limit.

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 core action and ordering, then prerequisites, then caveats, then sibling routing, in four dense sentences with no filler. Every sentence carries information an agent needs to select or invoke the tool correctly.

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?

An output schema exists, so return values need not be explained. For an 8-parameter geo-search tool the description covers the required lat/lng prerequisite, the geocoding gap it cannot fill, the filter semantics including the null-rating edge case, and sibling routing — nothing an agent needs to call it correctly 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?

Schema description coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the null-rating/unrated interaction with min_stars and min_scare, and the filter axes (category, season, minimum visitor ratings). It does not explain the distinction between min_scare and min_stars beyond the schema's own wording.

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 set ('Find haunted houses, haunt farms, ghost tours, horror escape rooms and haunted places') scoped by radius around lat/lng, and adds the ordering guarantee 'nearest first'. It explicitly differentiates from siblings by naming when to use scaremap_find_haunts_in_city and scaremap_get_haunt instead.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('when the user gives a place, address or coordinates and wants scary things to do nearby'), a prerequisite ('Geocode a place name to lat/lng first'), and an exclusion ('this tool does not search by name'). It also routes to two named alternative tools with the conditions that select them.

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

scaremap_find_haunts_in_cityFind haunts in a city or stateA
Read-onlyIdempotent
Inspect

List haunts in a US state, or in one city of that state, using the same state and city grouping as the ScareMap location pages. Call this when the user names a state or city ("haunted houses in Salem, Massachusetts") and has no coordinates. State accepts a name, a slug or a two-letter code. Results are ordered by review count, then name. If the city is not found, the error lists the cities ScareMap has in that state. To search by distance from a point use scaremap_find_haunts.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name within the state. Omit to list the whole state.
limitNoMaximum results. Default 25, maximum 50.
stateYesState name, slug or two-letter code, for example "Massachusetts", "new-york" or "TX".
seasonNohalloween = seasonal haunt, year_round = open outside October.
categoryNoOnly this category. Call scaremap_categories for the list.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cityYes
stateYes
hauntsYes
page_urlYesScareMap location page for this state or city.
total_matchesYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. Beyond that the description discloses result ordering (review count, then name) and failure behavior (city-not-found errors enumerate the state's known cities), which are genuinely useful traits not present in the structured fields.

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-loaded with purpose and scope, then usage condition, then input/ordering/error details and the alternative. Every sentence carries information; no filler or repetition.

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?

With annotations covering safety, a 100%-covered schema, an output schema, and no nesting, the description supplies exactly the remaining pieces an agent needs: trigger condition, ordering, error fallback and the sibling to use instead.

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%, with examples for state/slug/code, limit bounds and category enum already documented, so the 3 baseline applies. The description's note that state accepts name, slug or two-letter code largely restates the schema, adding little beyond the city-error behavior.

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 (List) plus resource (haunts) and the precise scope (a US state, or one city within it), explicitly contrasting with the point-distance search done by scaremap_find_haunts. An agent can distinguish it from all three siblings without opening 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 Guidelines5/5

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

Explicit trigger: 'Call this when the user names a state or city ... and has no coordinates', and an explicit alternative for the opposite case (scaremap_find_haunts for distance search). The category enum also points to scaremap_categories for the valid list.

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

scaremap_get_hauntGet one haunt with reviewsA
Read-onlyIdempotent
Inspect

Get the full record for one haunt: description, category, season, location, average ratings, and up to 20 of the newest visitor reviews (stars, scare, text, date). Call this after scaremap_find_haunts or scaremap_find_haunts_in_city when the user wants detail on a specific result. Pass the slug from those results, or the haunt id. Reviews are anonymous. A haunt with no reviews returns an empty list.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoHaunt UUID. Use instead of slug.
slugNoHaunt slug from other ScareMap tools, for example "hellscream-haunted-house".

Output Schema

ParametersJSON Schema
NameRequiredDescription
hauntYes
reviewsYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, and closed-world traits, so the bar is lower. The description still adds real behavioral context: reviews are capped at 20 newest, reviews are anonymous, and a haunt with no reviews returns an empty list rather than erroring. It does not mention failure behavior for a bad slug/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?

Four tight sentences: return contents first, then usage trigger, then input sourcing, then edge-case behavior. Nothing is redundant and the most decision-relevant information is front-loaded.

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?

An output schema exists, so return values need not be explained, yet the description still previews the payload and the 20-review cap. Combined with full annotation coverage and a fully described 2-param schema, an agent has everything needed to call this correctly.

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% and both parameters are documented in-schema, so the baseline is 3. The description only adds that either the slug or the haunt id may be passed and that the slug originates from sibling tool results, which is marginal value beyond 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?

States a specific verb (Get) and resource (one haunt) plus the exact fields returned: description, category, season, location, average ratings, and newest reviews. This clearly separates it from the sibling find/list tools, which return multiple haunts rather than a single full record.

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

Usage Guidelines5/5

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

Explicitly says to call it 'after scaremap_find_haunts or scaremap_find_haunts_in_city when the user wants detail on a specific result,' naming both alternatives and the condition that selects this tool. It also tells the agent where the required input comes from ('Pass the slug from those results').

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. 4 tool updates
    • First observedscaremap_categories
    • First observedscaremap_find_haunts
    • First observedscaremap_find_haunts_in_city
    • First observedscaremap_get_haunt

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources