system: 
You are an expert in composing functions. You are given a question and a set of possible functions.
Based on the question, you will need to make one or more function/tool calls to achieve the purpose.
If none of the function can be used, point it out. If the given question lacks the parameters required by the function,
also point it out. You should only return the function call in tools call sections.

If you decide to invoke any of the function(s), you MUST put it in the format of [func_name1(params_name1=params_value1, params_name2=params_value2...), func_name2(params)]

You SHOULD NOT include any other text in the response.

Here is a list of functions in JSON format that you can invoke.

[{'name': 'dartfx_help', 'description': 'Provides assistance to the user on a specific topic. It explains the next steps and offers a list of suggestions for the user to consider. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'description': "The subject, topic, keywords, or action to help the user with. For example, 'password reset' or 'booking a flight'."}, 'include_examples': {'type': 'boolean', 'description': 'Determines whether to include examples in the help message. When set to true, the response includes practical examples.', 'default': False}, 'language': {'type': 'string', 'description': 'The language in which the help information should be provided.', 'enum': ['English', 'Spanish', 'French', 'German', 'Chinese'], 'default': 'English'}}}}, {'name': 'add_mtnards_server', 'description': 'Registers a new MTNA Rich Data Services (RDS) server with the specified nickname and host within the environment, using the provided API key for authentication. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['host', 'api_key'], 'properties': {'nickname': {'type': 'string', 'description': 'A friendly name to identify the RDS server, allowing for easier reference.', 'default': 'rds1'}, 'host': {'type': 'string', 'description': 'The fully qualified domain name or IP address of the RDS server.'}, 'api_key': {'type': 'string', 'description': 'The unique API key required to authenticate with the RDS server. This key should be kept confidential.'}}}}, {'name': 'add_postgres_server', 'description': 'Registers a new PostgreSQL server within the environment by providing its connection details. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['host', 'port', 'database', 'username', 'password'], 'properties': {'nickname': {'type': 'string', 'description': 'A unique alias for the server that will be used for identification within the environment.', 'default': 'postgres1'}, 'host': {'type': 'string', 'description': 'The hostname or IP address of the PostgreSQL server.'}, 'port': {'type': 'integer', 'description': 'The port number on which the PostgreSQL server is listening. Typically, PostgreSQL uses port 5432.'}, 'database': {'type': 'string', 'description': 'The name of the default database to connect to on the PostgreSQL server.'}, 'username': {'type': 'string', 'description': 'The username required for authentication with the PostgreSQL server.'}, 'password': {'type': 'string', 'description': 'The password associated with the username for authentication with the PostgreSQL server.'}}}}, {'name': 'connect_to_server', 'description': 'Establishes a connection to a specified server or tests an existing connection. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['nickname'], 'properties': {'nickname': {'type': 'string', 'description': 'The unique identifier or friendly name used to refer to the target server.'}, 'timeout': {'type': 'integer', 'description': 'The maximum amount of time in seconds to wait for the connection attempt before timing out.', 'default': 30}, 'use_ssl': {'type': 'boolean', 'description': 'Determines whether to use SSL encryption for the connection.', 'default': True}}}}, {'name': 'rename_server', 'description': 'Renames a server by updating its identifier from the current value to a new value. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['_from', 'to'], 'properties': {'_from': {'type': 'string', 'description': 'The current server identifier, such as a name or nickname, that uniquely identifies the server to be renamed.'}, 'to': {'type': 'string', 'description': 'The new server identifier, such as a name or nickname, that the server will be renamed to.'}}}}, {'name': 'list_servers', 'description': 'Retrieve a list of all the servers within the specified environment, optionally filtering by server type. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'properties': {'server_type': {'type': 'string', 'description': 'The type of servers to be listed. If not specified, all server types are included.', 'enum': ['all', 'graphql', 'mtna', 'openapi', 'postgres', 'rds', 'sql'], 'default': 'all'}}, 'required': []}}, {'name': 'list_files', 'description': "List the files of a specified type in the directory of the current project. If 'include_subdirectories' is set to true, files in subdirectories will also be included. Note that the provided function is in Python 3 syntax.", 'parameters': {'type': 'dict', 'required': ['file_type'], 'properties': {'file_type': {'type': 'string', 'description': "The type of files to list, based on file extension. Possible extensions include 'py' for Python files, 'txt' for text files, 'md' for Markdown files, and 'json' for JSON files.", 'enum': ['py', 'txt', 'md', 'json']}, 'include_subdirectories': {'type': 'boolean', 'description': 'Whether to include files from subdirectories.', 'default': False}}}}, {'name': 'open_project', 'description': 'Initializes a new Data Artifex project or opens an existing one in the specified directory. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': 'The file system path to the directory where the project will be created or where the existing project is located. The path should be absolute or relative to the current working directory.'}, 'create_new': {'type': 'boolean', 'description': 'A flag indicating whether to create a new project if one does not exist at the given path.', 'default': False}, 'access_mode': {'type': 'string', 'description': 'The mode of access for the project.', 'enum': ['readonly', 'readwrite'], 'default': 'readwrite'}}}}, {'name': 'close_project', 'description': 'Close the current data artifex project and archive its contents. Note that the provided function is in Python 3 syntax.', 'parameters': {'type': 'dict', 'properties': {'project_id': {'type': 'string', 'description': 'Unique identifier of the project to be closed.'}, 'archive': {'type': 'boolean', 'description': 'Flag to determine whether the project should be archived.', 'default': True}, 'archive_format': {'type': 'string', 'description': 'The file format to be used for archiving project files.', 'enum': ['zip', 'tar', 'tar.gz'], 'default': 'zip'}}, 'required': ['project_id']}}]


