Skip to main content
Glama
appwrite

Appwrite MCP Server

Official
by appwrite

tables_db_create_rows

Add new data entries to an existing Appwrite database table by specifying database ID, table ID, and row data in JSON format.

Instructions

Create new Rows. Before using this route, you should create a new table resource using either a server integration API or directly from your database console.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
database_idYesDatabase ID.
table_idYesTable ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable). Make sure to define columns before creating rows.
rowsYesArray of rows data as JSON objects.
transaction_idNoTransaction ID for staging the operation.

Implementation Reference

  • The generic tool handler that executes any registered tool, including 'tables_db_create_rows'. It retrieves the bound method from the TablesDB instance's 'create_rows' method and invokes it with the provided arguments.
    @server.call_tool() async def handle_call_tool( name: str, arguments: dict | None ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: try: tool_info = tools_manager.get_tool(name) if not tool_info: raise McpError(f"Tool {name} not found") bound_method = tool_info["function"] result = bound_method(**(arguments or {})) if hasattr(result, 'to_dict'): result_dict = result.to_dict() return [types.TextContent(type="text", text=str(result_dict))] return [types.TextContent(type="text", text=str(result))] except AppwriteException as e: return [types.TextContent(type="text", text=f"Appwrite Error: {str(e)}")] except Exception as e: return [types.TextContent(type="text", text=f"Error: {str(e)}")]
  • Registers the TablesDB service with name 'tables_db', triggering dynamic tool registration for all public methods prefixed with 'tables_db_', including 'tables_db_create_rows'.
    if args.tables_db: tools_manager.register_service(Service(TablesDB(client), "tables_db"))
  • Default registration of the TablesDB service as 'tables_db' if no other services are specified explicitly.
    if not any([args.databases, args.tables_db, args.users, args.teams, args.storage, args.functions, args.messaging, args.locale, args.avatars, args.sites]): tools_manager.register_service(Service(TablesDB(client), "tables_db"))
  • Dynamically generates the tool definition for 'tables_db_create_rows', including constructing the name 'tables_db_create_rows' from service_name + method_name and building JSON schema from type hints and docstrings.
    # Get the overridden name if it exists tool_name = self._method_name_overrides.get(name, f"{self.service_name}_{name}") docstring = parse(original_func.__doc__) signature = inspect.signature(original_func) type_hints = get_type_hints(original_func) properties = {} required = [] for param_name, param in signature.parameters.items(): if param_name == 'self': continue param_type = type_hints.get(param_name, str) properties[param_name] = self.python_type_to_json_schema(param_type) properties[param_name]["description"] = f"Parameter '{param_name}'" for doc_param in docstring.params: if doc_param.arg_name == param_name: properties[param_name]["description"] = doc_param.description if param.default is param.empty: required.append(param_name) tool_definition = Tool( name=tool_name, description=f"{docstring.short_description or "No description available"}", inputSchema={ "type": "object", "properties": properties, "required": required } )
  • Imports the TablesDB class from Appwrite SDK, whose 'create_rows' method becomes the core handler logic for the tool 'tables_db_create_rows'.
    from appwrite.services.tables_db import TablesDB

Other Tools

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/appwrite/mcp-for-api'

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