Skip to main content
Glama

visum_custom_analysis

Execute custom Python code to analyze Visum transportation models, enabling tailored data processing and specialized calculations for specific project requirements.

Instructions

Execute custom Python code with access to the active Visum instance

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pythonCodeYesPython code to execute. The 'visum' variable contains the active VisumPy instance. Store results in 'result' dictionary.
descriptionNoOptional description of the analysis being performed

Implementation Reference

  • Handler function that executes custom Python code on the persistent VisumPy instance via visumController.executeCustomCode, processes the result, filters output, and returns formatted Markdown response with results, performance metrics, or error messages.
    async ({ pythonCode, description }) => { try { const result = await visumController.executeCustomCode(pythonCode, description); if (result.success) { let analysisResults = ''; if (result.result) { analysisResults = `**Risultati Analisi:**\n\`\`\`json\n${JSON.stringify(result.result, null, 2)}\n\`\`\`\n\n`; } let executionOutput = ''; if (result.output) { const outputLines = result.output.split('\n').filter(line => line.trim() && !line.includes('=====') && !line.includes('Executing analysis') && !line.includes('SUCCESS: Tool call completed') ); if (outputLines.length > 0) { executionOutput = `**Output Esecuzione:**\n\`\`\`\n${outputLines.slice(-20).join('\n')}\n\`\`\`\n\n`; } } return { content: [ { type: "text", text: `✅ **Analisi Personalizzata Completata**\n\n` + `**Descrizione:** ${description || 'Analisi Python personalizzata'}\n\n` + analysisResults + executionOutput + `**Performance:**\n` + `• **Tempo Esecuzione:** ${result.executionTimeMs?.toFixed(3) || 'N/A'}ms\n\n` + `*Eseguito su istanza VisumPy persistente*` } ] }; } else { return { content: [ { type: "text", text: `❌ **Analisi personalizzata fallita**\n\n` + `**Errore:** ${result.error || 'Errore sconosciuto'}\n\n` + `**Codice tentato:**\n\`\`\`python\n${pythonCode}\n\`\`\`\n\n` + `*Controllare la sintassi Python e l'uso corretto della variabile 'visum'*` } ] }; } } catch (error) { return { content: [ { type: "text", text: `❌ **Errore esecuzione analisi personalizzata:**\n\n${error instanceof Error ? error.message : String(error)}` } ] }; }
  • Zod input schema defining 'pythonCode' (required string) for the Python script to run in VisumPy context, and optional 'description' string.
    pythonCode: z.string().describe("Python code to execute. The 'visum' variable contains the active VisumPy instance. Store results in 'result' dictionary."), description: z.string().optional().describe("Optional description of the analysis being performed")
  • MCP server.tool registration for 'visum_custom_analysis' tool, including description, schema, and inline handler.
    server.tool( "visum_custom_analysis", "Execute custom Python code with access to the active Visum instance", { pythonCode: z.string().describe("Python code to execute. The 'visum' variable contains the active VisumPy instance. Store results in 'result' dictionary."), description: z.string().optional().describe("Optional description of the analysis being performed") }, async ({ pythonCode, description }) => { try { const result = await visumController.executeCustomCode(pythonCode, description); if (result.success) { let analysisResults = ''; if (result.result) { analysisResults = `**Risultati Analisi:**\n\`\`\`json\n${JSON.stringify(result.result, null, 2)}\n\`\`\`\n\n`; } let executionOutput = ''; if (result.output) { const outputLines = result.output.split('\n').filter(line => line.trim() && !line.includes('=====') && !line.includes('Executing analysis') && !line.includes('SUCCESS: Tool call completed') ); if (outputLines.length > 0) { executionOutput = `**Output Esecuzione:**\n\`\`\`\n${outputLines.slice(-20).join('\n')}\n\`\`\`\n\n`; } } return { content: [ { type: "text", text: `✅ **Analisi Personalizzata Completata**\n\n` + `**Descrizione:** ${description || 'Analisi Python personalizzata'}\n\n` + analysisResults + executionOutput + `**Performance:**\n` + `• **Tempo Esecuzione:** ${result.executionTimeMs?.toFixed(3) || 'N/A'}ms\n\n` + `*Eseguito su istanza VisumPy persistente*` } ] }; } else { return { content: [ { type: "text", text: `❌ **Analisi personalizzata fallita**\n\n` + `**Errore:** ${result.error || 'Errore sconosciuto'}\n\n` + `**Codice tentato:**\n\`\`\`python\n${pythonCode}\n\`\`\`\n\n` + `*Controllare la sintassi Python e l'uso corretto della variabile 'visum'*` } ] }; } } catch (error) { return { content: [ { type: "text", text: `❌ **Errore esecuzione analisi personalizzata:**\n\n${error instanceof Error ? error.message : String(error)}` } ] }; } } );
  • Helper method in PersistentVisumController that delegates custom Python code execution to the persistent Python subprocess via JSON stdin command.
    public async executeCustomCode(pythonCode: string, description?: string): Promise<VisumResponse> { return this.sendCommandToPersistentProcess(pythonCode, description); }

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/multiluca2020/visum-thinker-mcp-server'

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