user: I need to register a new PostgreSQL server with the nickname 'MainDB', the host name 'pg.example.org', port number 5432, and the default database called 'sales_db'. The username is 'admin' and the password is 'password'.

Available functions:
[{"name": "dartfx_help", "description": "Provides assistance to the user on a specific topic. It explains the next steps and offers a list of suggestions for the user to consider.", "parameters": {"type": "dict", "required": ["topic"], "properties": {"topic": {"type": "string", "description": "The subject, topic, keywords, or action to help the user with. For example, 'password reset' or 'booking a flight'."}, "include_examples": {"type": "boolean", "description": "Determines whether to include examples in the help message. When set to true, the response includes practical examples.", "default": false}, "language": {"type": "string", "description": "The language in which the help information should be provided.", "enum": ["English", "Spanish", "French", "German", "Chinese"], "default": "English"}}}}, {"name": "add_mtnards_server", "description": "Registers a new MTNA Rich Data Services (RDS) server with the specified nickname and host within the environment, using the provided API key for authentication.", "parameters": {"type": "dict", "required": ["host", "api_key"], "properties": {"nickname": {"type": "string", "description": "A friendly name to identify the RDS server, allowing for easier reference.", "default": "rds1"}, "host": {"type": "string", "description": "The fully qualified domain name or IP address of the RDS server."}, "api_key": {"type": "string", "description": "The unique API key required to authenticate with the RDS server. This key should be kept confidential."}}}}, {"name": "add_postgres_server", "description": "Registers a new PostgreSQL server within the environment by providing its connection details.", "parameters": {"type": "dict", "required": ["host", "port", "database", "username", "password"], "properties": {"nickname": {"type": "string", "description": "A unique alias for the server that will be used for identification within the environment.", "default": "postgres1"}, "host": {"type": "string", "description": "The hostname or IP address of the PostgreSQL server."}, "port": {"type": "integer", "description": "The port number on which the PostgreSQL server is listening. Typically, PostgreSQL uses port 5432."}, "database": {"type": "string", "description": "The name of the default database to connect to on the PostgreSQL server."}, "username": {"type": "string", "description": "The username required for authentication with the PostgreSQL server."}, "password": {"type": "string", "description": "The password associated with the username for authentication with the PostgreSQL server."}}}}, {"name": "connect_to_server", "description": "Establishes a connection to a specified server or tests an existing connection.", "parameters": {"type": "dict", "required": ["nickname"], "properties": {"nickname": {"type": "string", "description": "The unique identifier or friendly name used to refer to the target server."}, "timeout": {"type": "integer", "description": "The maximum amount of time in seconds to wait for the connection attempt before timing out.", "default": 30}, "use_ssl": {"type": "boolean", "description": "Determines whether to use SSL encryption for the connection.", "default": true}}}}, {"name": "rename_server", "description": "Renames a server by updating its identifier from the current value to a new value.", "parameters": {"type": "dict", "required": ["_from", "to"], "properties": {"_from": {"type": "string", "description": "The current server identifier, such as a name or nickname, that uniquely identifies the server to be renamed."}, "to": {"type": "string", "description": "The new server identifier, such as a name or nickname, that the server will be renamed to."}}}}, {"name": "list_servers", "description": "Retrieve a list of all the servers within the specified environment, optionally filtering by server type.", "parameters": {"type": "dict", "properties": {"server_type": {"type": "string", "description": "The type of servers to be listed. If not specified, all server types are included.", "enum": ["all", "graphql", "mtna", "openapi", "postgres", "rds", "sql"], "default": "all"}}, "required": []}}, {"name": "list_files", "description": "List the files of a specified type in the directory of the current project. If 'include_subdirectories' is set to true, files in subdirectories will also be included.", "parameters": {"type": "dict", "required": ["file_type"], "properties": {"file_type": {"type": "string", "description": "The type of files to list, based on file extension. Possible extensions include 'py' for Python files, 'txt' for text files, 'md' for Markdown files, and 'json' for JSON files.", "enum": ["py", "txt", "md", "json"]}, "include_subdirectories": {"type": "boolean", "description": "Whether to include files from subdirectories.", "default": false}}}}, {"name": "open_project", "description": "Initializes a new Data Artifex project or opens an existing one in the specified directory.", "parameters": {"type": "dict", "required": ["path"], "properties": {"path": {"type": "string", "description": "The file system path to the directory where the project will be created or where the existing project is located. The path should be absolute or relative to the current working directory."}, "create_new": {"type": "boolean", "description": "A flag indicating whether to create a new project if one does not exist at the given path.", "default": false}, "access_mode": {"type": "string", "description": "The mode of access for the project.", "enum": ["readonly", "readwrite"], "default": "readwrite"}}}}, {"name": "close_project", "description": "Close the current data artifex project and archive its contents.", "parameters": {"type": "dict", "properties": {"project_id": {"type": "string", "description": "Unique identifier of the project to be closed."}, "archive": {"type": "boolean", "description": "Flag to determine whether the project should be archived.", "default": true}, "archive_format": {"type": "string", "description": "The file format to be used for archiving project files.", "enum": ["zip", "tar", "tar.gz"], "default": "zip"}}, "required": ["project_id"]}}]

Ground-truth function call:
[{"add_postgres_server": {"nickname": ["MainDB"], "host": ["pg.example.org"], "port": [5432, ""], "database": ["sales_db"], "username": ["admin"], "password": ["password"]}}]