Atly

Find places by what you want (work friendly, gluten free, great coffee), scored from real reviews.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
70%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,704token 数(工具定义)
~4.9 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.89%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "places": {
      "url": "https://agentic-api.atly.com/mcp"
    }
  }
}

远程端点

https://agentic-api.atly.com/mcpstreamable-http

它能做什么

工具清单

工具(7)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢get_api_key

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

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "key_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "label": {
      "type": [
        "string",
        "null"
      ]
    },
    "tier": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "anonymous",
            "unverified",
            "verified"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "email_verified": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "quota": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "limit": {
              "anyOf": [
                {
                  "type": "integer",
                  "description": "Calls allowed per window."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Calls allowed per window."
            },
            "remaining": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "window": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "hour",
                    "day"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "resets_at": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "doc_notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "call_id": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_places(categories, area_id, lat, lon, radius_km, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 5,
      "description": "Category ids, most important first. Every result matches all of them (after any relaxation)."
    },
    "area_id": {
      "type": "string",
      "description": "An id from `list_areas`; the search covers that area's viewport. Give this or lat/lon, not both."
    },
    "lat": {
      "type": "number"
    },
    "lon": {
      "type": "number"
    },
    "radius_km": {
      "type": "number",
      "description": "Used with lat/lon."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "categories"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "places": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "address": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "lat": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "lon": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "distance_km": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "From the search center."
              },
              "score": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Atly score 0–10 — for the requested categories in search"
              },
              "category_scores": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "category_id": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "score": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "reviews": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "description": "Reviews that mention this category."
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Reviews that mention this category."
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "reasons": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "kind": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "sentiment": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "positive",
                                "neutral",
                                "negative"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "description": "Short first-person statements from real reviews, most useful first. Quote them."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Short first-person statements from real reviews, most useful first. Quote them."
              },
              "blurb": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "One-line editorial summary."
              },
              "place_type": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "review_count": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "google_rating": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "price": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "gluten_free": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "safety": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "100% dedicated gluten-free",
                              "celiac friendly (low risk of cross-contamination)",
                              "accommodating (some risk of cross-contamination)",
                              "discuss cross-contamination with staff"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "dedicated_kitchen": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "trained_staff": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "dedicated_fryer": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "menu": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "verified_by_atly": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      }
                    },
                    "additionalProperties": false,
                    "description": "Present only for places with a gluten-free identity."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Present only for places with a gluten-free identity."
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Canonical Atly page. Link it when you cite."
              },
              "last_updated": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "total_matched": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "How many places match in this area, capped (\"1000+\"). Absent when counting timed out."
        },
        {
          "type": "null"
        }
      ],
      "description": "How many places match in this area, capped (\"1000+\"). Absent when counting timed out."
    },
    "dropped_categories": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Category ids dropped to avoid an empty result."
        },
        {
          "type": "null"
        }
      ],
      "description": "Category ids dropped to avoid an empty result."
    },
    "area": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": true,
          "description": "The resolved search geometry — an area (id, name, level, center, bbox) or a circle (center, radius_km)."
        },
        {
          "type": "null"
        }
      ],
      "description": "The resolved search geometry — an area (id, name, level, center, bbox) or a circle (center, radius_km)."
    },
    "doc_notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "call_id": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_place(id)

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.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "place": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": [
                "string",
                "null"
              ]
            },
            "name": {
              "type": [
                "string",
                "null"
              ]
            },
            "address": {
              "type": [
                "string",
                "null"
              ]
            },
            "lat": {
              "type": [
                "number",
                "null"
              ]
            },
            "lon": {
              "type": [
                "number",
                "null"
              ]
            },
            "distance_km": {
              "type": [
                "number",
                "null"
              ],
              "description": "From the search center."
            },
            "score": {
              "type": [
                "number",
                "null"
              ],
              "description": "Atly score 0–10 — for the requested categories in search"
            },
            "category_scores": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "category_id": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "score": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "reviews": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "description": "Reviews that mention this category."
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Reviews that mention this category."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "null"
                }
              ]
            },
            "reasons": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "text": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "kind": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "sentiment": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "positive",
                              "neutral",
                              "negative"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  },
                  "description": "Short first-person statements from real reviews, most useful first. Quote them."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Short first-person statements from real reviews, most useful first. Quote them."
            },
            "blurb": {
              "type": [
                "string",
                "null"
              ],
              "description": "One-line editorial summary."
            },
            "place_type": {
              "type": [
                "string",
                "null"
              ]
            },
            "review_count": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "google_rating": {
              "type": [
                "number",
                "null"
              ]
            },
            "price": {
              "type": [
                "string",
                "null"
              ]
            },
            "gluten_free": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "safety": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "100% dedicated gluten-free",
                            "celiac friendly (low risk of cross-contamination)",
                            "accommodating (some risk of cross-contamination)",
                            "discuss cross-contamination with staff"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "dedicated_kitchen": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "trained_staff": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "dedicated_fryer": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "menu": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "verified_by_atly": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "description": "Present only for places with a gluten-free identity."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Present only for places with a gluten-free identity."
            },
            "url": {
              "type": [
                "string",
                "null"
              ],
              "description": "Canonical Atly page. Link it when you cite."
            },
            "last_updated": {
              "type": [
                "string",
                "null"
              ]
            },
            "phone": {
              "type": [
                "string",
                "null"
              ]
            },
            "website": {
              "type": [
                "string",
                "null"
              ]
            },
            "menu_url": {
              "type": [
                "string",
                "null"
              ]
            },
            "reservation_url": {
              "type": [
                "string",
                "null"
              ]
            },
            "hours": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                  },
                  "description": "Weekly opening periods as reported by Google, when known."
                },
                {
                  "type": "null"
                }
              ],
              "description": "Weekly opening periods as reported by Google, when known."
            },
            "timezone": {
              "type": [
                "string",
                "null"
              ]
            },
            "good_to_know": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "null"
                }
              ]
            },
            "business_status": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "doc_notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "call_id": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡submit_feedback(call_id, outcome, notes)

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.

