from __future__ import annotations from beaver.interfaces.mcp.tools_server import _category_tools def test_local_filesystem_mcp_exposes_personal_user_file_tools_only(tmp_path) -> None: tools, _context = _category_tools("filesystem", tmp_path) names = [tool.spec.name for tool in tools] assert names == [ "user_files_list", "user_files_read", "user_files_write", "user_files_mkdir", "user_files_copy_to_workspace", "user_files_publish_output", ] assert "read_file" not in names assert "search_files" not in names assert "list_directory" not in names assert all("personal agent file system" in tool.spec.description for tool in tools) def test_team_workflow_mcp_exposes_workflow_tool_schemas(tmp_path) -> None: tools, _context = _category_tools("team_workflow", tmp_path) specs = {tool.spec.name: tool.spec for tool in tools} assert list(specs) == [ "SequentialWorkflow", "ConcurrentWorkflow", "MixtureOfAgents", "AgentRearrange", "GraphWorkflow", ] assert specs["SequentialWorkflow"].input_schema["required"] == ["task", "agents"] assert specs["SequentialWorkflow"].input_schema["properties"]["agents"]["items"]["required"] == [ "name", "instruction", ] assert specs["GraphWorkflow"].input_schema["required"] == [ "task", "agents", "edges", "output_agent", ] assert specs["GraphWorkflow"].input_schema["properties"]["edges"]["items"]["minItems"] == 2 assert specs["AgentRearrange"].input_schema["required"] == ["task", "agents", "flow"]