Use this page as a fast reference for MCP tool contracts and authorization expectations.
Project management
| Tool | Key inputs | Mutating | Notes |
|---|
list_projects | none | No | Lists indexed projects |
get_project | project_id | No | Returns metadata summary |
refresh_project_index | project_id? | Yes | Rebuilds index for one/all projects |
summarize_project | project_id | No | High-level project summary |
| Tool | Key inputs | Mutating | Safety controls |
|---|
list_directory | project_id, path | No | Root boundary checks |
read_file | project_id, path, start_line?, end_line? | No | Max file size limit |
read_multiple_files | project_id, paths[] | No | Per-file size validation |
create_file | project_id, path, content, overwrite? | Yes | Protected path checks |
write_file | project_id, path, content | Yes | Protected path checks |
replace_in_file | project_id, path, find, replace, replace_all? | Yes | Protected path checks |
apply_patch | project_id, path, patch?, structured_edits?, dry_run? | Yes | Hunk conflict reporting, dry run |
delete_file | project_id, path, recursive?, confirm | Yes | Requires confirm=true |
move_file | project_id, source_path, target_path | Yes | Source/target boundary checks |
Search and analysis
| Tool | Key inputs | Mutating | Notes |
|---|
search_files | project_id, query | No | Path/name search |
grep_content | project_id, pattern, include_glob?, exclude_glob? | No | Line snippet matches |
get_project_tree | project_id, max_depth? | No | Normalized tree output |
| Tool | Key inputs | Mutating | Safety controls |
|---|
git_status | project_id | No | Repo existence validation |
git_diff | project_id, staged? | No | Structured stdout/stderr |
git_branch_list | project_id | No | Structured stdout/stderr |
git_checkout_new_branch | project_id, branch | Yes | Per-project lock |
git_checkout_branch | project_id, branch | Yes | Per-project lock |
git_pull | project_id | Yes | Per-project lock |
git_add | project_id, paths[] | Yes | Per-project lock |
git_restore | project_id, paths[], staged?, confirm | Yes | Requires confirm=true |
git_commit | project_id, message | Yes | Commit message validation |
git_push | project_id, remote?, branch?, set_upstream? | Yes | Structured stdout/stderr |
git_log | project_id, limit? | No | Structured stdout/stderr |
git_show | project_id, ref? | No | Structured stdout/stderr |
git_create_tag | project_id, tag, message? | Yes | Per-project lock |
| Tool | Key inputs | Mutating | Safety controls |
|---|
run_build | project_id | Yes | Allowlisted command runner |
run_test | project_id | Yes | Allowlisted command runner |
run_lint | project_id | Yes | Allowlisted command runner |
run_command_safe | project_id, command, args[], cwd?, timeout_ms? | Yes | Command/args policy, timeout, output truncation |
Role model (HTTP mode)
| Role | Access |
|---|
viewer | Read-oriented operations |
editor | Viewer + non-destructive writes/build/test workflows |
admin | Full operation set |
In HTTP deployments with auth enabled, role checks run before each tool operation. In STDIO mode, local process trust model applies unless additional wrappers are used.