workbench_run_python
ActiveTool of io.github.saloprj/dialogbrain
Run Python in an isolated sandbox to process LARGE or paginated tool results without pulling every row into the conversation. Inside the code, call your connected integration tools with `call_tool('ext<id>_<name>', {..})`. RETURN SHAPE: call_tool ALWAYS returns a dict with a boolean r['success']. On SUCCESS the API's JSON is under r['body'], e.g. {'success': True, 'status': 200, 'body': {'results': [{'title': ...}, ...]}} — so read r['body']['results']. On FAILURE r['success'] is False and r['error'] explains. If unsure of the shape, print(r) once and inspect before extracting. Aggregate/filter/paginate in the sandbox, then assign ONLY the small summary you want back to a variable named `result`. FIRST discover exact tool slugs with integrations_search_tools, THEN write code that calls them. pandas/numpy available.
Parameters schema
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Python source to execute. call_tool('ext<id>_<name>', {..}) returns the integration's raw dict — HTTP success payload is under r['body'] (e.g. r['body']['results']); failure is {'success': False, 'error': ...}. Assign the small summary to `result`. pandas/numpy available."
},
"agent_id": {
"type": "integer",
"description": "Which agent's tool policy the sandbox runs under — this scopes which ext* integrations call_tool may reach (enabled + denied_tools for that agent). Only needed when calling this tool OUTSIDE a normal agent run (e.g. directly from an external MCP client); during an agent run the running agent is used and this is ignored. Without it, call_tool can reach no integrations."
}
}
}Parent server
io.github.saloprj/dialogbrain
https://github.com/saloprj/dialogbrain-mcp
1/7 registries