{"id":9026,"name":"GeonicDB","description":"GeonicDB is a FIWARE Orion-compatible Context Broker. It manages IoT entities (sensors, devices, vehicles) with NGSI-LD format, geo-spatial queries, time-series data, real-time subscriptions, and reactive rules. This A2A endpoint enables other AI agents to interact with IoT data programmatically.","card_url":"https://geonicdb.geolonia.com/.well-known/agent-card.json","endpoint":"https://geonicdb.geolonia.com/a2a","protocol_version":"0.2.2","first_seen":"2026-10-10T07:50:10.063704+00:00","last_verified":"2026-10-10T15:15:00.733034+00:00","card":{"url":"https://geonicdb.geolonia.com/a2a","name":"GeonicDB","skills":[{"id":"entities","name":"Entity Management","tags":["iot","entities","ngsi-ld","geospatial"],"examples":["List all entities of type Sensor","Get entity urn:ngsi-ld:Sensor:001","Create a new Temperature sensor entity","Search entities near latitude 35.68, longitude 139.76"],"description":"CRUD operations on IoT entities, entity types, and attributes. Supports list, get, create, update, delete, and geo-spatial/attribute search. The query actions (list / search_by_location / search_by_attribute) accept typePattern, a GeonicDB extension evaluated as a verbatim regular expression and combined with type as an AND (#2156). Entities are returned in the NGSI-LD simplified (keyValues) representation; multi-attributes (several instances of the same attribute, distinguished by datasetId) are returned as {\"<attr>\": {\"dataset\": {\"@none\": <default instance value>, \"<datasetId>\": <value>}}} per ETSI GS CIM 009 clause 4.5.4, where \"@none\" appears only when a default instance exists. Distributed operations are opt-in (#2072): pass local=false on list / search_by_location / search_by_attribute to also query registered Context Sources; without it only local data is returned. `servicePath`: Deprecated / not supported (#1608): NGSI-LD has no Fiware-ServicePath concept, all data is stored under \"/\" (matching the HTTP NGSI-LD API). Any non-root value is rejected with an error. Use the entity \"scope\" attribute / \"scopeQ\" query for hierarchical organization instead."},{"id":"batch","name":"Batch Operations","tags":["batch","bulk","entities"],"examples":["Create 10 sensor entities in batch","Delete all entities of type OldSensor"],"description":"Bulk create, upsert, update, merge, delete, and query operations on multiple entities at once. The query action accepts local=false to opt in to querying registered Context Sources (#2072) and typePattern (#2156); purge rejects typePattern rather than silently ignoring it. `servicePath`: Deprecated / not supported (#1608): NGSI-LD has no Fiware-ServicePath concept, all data is stored under \"/\" (matching the HTTP NGSI-LD API). Any non-root value is rejected with an error. Use the entity \"scope\" attribute / \"scopeQ\" query for hierarchical organization instead."},{"id":"temporal","name":"Temporal Data","tags":["temporal","timeseries","history"],"examples":["Query temperature history for the last 24 hours","Get temporal data for entity urn:ngsi-ld:WeatherStation:001"],"description":"Time-series data management for entity attributes. Query historical values, create temporal entities, manage attribute instances. The get / query / list actions interpret the full set of temporal parameters (timerel, timeAt, endTimeAt, timeproperty, lastN, attrs, format, options, aggrMethods, aggrPeriodDuration) and query also accepts typePattern (#2156). timeproperty selects observedAt (default) / createdAt / modifiedAt / deletedAt per ETSI clause 4.11 (#2267). aggrPeriodDuration is optional (ETSI Table 5.2.21-1 cardinality 0..1): omitting it — or passing PT0S / P0D explicitly — aggregates the whole time range of the query as a single period, whose unspecified bounds are reported from the actual observedAt range of the matched data (#2109). get on a missing entity is a loud error, and a truncated history is reported in a \"warnings\" array. `servicePath`: Deprecated / not supported (#1608): NGSI-LD has no Fiware-ServicePath concept, all data is stored under \"/\" (matching the HTTP NGSI-LD API). Any non-root value is rejected with an error. Use the entity \"scope\" attribute / \"scopeQ\" query for hierarchical organization instead."},{"id":"config","name":"Configuration","tags":["config","rules","jsonld","data-models"],"examples":["List all reactive rules","Get available JSON-LD contexts"],"description":"Manage reactive rules, JSON-LD contexts, and the read-only Smart Data Models catalog. Accepted `resource` values: `rules`, `jsonld_contexts`, `data_models`. Unknown values are rejected. Note the deliberate asymmetry with the MCP config tool: tenant-defined custom data models (`custom_data_models`) are reachable only through MCP (POST /mcp) or the HTTP API (/custom-data-models), and the Smart Data Models catalog (`data_models`) is reachable only here. For `jsonld_contexts`, the `kind` filter takes `Cached` / `Hosted` / `ImplicitlyCreated` (ETSI GS CIM 009 clause 5.13.3.3; the lowercase forms are accepted for backward compatibility). Any other value is rejected rather than silently ignored."},{"id":"admin","name":"Administration","tags":["admin","users","policies"],"examples":["List all users in the current tenant","Show the XACML policies for this tenant"],"description":"User and XACML policy management. Accepted `resource` values: `users`, `policies`. Unknown values are rejected. Tenant administration is not exposed here — use the HTTP Admin API (/admin/tenants). Requires tenant_admin or super_admin role."}],"version":"0.21.0","provider":{"url":"https://github.com/geolonia/geonicdb","organization":"Geolonia Inc."},"security":[{"BearerAuth":[]},{"ApiKeyAuth":[]},{"OAuth2":["read:entities","write:entities"]},{"DPoPAuth":[]}],"description":"GeonicDB is a FIWARE Orion-compatible Context Broker. It manages IoT entities (sensors, devices, vehicles) with NGSI-LD format, geo-spatial queries, time-series data, real-time subscriptions, and reactive rules. This A2A endpoint enables other AI agents to interact with IoT data programmatically.","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":true},"protocolVersion":"0.2.2","securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"scopes":{"read:entities":"Read entities and their attributes","write:entities":"Create, update, and delete entities"},"tokenUrl":"/oauth/token"}}},"DPoPAuth":{"type":"http","scheme":"dpop","bearerFormat":"DPoP"},"ApiKeyAuth":{"in":"header","name":"X-Api-Key","type":"apiKey"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"]},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-10T15:15:00.733034+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Agent Tools Catalog","source_url":"https://agent-tools.cloud","last_check":{"checked_at":"2026-10-10T15:15:00.733034+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://geonicdb.geolonia.com/.well-known/agent-card.json"],"skills":[{"skill_id":"admin","name":"Administration","description":"User and XACML policy management. Accepted `resource` values: `users`, `policies`. Unknown values are rejected. Tenant administration is not exposed here — use the HTTP Admin API (/admin/tenants). Requires tenant_admin or super_admin role.","tags":["admin","users","policies"],"quality_warning":false},{"skill_id":"batch","name":"Batch Operations","description":"Bulk create, upsert, update, merge, delete, and query operations on multiple entities at once. The query action accepts local=false to opt in to querying registered Context Sources (#2072) and typePattern (#2156); purge rejects typePattern rather than silently ignoring it. `servicePath`: Deprecated / not supported (#1608): NGSI-LD has no Fiware-ServicePath concept, all data is stored under \"/\" (matching the HTTP NGSI-LD API). Any non-root value is rejected with an error. Use the entity \"scope\" attribute / \"scopeQ\" query for hierarchical organization instead.","tags":["batch","bulk","entities"],"quality_warning":false},{"skill_id":"config","name":"Configuration","description":"Manage reactive rules, JSON-LD contexts, and the read-only Smart Data Models catalog. Accepted `resource` values: `rules`, `jsonld_contexts`, `data_models`. Unknown values are rejected. Note the deliberate asymmetry with the MCP config tool: tenant-defined custom data models (`custom_data_models`) are reachable only through MCP (POST /mcp) or the HTTP API (/custom-data-models), and the Smart Data Models catalog (`data_models`) is reachable only here. For `jsonld_contexts`, the `kind` filter takes `Cached` / `Hosted` / `ImplicitlyCreated` (ETSI GS CIM 009 clause 5.13.3.3; the lowercase forms are accepted for backward compatibility). Any other value is rejected rather than silently ignored.","tags":["config","rules","jsonld","data-models"],"quality_warning":false},{"skill_id":"entities","name":"Entity Management","description":"CRUD operations on IoT entities, entity types, and attributes. Supports list, get, create, update, delete, and geo-spatial/attribute search. The query actions (list / search_by_location / search_by_attribute) accept typePattern, a GeonicDB extension evaluated as a verbatim regular expression and combined with type as an AND (#2156). Entities are returned in the NGSI-LD simplified (keyValues) representation; multi-attributes (several instances of the same attribute, distinguished by datasetId) are returned as {\"<attr>\": {\"dataset\": {\"@none\": <default instance value>, \"<datasetId>\": <value>}}} per ETSI GS CIM 009 clause 4.5.4, where \"@none\" appears only when a default instance exists. Distributed operations are opt-in (#2072): pass local=false on list / search_by_location / search_by_attribute to also query registered Context Sources; without it only local data is returned. `servicePath`: Deprecated / not supported (#1608): NGSI-LD has no Fiware-ServicePath concept, all data is stored under \"/\" (matching the HTTP NGSI-LD API). Any non-root value is rejected with an error. Use the entity \"scope\" attribute / \"scopeQ\" query for hierarchical organization instead.","tags":["iot","entities","ngsi-ld","geospatial"],"quality_warning":false},{"skill_id":"temporal","name":"Temporal Data","description":"Time-series data management for entity attributes. Query historical values, create temporal entities, manage attribute instances. The get / query / list actions interpret the full set of temporal parameters (timerel, timeAt, endTimeAt, timeproperty, lastN, attrs, format, options, aggrMethods, aggrPeriodDuration) and query also accepts typePattern (#2156). timeproperty selects observedAt (default) / createdAt / modifiedAt / deletedAt per ETSI clause 4.11 (#2267). aggrPeriodDuration is optional (ETSI Table 5.2.21-1 cardinality 0..1): omitting it — or passing PT0S / P0D explicitly — aggregates the whole time range of the query as a single period, whose unspecified bounds are reported from the actual observedAt range of the matched data (#2109). get on a missing entity is a loud error, and a truncated history is reported in a \"warnings\" array. `servicePath`: Deprecated / not supported (#1608): NGSI-LD has no Fiware-ServicePath concept, all data is stored under \"/\" (matching the HTTP NGSI-LD API). Any non-root value is rejected with an error. Use the entity \"scope\" attribute / \"scopeQ\" query for hierarchical organization instead.","tags":["temporal","timeseries","history"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":4,"passed":4},"recent_checks":[{"card_url":"https://geonicdb.geolonia.com/.well-known/agent-card.json","checked_at":"2026-10-10T15:15:00.733034+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://geonicdb.geolonia.com/.well-known/agent-card.json","checked_at":"2026-10-10T12:38:12.104013+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://geonicdb.geolonia.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:58:27.400347+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://geonicdb.geolonia.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:50:10.063704+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-10T15:15:00.733034+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-10T07:50:10.063704+00:00","state":"auth_required","http_status":403,"detail":"Endpoint requires authentication; A2A response not confirmed"},"events":[],"relationships":[],"verification":{"agent_card_url":"https://geonicdb.geolonia.com/.well-known/agent-card.json","last_successful_card_check":"2026-10-10T15:15:00.733034+00:00","latest_card_check":{"checked_at":"2026-10-10T15:15:00.733034+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-10T15:15:00.733034+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-10T15:15:00.733034+00:00","endpoint_tls_reachable":true,"protocol_check_state":"auth_required","protocol_checked_at":"2026-10-10T07:50:10.063704+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}