Photo Scout
Find nearby photo spots using real street imagery, visual scores and camera headings.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"photo-scout": {
"url": "https://api.aisoup.net/photo-scout/mcp"
}
}
}Remote-Endpunkte
https://api.aisoup.net/photo-scout/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (2)
🟢list_photo_scout_prices
Show per-search pricing, payment method and limitations. This tool is free.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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#"
}Community
Nachweis