Photo Scout
Find nearby photo spots using real street imagery, visual scores and camera headings.
사용해야 할까요
품질 및 안전성
B
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
~1,880토큰 (도구 정의)
~10.7 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.47%)
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"photo-scout": {
"url": "https://api.aisoup.net/photo-scout/mcp"
}
}
}원격 엔드포인트
https://api.aisoup.net/photo-scout/mcpstreamable-http할 수 있는 일
도구 목록
도구 (2)
🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_photo_scout_prices
Show per-search pricing, payment method and limitations. This tool is free.
입력 스키마
{
"type": "object",
"properties": {}
}출력 스키마
{
"type": "object",
"properties": {
"priceUsd": {
"type": "string"
},
"network": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"priceUsd",
"network",
"scope"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢discover_photo_spots(route, requirements, searchProgram, searchBranches, query, ...)
Find POIs nearby or along a walking/driving route, compare available images, and return ranked photo spots with scores, camera headings, reasons and source links. Costs $2.00 USDC on Base per call.
입력 스키마
{
"type": "object",
"properties": {
"route": {
"anyOf": [
{
"type": "object",
"properties": {
"origin": {
"anyOf": [
{
"type": "object",
"properties": {
"query": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"lat": {
"anyOf": [
{
"type": "number",
"minimum": -85,
"maximum": 85
},
{
"type": "null"
}
]
},
"lon": {
"anyOf": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "null"
}
]
},
"label": {
"anyOf": [
{
"type": "string",
"maxLength": 350
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"destination": {
"$ref": "#/properties/route/anyOf/0/properties/origin/anyOf/0"
},
"travelMode": {
"type": "string",
"enum": [
"walk",
"drive"
]
},
"corridorMeters": {
"type": "integer",
"minimum": 100,
"maximum": 2000
}
},
"required": [
"destination"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Optional real road route. Default walking, 300 m corridor; up to 200 km. Origin omitted uses lat/lon. Destination accepts address or coordinates. Up to 50 photographic locations along the route."
},
"requirements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"expression": {
"type": "string",
"minLength": 1,
"maxLength": 400
},
"strength": {
"type": "string",
"enum": [
"required",
"preferred",
"forbidden"
]
},
"route": {
"type": "string",
"enum": [
"places",
"geography",
"features",
"visual"
]
},
"stepIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8
}
},
"required": [
"expression",
"strength",
"route",
"stepIds"
],
"additionalProperties": false
},
"maxItems": 16,
"description": "Condition ledger for compiled programs: required, preferred or forbidden; retrieval step IDs scope conditions to each logical branch."
},
"searchProgram": {
"anyOf": [
{
"type": "object",
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,39}$"
},
"tool": {
"type": "string",
"enum": [
"search_places",
"search_geography",
"search_features",
"sample_geography",
"feature_points",
"filter_geography",
"filter_features",
"union",
"intersection",
"area_imagery",
"point_imagery",
"collect_images",
"score_images",
"rank_results"
]
},
"inputs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 6
},
"queries": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 4
},
"geographicKinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"lake",
"sea",
"river",
"peak",
"forest",
"waterside"
]
},
"maxItems": 6
},
"osmFeatures": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"kind": {
"type": "string",
"enum": [
"tagged",
"intersection"
]
},
"filters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[A-Za-z0-9_:.-]+$"
},
"value": {
"anyOf": [
{
"type": "string",
"maxLength": 160
},
{
"type": "null"
}
]
},
"required": {
"type": "boolean"
}
},
"required": [
"key"
],
"additionalProperties": false
},
"maxItems": 6
},
"numericFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[A-Za-z0-9_:.-]+$"
},
"minimum": {
"type": [
"number",
"null"
]
},
"maximum": {
"type": [
"number",
"null"
]
}
},
"required": [
"key"
],
"additionalProperties": false
},
"maxItems": 4
},
"proximityMeters": {
"type": "integer",
"minimum": 0,
"maximum": 500
}
},
"required": [
"label"
],
"additionalProperties": false
},
"maxItems": 6
},
"combination": {
"type": "string",
"enum": [
"all",
"any"
]
},
"exclude": {
"type": "boolean"
},
"discoveryHints": {
"type": "boolean"
},
"weights": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"maxItems": 6
},
"visualIntent": {
"type": "string",
"maxLength": 1000
}
},
"required": [
"id",
"tool"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 24
},
"output": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"steps",
"output"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Validated data-flow program over search/spatial/set, collect_images, score_images and rank_results tools. Leave all other target/spatial fields empty; global center/radius/styles are shared. Up to 24 steps and 8 source queries."
},
"searchBranches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"poiQueries": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 4
},
"geographicKinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"lake",
"sea",
"river",
"peak",
"forest",
"waterside"
]
},
"maxItems": 6
},
"geographicCombination": {
"type": "string",
"enum": [
"all",
"any"
]
},
"osmFeatures": {
"type": "array",
"items": {
"$ref": "#/properties/searchProgram/anyOf/0/properties/steps/items/properties/osmFeatures/items"
},
"maxItems": 6
},
"featureCombination": {
"type": "string",
"enum": [
"all",
"any"
]
},
"visualIntent": {
"type": "string",
"maxLength": 1000
}
},
"additionalProperties": false
},
"maxItems": 6,
"description": "OR across independently constrained target groups; AND between target, geography and features inside a group. When set, leave top-level poiQueries/geographicKinds/osmFeatures empty."
},
"query": {
"type": "string",
"maxLength": 1000,
"description": "Natural-language request. Explicit text overrides conflicting structured parameters."
},
"poiQueries": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 4,
"description": "Arbitrary POI categories or business names, e.g. coffee shops."
},
"osmFeatures": {
"type": "array",
"items": {
"$ref": "#/properties/searchProgram/anyOf/0/properties/steps/items/properties/osmFeatures/items"
},
"maxItems": 6,
"description": "OSM physical features and attributes; combined using featureCombination. Tagged features use exact/existence filters; intersections use road topology."
},
"geographicCombination": {
"type": "string",
"enum": [
"all",
"any"
],
"description": "AND/all or OR/any across geographic requirements; default all."
},
"featureCombination": {
"type": "string",
"enum": [
"all",
"any"
],
"description": "AND/all or OR/any across OSM feature requirements; default all."
},
"geographicKinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"lake",
"sea",
"river",
"peak",
"forest",
"waterside"
]
},
"maxItems": 6,
"description": "Spatial requirements; combination is controlled by geographicCombination."
},
"scoringIntent": {
"type": "string",
"maxLength": 1000,
"description": "Visual subject, style and requirements for matching and scoring."
},
"lat": {
"type": "number",
"minimum": -85,
"maximum": 85,
"description": "Latitude of the search center."
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude of the search center."
},
"radius": {
"type": "integer",
"minimum": 100,
"maximum": 20000,
"description": "Search radius in meters; default 1000."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Deprecated compatibility field; ignored. All verified matching places are returned."
},
"photoStyles": {
"type": "array",
"items": {
"type": "string",
"enum": [
"nature",
"urban",
"vintage",
"iconic",
"artistic",
"waterside",
"minimal",
"adventure"
]
},
"minItems": 1,
"maxItems": 8,
"description": "Optional desired photo moods."
},
"preferences": {
"type": "string",
"maxLength": 500,
"description": "Additional photography preferences."
}
},
"required": [
"lat",
"lon"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거
최근 관측
검증됨버전이 기록되지 않음도구 2개