list_projects
Retrieve a comprehensive list of all projects in OmniFocus to organize and manage tasks efficiently using MCP OmniFocus server.
Instructions
List all projects in OmniFocus.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/mcp_omnifocus/server.py:37-40 (handler)MCP tool handler for 'list_projects'. This decorated function serves as the entry point for the tool, delegating the actual work to omnifocus.list_projects().@mcp.tool def list_projects() -> list[dict[str, str]]: """List all projects in OmniFocus.""" return omnifocus.list_projects()
- Core helper function implementing the logic to list projects by executing JavaScript in OmniFocus via evaluate_javascript, using shared common functions for status mapping.def list_projects() -> list[dict[str, str]]: """List all projects in OmniFocus. Returns: A list of dictionaries containing project names, ids, statuses, etc. """ script = Template( dedent(""" ${__common_functions__} (() => { return flattenedProjects.map(project => { return { id: project.id.primaryKey, name: project.name, status: projectStatusToString(project.status), flagged: project.flagged, deferDate: project.deferDate ? project.deferDate.toString() : null, dueDate: project.dueDate ? project.dueDate.toString() : null, tags: project.tags ? project.tags.map(tt => tt.name) : [], }; }); })(); """) ) return evaluate_javascript(script.substitute(__common_functions__=__common_functions__))
- src/mcp_omnifocus/server.py:37-40 (registration)Registration of the 'list_projects' tool using @mcp.tool decorator in the FastMCP server.@mcp.tool def list_projects() -> list[dict[str, str]]: """List all projects in OmniFocus.""" return omnifocus.list_projects()