CodeOrch exposes a typed MCP server. Any MCP-compatible client — Claude Code, Cursor, Aider — can call these tools at runtime to manage tasks, search code, and orchestrate context. All 29 tools are production-ready and metered only where LLM calls are involved.
beginOne-shot lifecycle: create a task (or match existing), claim it, orchestrate context, and start working. The primary entry point for agents.
begin(project_id, title="Add dark mode", description="...")
create_taskQueue a task on the board without claiming or orchestrating it. Use when batching multiple tasks at once.
create_task(project_id, title="Refactor auth", description="...")
list_tasksList tasks in a project with optional filters (status, assignee, board). Returns compact rows with id, title, status, priority.
list_tasks(project_id, status="in_progress")
get_taskFetch full task details by UUID or 8-char prefix. Returns title, status, priority, claimed_by, tags, and briefing summary.
get_task(task_id="abc12345")
get_task_briefingFetch the orchestrated briefing for a task. Non-blocking: returns pending with retry_after if orchestration is still running.
get_task_briefing(task_id="abc12345")
finishSubmit task for review, run the orchestrator review gate, and optionally create a PR. Pass changed_files, key_functions, and important_chunks.
finish(task_id, notes="Done", changed_files=["src/auth.ts"])
discuss_taskRecord GSD-Core discussion decisions and transition the task to discussed status. Decisions are stored in orchestration_prompt.
discuss_task(task_id, decisions="# Decision: Use JWT...")
break_taskDecompose a task into 2-5 atomic subtasks with dependency links. The orchestrator analyzes the briefing to create focused children.
break_task(task_id, max_subtasks=3)
plan_projectConvert a high-level goal into a sequence of dependent tasks. The orchestrator analyzes the codebase and creates a task tree.
plan_project(project_id, goal="Implement auth system")
add_task_dependencyLink task_id as depending on depends_on_task_id. Circular dependencies are rejected.
add_task_dependency(task_id="a", depends_on_task_id="b")
find_filesFind files in the project repo by glob pattern, extension, or content. Excludes node_modules, .git, dist by default.
find_files(project_id, pattern="src/**/*.ts", contains="auth")
read_batchConfirm up to 5 files exist in the indexed snapshot. Returns path, char_count, line_count. Use Read tool after to load content.
read_batch(project_id, filepaths=["src/auth.ts", "src/types.ts"])
get_file_freshConfirm a file exists in the indexed snapshot. MUST be called before re-editing a file you already modified this session.
get_file_fresh(project_id, filepath="src/auth.ts")
searchHybrid search across docs, decisions, and code vectors. Large results are automatically archived. Use expand() to retrieve.
search(project_id, query="how is auth handled", kinds=["code","docs"])
expandRetrieve an archived tool result by its key. Archives expire after 24 hours.
expand(key="abc123")
set_contextignoreSet per-project .contextignore patterns. Files matching patterns are excluded from find_files results and briefings.
set_contextignore(project_id, ["*.lock", "dist/**"])
get_contextignoreReturn the active .contextignore patterns for the given project.
get_contextignore(project_id)
get_context_qualityCompute the 7-signal context quality score: context_fill, stale_reads, duplicates, agent_efficiency, bloated_results, compaction_depth, decision_density.
get_context_quality(task_id)
process_dataExecute code in a sandboxed subprocess. Only stdout enters the agent context. Use for counting, filtering, parsing without flooding context.
process_data(code="print(len(open('file.txt').readlines()))", language="python")snapshot_sessionBuild and persist a pre-compaction session snapshot for a task. Call when context window is getting full (~20+ tool calls).
snapshot_session(task_id, note="Halfway through auth refactor")
rememberUnified write for project memory. kind: decision, session, learning, or doc. Stored in Neo4j + Qdrant for future briefings.
remember(project_id, kind="decision", payload={"title": "Use JWT", "decision": "..."})list_projectsList all projects accessible to the current user (filtered by org). Returns project IDs, names, and status. Use this to discover project_id at the start of a session.
list_projects()
index_statusPoll the current indexing status and last_graph_indexed_at timestamp for a project. Use after sync() to confirm when re-indexing is complete.
index_status(project_id)
workspace_initFirst-time session setup. Auto-detects or creates a CodeOrch project and returns workspace files (CLAUDE.md, AGENTS.md, etc.).
workspace_init(cwd="D:/my-project")
initialize_projectFirst-time project bootstrap: create project in the platform using the project_name. Idempotent.
initialize_project(project_name="my-app")
syncPull a GitHub branch and re-index. GitHub MUST be connected. Returns immediately; indexing runs in background.
sync(project_id, branch="main")
connector_healthCheck health of all backend connectors: LLM (Groq), PostgreSQL, Redis, Qdrant. Returns per-connector ok/error + latency.
connector_health()
reflectProject health analysis. focus: all, insights, next, stale, or summary. Returns insights, stale items, and suggested next tasks.
reflect(project_id, focus="insights")
delete_deprecated_docsDelete stale knowledge-base documents, decisions, and briefing vectors. Always dry_run=True first.
delete_deprecated_docs(project_id, older_than_days=30, dry_run=True)
Connect your repo and let your agent call these tools in under 2 minutes.
Start Free