addSubtask
Adds a subtask to a specified parent task.
A task graph, the filesystem, the terminal and a browser in one server — plan work, do it, verify it, and keep the plan updated as you go.
LABSCO SUMMARY
Most task servers describe work and stop there; here the same session can read the code, run the tests, drive a browser and then update the task's status and activity log, which is what keeps the graph honest. The priority engine is the unusual part — time decay and effort weighting mean "what's next" moves on its own rather than reflecting the order things were entered. Set the boundaries deliberately: ALLOWED_DIRS and READONLY_MODE are the only things standing between these tools and the rest of the disk, and the browser and AppleScript families need their own prerequisites before they do anything.
An orchestration layer that combines a priority-driven task manager with the tools needed to act on it: file read and write, code search and surgical edits, terminal sessions, Playwright browser control and AppleScript. Filesystem access is bounded by an allowed-directory list and an optional read-only mode.
No account for the core. Node.js, with the MCP server started as bin/agentic-control-framework-mcp --workspaceRoot pointing at your project; the same code also runs as the acf CLI. WORKSPACE_ROOT sets the default workspace, ALLOWED_DIRS adds directories the file tools may touch, and READONLY_MODE=true disables writes entirely. Browser tools need Playwright browsers installed (npx playwright install), and the AppleScript tool needs macOS. GEMINI_API_KEY is what enables the AI-backed planning tools — parsePrd, expandTask and reviseTasks — and nothing else depends on it.
Build from source — git clone https://github.com/FutureAtoms/agentic-control-framework.git
USE CASES
Parse the document into tasks with dependencies, expand the ones that are too coarse, and generate the per-task files for review.
Ask for the next actionable task given dependencies and priority, then pull its context block and read the files it touches.
Apply a surgical block edit, run the tests in a terminal session, read the output, and set the task's status accordingly.
Drive the page, take an accessibility snapshot or screenshot, and read the console and network activity behind it.
Recalculate priorities with time decay and effort weighting, look at the dependency analysis, and reprioritise what has drifted.
Run with read-only mode on and the allowed directories set, so retrieval and search work and nothing can be modified.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
addSubtaskAdds a subtask to a specified parent task.
addTaskAdds a new task to the task list.
addTaskWithTemplateAdd a new task using a priority template for automatic priority calculation.
applescript_executeRun AppleScript code to interact with Mac applications and system features. This tool can access and manipulate data in Notes, Calendar, Contacts, Messages, Mail, Finder, Safari, and other Apple applications. Common use cases include but not limited to: - Retrieve or create notes in Apple Notes - Access or add calendar events and appointments - List contacts or modify contact details - Search for and organize files using Spotlight or Finder - Get system information like battery status, disk space, or network details - Read or organize browser bookmarks or history - Access or send emails, messages, or other communications - Read, write, or manage file contents - Execute shell commands and capture the output
browser_clickPerform click on a web page
browser_closeClose the page
browser_console_messagesReturns all console messages
browser_dragPerform drag and drop between two elements
browser_file_uploadUpload one or multiple files
browser_handle_dialogHandle a dialog
browser_hoverHover over element on page
browser_installInstall the browser specified in the config
browser_navigateNavigate to a URL
browser_navigate_backGo back to the previous page
browser_navigate_forwardGo forward to the next page
browser_network_requestsReturns all network requests since loading the page
browser_pdf_saveSave page as PDF
browser_press_keyPress a key on the keyboard
browser_resizeResize the browser window
browser_select_optionSelect an option in a dropdown
browser_snapshotCapture accessibility snapshot of the current page
browser_tab_closeClose a tab
browser_tab_listList browser tabs
browser_tab_newOpen a new tab
browser_tab_selectSelect a tab by index
browser_take_screenshotTake a screenshot of the current page
browser_typeType text into editable element
browser_waitWait for a specified time in seconds
browser_wait_forWait for text to appear or disappear or a specified time
bumpTaskPriorityIncrease task priority by a specified amount.
calculatePriorityFromTemplateCalculate priority for a task using a specific template.
configureEffortWeightingConfigure effort-weighted priority scoring based on task complexity, impact, and urgency.
configureTimeDecayConfigure time-based priority decay settings with multiple decay models.
copy_fileCopy files and directories.
create_directoryCreate a new directory or ensure a directory exists.
deferTaskPriorityDecrease task priority by a specified amount.
delete_fileDelete a file or directory from the file system.
deprioritizeTaskSet task to low priority (100-400 range).
edit_blockApply surgical text replacements to files
execute_commandExecute a terminal command with timeout
expandTaskUses the Gemini API to break down a task into subtasks (overwrites existing subtasks).
force_terminateForce terminate a running terminal session
forceSyncTaskFilesForce immediate synchronization of all task-related files.
generateTaskFilesGenerates individual Markdown files for each task in the tasks/ directory.
generateTaskTableGenerates a human-readable Markdown file with task statuses and checkboxes.
get_configGet the complete server configuration as JSON
get_file_infoRetrieve detailed metadata about a file or directory.
get_filesystem_statusReturns the current status of filesystem operations, including read-only mode and allowed directories.
getAdvancedAlgorithmConfigGet current configuration for all advanced priority algorithms including time decay and effort weighting.
getContextRetrieves detailed context for a specific task or subtask.
getDependencyAnalysisGet comprehensive dependency analysis including critical paths, blocking tasks, and circular dependencies.
getFileWatcherStatusGet current file watcher status, statistics, and configuration.
getNextTaskGets the next actionable task based on status, dependencies, and priority.
getPriorityStatisticsGet priority statistics for all tasks including distribution and utilization.
getPriorityTemplatesGet all available priority templates for common task types.
initializeFileWatcherInitialize automatic file synchronization watcher for tasks.json changes.
initProjectInitializes the task manager project.
kill_processTerminate a running process by PID
list_allowed_directoriesReturns the list of directories that this server is allowed to access.
list_directoryGet a detailed listing of all files and directories in a specified path.
list_processesList all running processes
list_sessionsList all active terminal sessions
listTasksLists tasks, optionally filtered by status.
move_fileMove or rename files and directories.
parsePrdParses a Product Requirements Document (PRD) file using the Gemini API to generate tasks.
prioritizeTaskSet task to high priority (800-900 range).
read_fileRead the complete contents of a file from the file system or from a URL.
read_multiple_filesRead the contents of multiple files in a single operation.
read_outputRead new output from a running terminal session
recalculatePrioritiesRecalculate all task priorities using advanced algorithms including dependency boosts and distribution optimization.
removeTaskRemoves a task or subtask by its ID.
reviseTasksUses the Gemini API to revise future tasks based on a prompt/change, starting from a specific task ID.
search_codeSearch for text/code patterns within file contents using ripgrep
search_filesRecursively search for files and directories matching a pattern.
set_config_valueSet a specific configuration value by key
setWorkspaceSets the workspace directory for the task manager.
stopFileWatcherStop the automatic file synchronization watcher.
suggestPriorityTemplateSuggest the best priority template for a task based on title and description.
treeReturns a hierarchical JSON representation of a directory structure.
updateStatusUpdates the status of a task or subtask.
updateSubtaskUpdates the details of a subtask (e.g., title).
updateTaskUpdates the details of a task (title, description, priority, etc.). Does not update status.
write_fileCreate a new file or overwrite an existing file with new content.
BEFORE YOU INSTALL
83 tools when we connected. The documentation's tool map says 79, but 83 register. read_url, described in its Security section, is not an available tool.
All 4 documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 83 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
git clone https://github.com/FutureAtoms/agentic-control-framework.git
cd agentic-control-framework
npm install
chmod +x bin/*{
"mcpServers": {
"agentic-control-framework": {
"command": "<YOUR_ACF_PATH>/bin/agentic-control-framework-mcp",
"env": {
"ACF_PATH": "<YOUR_ACF_PATH>",
"WORKSPACE_ROOT": "<YOUR_WORKSPACE_ROOT>",
"ALLOWED_DIRS": "<YOUR_WORKSPACE_ROOT>:/tmp",
"READONLY_MODE": "false",
"BROWSER_HEADLESS": "false",
"DEFAULT_SHELL": "/bin/bash"
}
}
}
}{
"mcpServers": {
"agentic-control-framework": {
"type": "stdio",
"command": "node",
"args": [
"<YOUR_ACF_PATH>/bin/agentic-control-framework-mcp",
"--workspaceRoot",
"<YOUR_WORKSPACE_ROOT>"
],
"env": {
"ACF_PATH": "<YOUR_ACF_PATH>",
"WORKSPACE_ROOT": "<YOUR_WORKSPACE_ROOT>",
"READONLY_MODE": "false",
"BROWSER_HEADLESS": "false",
"DEFAULT_SHELL": "/bin/bash",
"NODE_ENV": "production"
}
}
}
}{
"servers": {
"acf-local": {
"command": "node",
"args": [
"<YOUR_ACF_PATH>/bin/agentic-control-framework-mcp",
"--workspaceRoot",
"<YOUR_WORKSPACE_ROOT>"
],
"env": {
"WORKSPACE_ROOT": "<YOUR_WORKSPACE_ROOT>",
"ALLOWED_DIRS": "<YOUR_WORKSPACE_ROOT>:/tmp",
"READONLY_MODE": "false"
}
}
}
}{
"mcpServers": {
"acf-local": {
"command": "node",
"args": [
"<YOUR_ACF_PATH>/bin/agentic-control-framework-mcp",
"--workspaceRoot",
"<YOUR_WORKSPACE_ROOT>"
],
"env": {
"WORKSPACE_ROOT": "<YOUR_WORKSPACE_ROOT>",
"ALLOWED_DIRS": "<YOUR_WORKSPACE_ROOT>:/tmp",
"READONLY_MODE": "false"
}
}
}
}