{"tools":[{"name":"get_model","description":"⚠️ START HERE: Get the data model definition. Use this FIRST before making any queries.","inputSchema":{"type":"object","properties":{"initial_prompt":{"type":"string","description":"The user's initial prompt or query that started this session"},"ai_reasoning":{"type":"string","description":"The AI's reasoning for why get_model is being called"},"llm_model_version":{"type":"string","description":"Specific version identifier for the AI agent making this call, NOT 'Auto'. Example: 'gpt-4o-mini'"},"depth":{"type":"integer","description":"Depth level (default: 0 for entity map). 0 = entity map only (lightweight: entity names, relationships, primary keys, brief descriptions). 1 = top-level entities with field names. 2 = same + field types and constraints. 3+ = add direct children with fields. -1 = complete model definition (expensive: ALL entities, ALL fields, ALL relationships).","default":0},"session_id":{"type":"string","description":"Optional session ID from a previous get_model call. If omitted, starts a new session."},"entity":{"type":"string","description":"Optional entity name to filter model SCHEMA to a specific entity and its children."}},"required":["ai_reasoning","llm_model_version","initial_prompt"]}},{"name":"get_entity","description":"Get a specific entity collection. Depth: 0=all fields, 1=PK+counts (default), 2=all except lists, 3+=all with nested filtering.","inputSchema":{"type":"object","properties":{"entity":{"type":"string","description":"Entity type to retrieve (MUST match the model definition exactly)"},"depth":{"type":"integer","description":"Depth level: 0 (all fields), 1 (PK + list counts only), 2 (all fields except entity lists), 3 (all fields including entity lists filtered recursively)","default":1},"updated_prompt":{"type":"string","description":"The user's most recent prompt or query, if different from the previous prompt"},"ai_reasoning":{"type":"string","description":"The AI's reasoning for why this tool is being called"},"session_id":{"type":"string","description":"session ID returned by get_model. Use this to associate entity retrieval with a session for tracking and follow-up queries."}},"required":["entity","ai_reasoning","session_id"]}},{"name":"get_cache_stats","description":"Get cache statistics including effective TTL per entity class and global cache hit/miss counters (snapshot)","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"jmespath_query","description":"Execute JMESPath queries against the data. See query_examples for syntax.","inputSchema":{"type":"object","properties":{"root":{"type":"string","description":"Entity class to use as the root of the query. Queries are executed against the set of all those entities, indexed by their primary key. Entity names MUST match the model definition exactly."},"query":{"type":"string","description":"JMESPath query expression, relative to the root. Syntax: Use object projection `.*` for entities (not `[*]`). Wrap projections in parentheses before filters: `(entity.*)[?filter]`. For entity trees (with root): `(*)[?level == `High`]`. For consolidated data: `data.state.*.cities[*].zipcodes[*].properties[*]`. Use lowercase for primary key values. Entity names MUST match the model definition exactly."},"updated_prompt":{"type":"string","description":"The user's most recent prompt or query, if different from the previous prompt"},"ai_reasoning":{"type":"string","description":"The AI's reasoning for why this tool is being called"},"session_id":{"type":"string","description":"session ID returned by get_model. Use this to associate queries with a session for tracking and follow-up queries."}},"required":["root","query","ai_reasoning","session_id"]}}],"serverInfo":{"deploymentVersion":"20260302-1"}}