输入模式

{
  "type": "object",
  "properties": {
    "call_id": {
      "type": "string",
      "minLength": 36,
      "maxLength": 36
    },
    "outcome": {
      "type": "string",
      "enum": [
        "helpful",
        "partly_helpful",
        "not_helpful",
        "wrong"
      ]
    },
    "notes": {
      "type": "string",
      "maxLength": 500,
      "description": "About the result only — never the conversation or the user."
    }
  },
  "required": [
    "call_id",
    "outcome"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "recorded": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "doc_notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "call_id": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_docs

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.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_categories(q, limit)

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.

输入模式

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 60,
      "description": "Words to match against category names and keywords, e.g. \"coffee\", \"dog friendly\", \"gluten-free\". Ranked; tolerant of plurals and small typos."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2000,
      "description": "Maximum categories to return."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "categories": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "emoji": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "match": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "How the query matched this category — exact"
              }
            },
            "additionalProperties": false
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "doc_notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "call_id": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_areas(q, level, limit)

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.

输入模式

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 80,
      "description": "Area name or common abbreviation, e.g. \"san diego\", \"midtown\", \"nyc\". Exact and prefix matches rank first."
    },
    "level": {
      "type": "string",
      "enum": [
        "city",
        "neighborhood",
        "state"
      ],
      "description": "Restrict to one level."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "areas": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "level": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "region": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "State for US cities and neighborhoods; the equivalent district or province elsewhere."
              },
              "parent": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "City for neighborhoods."
              },
              "country": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Country the area is in. Coverage is densest in the United States"
              },
              "place_count": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bbox": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "description": "[west, south, east, north]"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "[west, south, east, north]"
              },
              "center": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "description": "[lon, lat]"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "[lon, lat]"
              }
            },
            "additionalProperties": false
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "doc_notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "call_id": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本7 个工具