AI Agent Platform with CodeAct Architecture - A Spring Boot backend with Python sandbox execution environment for AI agents to execute tools and code
MY-Manus exhibits significant definition quality gaps. Tool descriptions vary widely in quality: print_message and visualize_data lack actionable context; todo and search_tools have verbose descriptions but missing parameter details; mcp_call and shell_exec are high-risk tools with minimal safety guidance. Input schemas are present but incomplete, many parameters lack type constraints (e.g., 'action' in todo accepts free-form strings instead of enum). No output schemas documented. Error handling is absent, no recovery guidance, no categorization of retryable vs. fatal errors. The server exposes dangerous operations (shell_exec, mcp_call) without confirmation patterns or permission gates. Tool composition is poor: mcp_call and search_tools create a meta-tool pattern that bypasses the MCP server's own tool registry, violating single-responsibility principle.
Execute an MCP (Model Context Protocol) tool from an external server. Use this after discovering tools with search_tools(). This tool acts as a bridge to execute remote MCP tools and return their results. Parameters: - tool_name: The exact name of the MCP tool to execute (from search_tools results), - **kwargs: All other parameters are passed to the MCP tool as arguments. Example workflow: # 1. First, discover available tools, tools = search_tools(query="send email"), print(tools) # Shows: send_email tool is available, # 2. Then, execute the tool, result = mcp_call(tool_name="send_email", to="[email protected]", subject="Meeting Tomorrow", body="Let's meet at 10am"), print(result) # Shows: Email sent successfully. Returns: The result from the MCP tool execution (usually a dict with success/error info)
Print a message to the output
Search for additional tools from external MCP (Model Context Protocol) servers. Use this when you need capabilities beyond the built-in tools. For example: Email operations: search_tools(query="send email"), Calendar operations: search_tools(query="schedule meeting"), Database operations: search_tools(query="query database"). Returns a list of matching tools with their names, descriptions, and parameter schemas. After finding a tool, use mcp_call() to execute it.
Execute shell commands in the sandbox environment
Read or write the todo.md file. Use 'read' action to view todos, 'write' action to update them. Helps track multi-step tasks across iterations.
mcp_call and shell_exec are destructive/irreversible tools with no confirmation pattern, permission gates, or dry-run support. Agents can execute arbitrary shell commands or invoke remote MCP tools without safeguards.
Parameter 'action' in todo tool accepts free-form strings ('read'/'write') but is not declared as an enum. LLMs may pass invalid values like 'append' or 'delete'. No validation or error guidance provided.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., search_tools returns 'matching tools' but structure is undefined; mcp_call returns 'result from MCP tool' with no schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Create data visualizations. Supported types: line, bar, scatter, histogram, heatmap. Returns guidance on which Python visualization libraries to use. Agent should write Python code using matplotlib, seaborn, or plotly.
mcp_call and search_tools implement a meta-tool pattern that bypasses the MCP server's own tool registry. This violates single-responsibility principle and creates a security risk: agents can invoke any external MCP tool without the server's knowledge or control.
Error handling is absent across all tools. No recovery guidance, no error categorization (retryable vs. fatal), no actionable error messages. E.g., shell_exec provides no guidance on command failures; todo provides no guidance on file I/O errors.