Skip to main content
Glama

STAC MCP Server

by BnJam
get_item.py2.12 kB
"""Tool to get a STAC Item by collection ID and item ID.""" from typing import Any from mcp.types import TextContent from stac_mcp.tools.client import STACClient BBOX_MIN_COORDS = 4 def handle_get_item( client: STACClient, arguments: dict[str, Any], ) -> list[TextContent] | dict[str, Any]: collection_id = arguments["collection_id"] item_id = arguments["item_id"] item = client.get_item(collection_id, item_id) if item is None: return {"type": "item", "item": None} if arguments.get("output_format") == "json": return {"type": "item", "item": item} item_id_value = item.get("id", item_id) result_text = f"**Item: {item_id_value}**\n\n" collection_value = item.get("collection", collection_id) result_text += f"Collection: `{collection_value}`\n" dt_value = item.get("datetime") if dt_value: result_text += f"Date: {dt_value}\n" bbox = item.get("bbox") if isinstance(bbox, list | tuple) and len(bbox) >= BBOX_MIN_COORDS: result_text += ( f"BBox: [{bbox[0]:.2f}, {bbox[1]:.2f}, {bbox[2]:.2f}, {bbox[3]:.2f}]\n" ) result_text += "\n**Properties:**\n" properties = item.get("properties") or {} for key, value in properties.items(): if isinstance(value, str | int | float | bool): result_text += f" {key}: {value}\n" assets = item.get("assets") or {} asset_count = len(assets) if hasattr(assets, "__len__") else 0 result_text += f"\n**Assets ({asset_count}):**\n" asset_entries = assets.items() if isinstance(assets, dict) else [] for asset_key, asset in asset_entries: title = asset.get("title", asset_key) if isinstance(asset, dict) else asset_key result_text += f" - **{asset_key}**: {title}\n" asset_type = ( asset.get("type", "unknown") if isinstance(asset, dict) else "unknown" ) result_text += f" Type: {asset_type}\n" if isinstance(asset, dict) and "href" in asset: result_text += f" URL: {asset['href']}\n" return [TextContent(type="text", text=result_text)]

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BnJam/stac-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server