Skip to main content
Glama

MCP OmniFocus

by someposer
test_omnifocus.py2.36 kB
import pytest from mcp_omnifocus.utils.omnifocus import list_perspectives, list_projects, list_tags, list_tasks from mcp_omnifocus.utils.scripting import run_jxa_script @pytest.mark.requires_omnifocus def test_omnifocus_availability(): """Test that OmniFocus is available and responsive.""" # This test will be automatically skipped if OmniFocus is not available script = """ (() => { const omnifocus = Application("OmniFocus"); return omnifocus.name(); })(); """ result = run_jxa_script(script) assert result == "OmniFocus" @pytest.mark.requires_omnifocus def test_list_perspectives(): """Test listing perspectives in OmniFocus.""" perspectives = list_perspectives() assert isinstance(perspectives, list) assert all(isinstance(perspective, str) for perspective in perspectives) assert all(perspective for perspective in perspectives) # Ensure no empty strings assert "Inbox" in perspectives # Check for a known perspective @pytest.mark.requires_omnifocus def test_list_projects(): """Test listing projects in OmniFocus.""" projects = list_projects() assert isinstance(projects, list) assert all(isinstance(project, dict) for project in projects) assert all("id" in project and "name" in project and "status" in project for project in projects) assert all( isinstance(project["id"], str) and isinstance(project["name"], str) and isinstance(project["status"], str) for project in projects ) @pytest.mark.requires_omnifocus def test_list_tags(): """Test listing tags in OmniFocus.""" tags = list_tags() assert isinstance(tags, list) assert all(isinstance(tag, dict) for tag in tags) assert all("id" in tag and "name" in tag for tag in tags) assert all(isinstance(tag["id"], str) and isinstance(tag["name"], str) for tag in tags) @pytest.mark.requires_omnifocus @pytest.mark.slow def test_list_tasks(): """Test listing tasks in OmniFocus.""" tasks = list_tasks() assert isinstance(tasks, list) assert all(isinstance(task, dict) for task in tasks) assert all("id" in task and "name" in task and "status" in task for task in tasks) assert all( isinstance(task["id"], str) and isinstance(task["name"], str) and isinstance(task["status"], str) for task in tasks )

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/someposer/mcp-omnifocus'

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