omniplan-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_tasksA | Query tasks in an OmniPlan document with optional filters. Args: keyword: Filter by title or note containing this text (case-insensitive). task_type: One of: task, group, milestone, hammock. completed: True = completed only, False = incomplete only, None = all. due_before: ISO date string (e.g. 2025-12-31). Tasks ending before this date. due_after: ISO date string (e.g. 2025-01-01). Tasks ending after this date. limit: Maximum number of tasks to return. Returns all tasks if omitted. detail: 'summary' (default) returns core fields only; 'full' returns all fields. |
| get_taskA | Get full details of a single task by its unique ID. Args: task_id: The uniqueID of the task. |
| create_taskA | Create a new task in an OmniPlan document. Args: title: Task title. parent_id: uniqueID of the parent task. If omitted, adds to root. task_type: One of: task, group, milestone, hammock. Defaults to task. note: Optional task description. manual_start_date: ISO date string for manual start. manual_end_date: ISO date string for manual end. effort_seconds: Total effort in person-seconds (e.g. 14400 for 4h). min_effort_seconds: Three-point estimation minimum (person-seconds). expected_effort_seconds: Three-point estimation expected value. max_effort_seconds: Three-point estimation maximum. |
| create_tasksA | Create multiple tasks in a single JXA call. Performance: each Args:
tasks: list of task specs. Each spec is a dict with the same
fields Returns:
JSON array of created-task shapes — same fields as Raises ValueError on invalid parent_index references or unknown parent_id, before any task is created. |
| update_taskA | Update an existing task. Only provided fields are changed. Args:
task_id: The uniqueID of the task.
title: New title.
note: New note text.
completed: True to mark complete, False to mark incomplete.
manual_start_date: ISO date string, or empty string to clear.
manual_end_date: ISO date string, or empty string to clear.
effort_seconds: Total effort in person-seconds. Pass 0 to set to zero;
None (omit) to leave unchanged.
min_effort_seconds: Three-point estimation minimum (person-seconds).
expected_effort_seconds: Three-point estimation expected value.
max_effort_seconds: Three-point estimation maximum.
start_no_earlier_than: ISO date string, or empty string to clear.
Maps to |
| find_taskA | Look up tasks by title, returning lightweight identifiers. Removes the "list everything → grep → use ID" pattern when an agent knows the title but not the uniqueID. Args:
name: Title to match. Case-insensitive substring match by default.
exact: When True, only return tasks whose title equals Returns:
JSON array of |
| move_taskA | Reparent a task without changing its uniqueID. Wraps the omniJS Because uniqueID is preserved across the move, dependencies and resource assignments that reference the moved task stay intact — no clone-and-rebuild required. Args:
task_id: uniqueID of the task to move.
new_parent_id: uniqueID of the destination parent. If omitted,
the task is moved to the document root.
index: 0-based position in Returns:
JSON |
| delete_taskC | Delete a task by its unique ID. Args: task_id: The uniqueID of the task to delete. |
| list_documentsA | List all currently open OmniPlan documents. Note: task tools now always operate on the current front document. |
| save_documentA | Save the front OmniPlan document to disk. OmniPlan does NOT autosave the front document on idle — verified
empirically against OmniPlan 4.10.2 by editing a task via MCP and
polling Returns:
JSON |
| get_project_infoA | Return project-level info for the front document. Returns:
JSON omniJS surface gaps surfaced during implementation (probed 2026-05-01 against OmniPlan 4.10.2):
|
| update_projectA | Update project-level fields on the front document. Args:
start_date: ISO date for the project's actual start. Maps to
Returns:
Post-write Note: |
| add_dependencyA | Add a dependency from predecessor to successor. Args: predecessor_id: uniqueID of the prerequisite task. successor_id: uniqueID of the dependent task. kind: One of "FS" (finish-to-start, default), "SS", "FF", "SF". lead_time_seconds: Lead time before the successor can start, in work-seconds. Defaults to 0. Negative values are not supported here; if you need lag in the other direction, model it as a different dependency kind. Returns:
JSON |
| remove_dependencyA | Remove the dependency between two tasks. Args: predecessor_id: uniqueID of the prerequisite task. successor_id: uniqueID of the dependent task. Returns:
JSON |
| list_dependenciesA | List dependencies in the document. Args: task_id: Optional uniqueID. If provided, only dependencies where the task is the predecessor or successor are returned. If omitted, every dependency in the document is returned. Returns:
JSON array of |
| list_resourcesA | List all resources in the document. Returns:
JSON array of |
| create_resourceA | Create a new resource at the document's resource root. Args:
name: Resource name.
type: One of "staff" (default), "equipment", "material", "group".
email: Optional email address (relevant mainly for staff).
cost_per_use: Optional cost in the document's currency. Stored
as a Decimal — writes go through Returns:
JSON |
| move_resourceA | Reparent a resource without changing its uniqueID. Wraps the omniJS Because uniqueID is preserved across the move, assignments that reference the moved resource stay intact — no clone-and-rebuild. Args:
resource_id: uniqueID of the resource to move.
new_parent_id: uniqueID of the destination group resource. If
omitted, the resource is moved under the document's
rootResource.
index: 0-based position in Returns:
JSON |
| delete_resourceA | Delete a resource by uniqueID. Args: resource_id: uniqueID of the resource to delete. Returns:
JSON |
| assign_resourceA | Assign a resource to a task. Args:
task_id: uniqueID of the task.
resource_id: uniqueID of the resource.
units: Optional fractional allocation (1.0 = 100% of a staff
resource's working hours). Maps to the documented
Returns:
JSON |
| list_assignmentsA | List the resource assignments on a task. Args: task_id: uniqueID of the task. Returns:
JSON array of |
| unassign_resourceA | Remove a resource assignment from a task. Args: task_id: uniqueID of the task. resource_id: uniqueID of the resource. Returns:
JSON |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/johntrandall/omniplan-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server