checkCodeExecStatus
Monitor the progress and retrieve results of asynchronous code execution with automatic polling.
After starting code execution with 'asyncExecuteCode', use this tool to check the current status and get results when complete. This tool provides real-time updates on execution progress.
**Status types:**
- 'pending': Execution queued but not yet started
- 'running': Currently executing your code
- 'completed': Finished successfully, results available
- 'failed': Execution failed, error details provided
- 'cancelled': Execution was cancelled
**Controls:**
- 'timeout_seconds' (default 300, max 900) to cap how long to poll
- 'poll_interval_seconds' (default 5, min 2, max 30) between checks
**Tip:** For long operations, poll every 10-30 seconds until completion.
getToolDetails
Get comprehensive documentation for any specific tool.
you use it to find the tool details and the server name to use in code execution tool.
searchTools
🔎 Find tools by functionality, keywords, or provider.
Smart search across all available tools when you know what you want to accomplish but aren't sure which specific tool to use. Search by functionality, keywords, or filter by tool type and provider.
**Search examples:**
- "database" → Find all database-related tools
- "web scraping" → Discover scraping and data extraction tools
- "Supabase" → All Supabase integration tools
- "file upload" → Tools for handling file operations
**Filters help you** narrow down to exactly what you need - specific providers, etc.
deployCode
Deploys working Python code as a DataGen standalone deployment.
This tool orchestrates the complete workflow: takes your Python code, tests it,
and creates a standalone deployment as an API endpoint with default values.
Perfect for converting working code into a production-ready deployment without flows.
Uses OpenAPI/JSON Schema for rich input and output validation with descriptions,
type constraints, default values, and comprehensive documentation.
**Schema Example:**
input_schema: {
'type': 'object',
'properties': {
'name': {'type': 'string', 'description': 'User name'},
'count': {'type': 'integer', 'minimum': 1, 'default': 10},
'data': {'type': 'array', 'items': {'type': 'string'}}
},
'required': ['name']
}
**Do not use any local() or global() in the code.**
you can assume the input variables are already defined in the global scope. and you can use them directly with data type defined in the input_schema.
**Do Not Return anthing for Output**
Deploy code use the globa variable to reference the input and output variables. so do not return in main script. otherwise it would trigger ReturnException.
To return output, just reference the global variable.
for example:
if I need to return the output variable "result" in the main script, I can do this:
result = "Hello, World!"
and in the output_variables, I can do this:
output_variables: ['result']
just simply reference the global variable in the output_variables.
**No Async in the code**
Do not use any async in the code. it will cause the code to not work.
**Steps to take before deploying code**
<step0> Try to briefly explain the code or plan to the user. </step0>
<step1> Come up with right input_schema and output_schema to define the input and output variables </step1>
<step2> Confirm with user if the input and output are correct. modify if needed. </step2>
<step3> Run submitDeploymentRun tool to test the code is working on Datagen after the deployment is created. </step3>
addRemoteMcpServer
Add a remote MCP server with OAuth or direct URL to DataGen.
<Find Remote MCP Server URL>
Before adding a remote MCP server, and if you have web research tool, you should first search and find the officail remote MCP server with their URL.
If No official remote MCP available, recommend user to look for MCP hosted services
like smithery.ai(https://smithery.ai), Klavis AI(https://klavis.ai), etc. to add the remote MCP server.
</Find Remote MCP Server URL>
<Add Remote MCP Server>
Directly add remote MCP servers by providing server name, and URL
</Add Remote MCP Server>
Supports OAuth flows. Returns available tools upon successful connection.
Perfect for:
- Connecting to external MCP services to DataGen
Input Requirements:
- server_name: Display name for the server (must follow naming rules)
- server_url: Remote server endpoint (HTTP/SSE)
Naming Rules:
- Use only alphanumeric characters (no spaces, underscores, or dashes)
- Start with an uppercase letter
- Use CamelCase for multiple words
- Examples: 'GitHub', 'Slack', 'GoogleDrive'
Returns:
- Server info + complete list of available tools with descriptions or auth url if OAuth is required.
- if success is false, it means the server is not found or the URL is not valid.
- if Auth url is returned, plese use the proper formating like [Auth url](https://your-auth-url.com) to format the auth url.
and use checkRemoteMcpOauthStatus tool to check the status of the OAuth flow right after this tool call.
checkRemoteMcpOauthStatus
Check the status of an OAuth flow for remote MCP server connection with polling.
After receiving an OAuth redirect URL from addRemoteMcpServer, use this tool to check if the user has completed authentication. This tool will poll the status until completion or timeout.
**Use this when:**
- addRemoteMcpServer returned requires_auth: true
- User has completed OAuth authentication in browser
- You want to confirm the server connection is established
**Returns:** Final connection status on success, or error details on failure/timeout
**Next steps after success:**
- When status is "completed", the MCP server is now connected and ready
- Use 'searchTools' to discover what tools are available from the newly connected server
- Example: searchTools({query: "server_name", tool_type: "mcp"})
ReAuthRemoteMcpServer
🔄 Reauthenticate an existing remote MCP server connection.
When an existing remote MCP server's OAuth tokens have expired or become invalid, use this tool to initiate a fresh authentication flow. This will start a new OAuth flow while preserving the server configuration.
**Use this when:**
- Server tools stop working due to expired tokens
- You receive authentication errors from MCP tools
- OAuth tokens need to be refreshed for a connected server
- Server connection has been lost and needs re-authentication
**Process:**
1. Call this tool with the server name (must follow naming rules)
2. If OAuth is required, you'll get an auth_url
3. Complete authentication in the browser
4. Use checkRemoteMcpOauthStatus to verify completion
**Naming Rules:**
- Use only alphanumeric characters (no spaces, underscores, or dashes)
- Start with an uppercase letter
- Use CamelCase for multiple words
- Examples: 'GitHub', 'Slack', 'GoogleDrive', 'OpenAI'
**Returns:** Either immediate success or OAuth flow details for browser authentication
updateRemoteMcpServer
Update an existing remote MCP server with new configuration and refresh its tools list.
Use this tool to update the configuration of an existing remote MCP server connection.
This allows you to change the server URL, update authentication credentials, or refresh environment variables.
**Perfect for:**
- Updating server URL when endpoints change
- Refreshing API keys or authentication tokens
- Updating environment variables or configuration
- Migrating to new API versions or endpoints
- Getting the latest available tools after config changes
**Requirements:**
- Server with the given name must already exist
- New server URL must be accessible
- New authentication credentials must be valid
**Input Requirements:**
- server_name: Name of the existing server (must match exactly and follow naming rules)
- server_url: New remote server endpoint URL
- env_args: Updated environment variables/configuration
**Naming Rules:**
- Use only alphanumeric characters (no spaces, underscores, or dashes)
- Start with an uppercase letter
- Use CamelCase for multiple words
- Examples: 'GitHub', 'Slack', 'GoogleDrive', 'OpenAI'
**Returns:** Updated server info with refreshed tools list
getUserSecrets
Get User Secret Keys
Retrieve all available secret keys for the authenticated user. These keys can be referenced in Python code execution for MCP tool integrations, but the actual values are never exposed for security.
**Perfect for:**
- Discovering what secret keys are available for workflow integrations
- Understanding which MCP providers are configured
- Planning workflows that require authentication with external services
**Returns:**
- List of available secret keys with their names and providers
- Metadata including total count and available providers
- Usage instructions for referencing secrets in executeCode
**Security Note:** Only secret key names and metadata are returned, never the actual secret values.
scheduleDeployment
🕐 Schedule a deployment to run at specific times or intervals.
Set up automated execution of deployments using flexible scheduling options including:
- One-time execution at a specific date/time
- Recurring schedules using cron expressions
- Simple interval-based schedules (daily, weekly, monthly)
**Perfect for:**
- Automated data processing workflows
- Regular report generation
- Periodic API data syncing
- Scheduled backup operations
- Time-based business process automation
**Schedule Types:**
- 'once': Execute once at a specific datetime
- 'cron': Use cron expression for complex schedules
- 'interval': Simple recurring intervals (daily, weekly, monthly)
**Examples:**
- Daily at 9 AM: schedule_type='interval', interval='daily', time='09:00'
- Every Monday at 2 PM: schedule_type='cron', cron_expression='0 14 * * 1'
- Once on Dec 25, 2024 at 10:30 AM: schedule_type='once', datetime='2024-12-25T10:30:00Z'
listSchedules
List all scheduled deployments for the current user.
View and manage all your scheduled deployment executions with filtering and pagination options.
**Perfect for:**
- Getting an overview of all scheduled tasks
- Finding specific schedules by deployment or status
- Managing and monitoring scheduled executions
- Planning workflow timing and coordination
**Returns:**
- List of all schedules with details
- Schedule status and next execution times
- Deployment information and input variables
- Pagination support for large lists
memory_write
💾 Write a personalized memory for the authenticated user.
Capture durable preferences, ongoing work, or contextual notes so future workflows can tailor their behaviour automatically.
**Great for:**
- Remembering preferred tone or formatting
- Storing project milestones or TODOs
- Persisting CRM or onboarding notes
- Tracking tool configuration choices
memory_search
🔍 Search memories previously saved for the current user.
Run semantic search across stored context to quickly retrieve preferences, project history, or tagged notes.
deleteSchedule
🗑️ Delete a scheduled deployment permanently.
Remove a scheduled deployment from the system. This action cannot be undone, but it will not affect any deployments that have already been executed.
**Perfect for:**
- Removing schedules that are no longer needed
- Cleaning up test or temporary schedules
- Managing schedule cleanup and maintenance
**Warning:** This action is permanent and cannot be undone.