Skip to main content
Glama
AgentWong

IAC Memory MCP Server

by AgentWong

update_entity

Modify existing Infrastructure-as-Code entities by updating their properties and adding new observations to maintain accurate IaC documentation.

Instructions

Update an existing entity's properties and add new observations

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesEntity ID
nameNoNew name
typeNoNew type
observationNoNew observation

Implementation Reference

  • MCP tool handler for update_entity: validates, logs, calls execute_update_entity, handles errors.
    async def handle_update_entity(db: Any, arguments: Dict[str, Any], operation_id: str) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: """Handle update_entity tool.""" try: logger.info( "Updating entity", extra={ "entity_id": arguments.get("entity_id"), "operation_id": operation_id, }, ) # Execute update return execute_update_entity(db, arguments) except Exception as e: error_msg = f"Failed to update entity: {str(e)}" logger.error(error_msg, extra={"operation_id": operation_id}) raise McpError( types.ErrorData( code=types.INTERNAL_ERROR, message=error_msg, data={ "tool": "update_entity", "operation_id": operation_id, }, ) )
  • Tool registration mapping 'update_entity' to its handler function.
    entity_tool_handlers = { "create_entity": handle_create_entity, "update_entity": handle_update_entity, "delete_entity": handle_delete_entity, "view_relationships": handle_view_relationships, }
  • JSON schema defining input parameters for the update_entity tool.
    "update_entity": { "type": "object", "description": "Update an existing entity's properties and add new observations", "required": ["id"], "properties": { "id": {"type": "string", "description": "Entity ID"}, "name": {"type": "string", "description": "New name"}, "type": {"type": "string", "description": "New type"}, "observation": {"type": "string", "description": "New observation"}, }, },
  • Core execution logic: prepares updates, calls low-level update_entity, adds observation, returns result.
    def execute_update_entity( db: DatabaseManager, arguments: Dict[str, Any] ) -> List[TextContent]: """Execute update entity operation.""" logger.info("Updating entity", extra={"args": arguments}) updates = {k: v for k, v in arguments.items() if k != "id"} success = update_entity(db, arguments["id"], updates) if not success: raise DatabaseError(f"Entity not found: {arguments['id']}") # Add observation if provided if "observation" in arguments: with db.get_connection() as conn: conn.execute( "INSERT INTO observations (entity_id, content) VALUES (?, ?)", (arguments["id"], arguments["observation"]), ) return [TextContent(type="text", text=f"Updated entity {arguments['id']}")]
  • Low-level database update function for entity properties.
    def update_entity(db: DatabaseManager, entity_id: str, updates: Dict) -> bool: """Update an existing entity.""" set_clause = ", ".join(f"{k} = ?" for k in updates.keys()) values = tuple(updates.values()) + (entity_id,) query = f"UPDATE entities SET {set_clause} WHERE id = ?" try: with db.get_connection() as conn: cursor = conn.execute(query, values) return cursor.rowcount > 0 except sqlite3.Error as e: raise DatabaseError(f"Update failed: {str(e)}")

Latest Blog Posts

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/AgentWong/iac-memory-mcp-server'

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