Atly
Server Details
Find places by what you want (work friendly, gluten free, great coffee), scored from real reviews.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- atlyai/atly-plugin
- GitHub Stars
- 0
TDQS
Scored across 7 tools
Each tool targets a distinct resource or action: account/quota (get_api_key), documentation (get_docs), single-place detail (get_place), and the three distinct list/search primitives (list_areas, list_categories, search_places) plus feedback. There is no meaningful overlap—search_places, list_areas and list_categories are clearly separated by scope (places vs. areas vs. categories).
All names follow a clean snake_case verb_noun pattern (get_api_key, get_docs, get_place, list_areas, list_categories, search_places, submit_feedback). Verbs are used consistently and predictably, with no mixed conventions.
Seven tools is well-scoped for a place-discovery API: one search core, two lookup lists, one detail fetch, plus docs, account info and feedback. No tool feels redundant or missing from the count perspective.
The surface covers the intent-discovery workflow well: docs, taxonomy, areas, ranked search with per-place detail, and a feedback loop. The main gap is the absence of a direct place-name/text lookup or pagination control, since search_places requires category ids and area/coordinates, which could force workarounds for simple 'find restaurant X' requests.
Available Tools
7 toolsget_api_keyShow my key and quotaARead-onlyInspect
Show my key, tier and remaining quota
Who am I and how much quota is left. Works without a key too (then it describes the anonymous allowance for your IP).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| label | No | |
| quota | No | |
| key_id | No | |
| call_id | No | |
| doc_notes | No | |
| email_verified | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely non-obvious behavior: the tool functions without authentication and falls back to describing an anonymous IP-based allowance, which the agent could not infer from the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary payload. The second sentence ('Who am I and how much quota is left') largely restates the first, so a small amount of redundancy costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-parameter read tool with an output schema, read-only annotations, and an explicit note about the unauthenticated case. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate and the baseline is 4. The description correctly implies no input is needed for the keyed path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Show') and the exact payload returned (key, tier, remaining quota), plus identity semantics. No sibling tool overlaps with this resource, so no differentiation burden is unmet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one meaningful usage condition — that it also works without a key and then reports the anonymous IP allowance — but offers no explicit when-to-call guidance relative to alternatives and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docsRead the Atly API guideARead-onlyInspect
Read the documentation
Returns the API guide as Markdown: what each operation is for, how to turn a user's request into category ids and a location, request and response shapes, how to read scores. Call this once per session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the return medium (Markdown) and a session-frequency constraint that governs how often it should be invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead line "Read the documentation" restates the title and is mildly redundant, but the following sentence is dense and front-loads the most decision-relevant facts (Markdown return, content coverage, call frequency). Nothing else is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return value and does so thoroughly, enumerating the guide's sections. Combined with the frequency instruction, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. There is no parameter surface for the description to clarify or compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (reads/returns the API guide) and enumerates what the guide contains: operation purposes, mapping user requests to category ids and location, request/response shapes, and score interpretation. It clearly differs in kind from operational siblings like search_places or list_categories, though it never explicitly names a sibling to contrast against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Call this once per session" is a concrete when-to-use directive that also implicitly excludes repeated calls, which is the main usage decision for a static guide. No alternative tool is named, but no sibling overlaps this function, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_placeGet place detailsARead-onlyInspect
Everything about one place
Full detail for a place id from search_places: profile, hours, all category scores, up to eight quotable
statements, good-to-know facts, gluten-free identity when known, and the canonical Atly URL to cite.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | |
| call_id | No | |
| doc_notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds limited behavioral context beyond that: a quota ('up to eight quotable statements') and a conditional ('gluten-free identity when known'), but says nothing about error behavior for an unknown id, permissions, or freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core verb and resource, then a denser enumeration of returned content. Every clause roughly earns its place, though the long field list reads more like output documentation than selection guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and an output schema present, the description need not enumerate returns yet does so anyway. Combined with the parameter count of one, this is sufficient for correct invocation; only failure modes for a bad id are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter ('id') with 0% schema description coverage, so the description must compensate. It does partially: it specifies the id is 'from search_places', telling the agent where valid ids originate, though it does not state format or constraints (min 3 / max 40 chars).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Everything about one place', 'Full detail for a place id') and implicitly contrasts with the sibling search_places by naming it as the source of the id. An agent can tell it apart from search_places 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: it takes an id produced by search_places, establishing the search-then-fetch workflow. It stops short of explicit when-not guidance or naming alternative retrieval paths, so it is clear rather than complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_areasFind areasARead-onlyInspect
List supported areas
Cities, neighborhoods and states Atly covers — densest in the United States, with pockets in Mexico, Israel and Thailand — each with an id you can pass to
search, a center, a bounding box when known, and how many places it holds. Filter with q (substring of
the name) and level (city, neighborhood, state). Results are ordered by place count.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Area name or common abbreviation, e.g. "san diego", "midtown", "nyc". Exact and prefix matches rank first. | |
| level | No | Restrict to one level. | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| areas | No | |
| total | No | |
| call_id | No | |
| doc_notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful context beyond them: result ordering by place count, that bounding boxes are only present 'when known', and that each area carries a place count. It does not discuss pagination or the response envelope, but with an output schema present that is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then layers scope, fields and filtering in one dense paragraph with little waste. The middle clause about geographic coverage is slightly long but still earns its place by telling the agent what data exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter listing tool with an output schema and full annotations, the description supplies the needed context: what areas are, what fields they carry, how to filter, and how results are ordered. Only the undocumented `limit` parameter and pagination behavior remain uncovered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with `q` and `level` documented in the schema and `limit` undocumented in both places. The description restates `q` as a substring of the name and `level` as the level filter, adding only marginal detail beyond the schema's own wording, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List supported areas') and immediately scopes it: cities, neighborhoods and states, with geographic coverage named. An agent can distinguish this catalog-listing tool from search_places without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context — filter with `q` and `level`, results ordered by place count — and connects this tool to a downstream one ('an `id` you can pass to search'). It never states when to prefer this over a sibling like list_categories or search_places, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesFind categoriesARead-onlyInspect
List intent categories
The intent taxonomy: cuisines, dishes, features ("Wifi", "Outdoor Seating"), vibes ("Cozy", "Lively"),
occasions ("First Date", "Group Dinner"), diets ("Gluten Free", "Keto") and more. Map the user's words to
category ids before searching. Filter with q, one concept per call — exact and prefix matches rank first, then substrings and keywords;
plurals, hyphens and small typos are tolerated — or fetch once without q and cache the full list.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Words to match against category names and keywords, e.g. "coffee", "dog friendly", "gluten-free". Ranked; tolerant of plurals and small typos. | |
| limit | No | Maximum categories to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | |
| call_id | No | |
| doc_notes | No | |
| categories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower, and the description still adds real behavior: ranking order (exact/prefix first, then substrings/keywords), tolerance of plurals, hyphens and typos, and the one-concept-per-call constraint with a caching recommendation. It stops short of describing response shape or result-size limits, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the opening clause, then the taxonomy, then the query guidance. The facet list with examples is somewhat long, but each example clarifies an otherwise ambiguous category family, so little of it is waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two optional parameters, full schema coverage, an output schema, and annotations covering safety, this description supplies everything an agent needs: what the resource is, how to query it, and when to cache instead. Return-value details are correctly delegated to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description genuinely adds semantics beyond it: how matches are ranked, what `q` tolerates, and the explicit rule to pass a single concept per call. It adds little about `limit` beyond what the schema says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line gives a specific verb and resource ("List intent categories"), and the taxonomy sentence makes the resource's boundaries concrete with named facets and examples. It implicitly separates itself from list_areas and search_places by describing a distinct domain, though it never names a sibling to route against explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use the tool ("Map the user's words to category ids before searching") and gives two distinct operating modes with a condition for each: filtered calls with one concept per `q`, or one unfiltered call cached locally. That is explicit when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_placesSearch placesARead-onlyInspect
Find places for an intent near a location
The core call. Give one or more category ids (from list_categories; all must match) and a location — either
an area_id from list_areas or coordinates with a radius — and get places ranked by Atly's score for those
categories, each with quotable reasons from real reviews, a link to cite, and freshness. Scores are 0–10 and
relative to the area; a place with no score is unmeasured, not bad. If no place matches every category, trailing
categories are dropped until something does (the first is never dropped), and dropped_categories says which.
Ranking considers the strongest 100 candidates by Atly's base score. Scores are relative to other places in the same country.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| limit | No | ||
| area_id | No | An id from `list_areas`; the search covers that area's viewport. Give this or lat/lon, not both. | |
| radius_km | No | Used with lat/lon. | |
| categories | Yes | Category ids, most important first. Every result matches all of them (after any relaxation). |
Output Schema
| Name | Required | Description |
|---|---|---|
| area | No | The resolved search geometry — an area (id, name, level, center, bbox) or a circle (center, radius_km). |
| places | No | |
| call_id | No | |
| doc_notes | No | |
| total_matched | No | How many places match in this area, capped ("1000+"). Absent when counting timed out. |
| dropped_categories | No | Category ids dropped to avoid an empty result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/destructive/openWorld annotations by disclosing non-obvious behavior: category relaxation with a never-dropped first category, the dropped_categories field, the 0–10 area-relative score scale, 'unmeasured not bad' semantics, and the 100-candidate ranking window. This is exactly the kind of context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in one line and every subsequent sentence adds usable detail. The closing 'relative to other places in the same country' slightly tensions with the earlier 'relative to the area,' a small redundancy that costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return values, yet it still sketches them (quotable reasons, citable link, freshness). Combined with edge-case coverage (relaxation, dropped_categories, score scale), an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, so the description carries real weight: it explains that categories must ALL match, that order is by importance, and that area_id vs lat/lon+radius are mutually exclusive location modes. The limit parameter remains undocumented in both description and schema, keeping it short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find places for an intent near a location') and explicitly frames itself as 'The core call,' which cleanly separates it from the single-place sibling get_place. An agent can identify what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent to the correct input sources — category ids 'from list_categories' and location 'either an area_id from list_areas or coordinates with a radius' — naming siblings explicitly. It does not, however, state when NOT to use this versus get_place or list_* for browsing, so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackSend feedbackAInspect
Tell us how a call went
Reference the call_id of any earlier response and say whether it helped, and optionally why, in a sentence
about the result — what was right, missing or wrong. Do not include the user's words, the conversation, or
anything about the person. One row per caller per call; lightly rate-limited.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | About the result only — never the conversation or the user. | |
| call_id | Yes | ||
| outcome | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| call_id | No | |
| recorded | No | |
| doc_notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already specify readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds two genuine traits beyond them: a uniqueness constraint (one row per caller per call) and rate limiting. It does not, however, say what happens on a duplicate submission or on a call_id that doesn't exist, which matters for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then constraints, with no filler. The privacy sentence partially duplicates the `notes` schema description, and the paragraph break mid-thought ("...whether it helped, and optionally why") reads awkwardly, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description covers the input contract (call_id sourcing, outcome meaning, notes content rules) and the two operational limits. The only real gap is failure behavior — duplicate rows and invalid call_id — which the description leaves unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (just `notes`), so the description has to carry the rest — and it does: `call_id` is defined as the id "of any earlier response," `outcome` as whether it "helped... what was right, missing or wrong." It also adds a content restriction the schema only partially encodes. It never states the enum values, but the enum is self-explanatory in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action — send feedback about a prior response, keyed by `call_id`, with a helpful/not-helpful verdict. The word "call" is momentarily ambiguous (tool call vs. phone call) until the second sentence clarifies "any earlier response." Siblings are all unrelated discovery tools, so no differentiation burden exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes when to use it: after an earlier response you have a `call_id` for. It also gives the operational constraint an agent needs — "One row per caller per call; lightly rate-limited" — which implies you should not spam submissions. No alternatives or explicit exclusions are named, but none meaningfully exist among the siblings.
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.
7 tool updates
- First observed
get_api_key - First observed
get_docs - First observed
get_place - First observed
list_areas - First observed
list_categories - First observed
search_places - First observed
submit_feedback
Related MCP Connectors
Editorial guide to restaurants and bars — hand-picked venues with opinions, not a places database
Discover 356K+ restaurants in 20 countries: search, reviews, cultural context, time-based offers.
Plan your perfect day out anywhere: itineraries and neighbourhood guides, tuned to mood and weather.
Search and discover local businesses. 30+ categories with verified contact info, hours, and reviews.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables discovery and scoring of independent local businesses by inverting algorithmic rankings that favor chains, using Google Places API with an opinionated independence-scoring engine.5Apache 2.0
- FlicenseNot gradedqualityDmaintenanceTurns open places data into AI-assisted local market intelligence, enabling search of 4.4 million UK places by category, location, and proximity, and saving promising results to a prospecting pipeline.-
- AlicenseNot gradedqualityDmaintenanceSearch Apple Maps for businesses with Apple ratings and aggregated Yelp and TripAdvisor reviews. Useful for lead generation, restaurant research, and competitive analysis.MIT

PosDO MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceDiscovers over 356,000 restaurants across 20 countries, providing search, reviews, time-based offers, and cultural context via the Model Context Protocol.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.