Reference
MCP Tools
The Driver MCP server exposes 14 tools. Your AI agent calls these tools automatically based on the tasks it's working on.
Tip: You do not call these tools directly. Ask your agent a question in natural language, and it selects the right tool. This reference helps you understand what is available and how Driver gives your agent the right context.
gather_task_context
The primary Driver tool. Runs a specialized context agent server-side that reads architecture docs, navigates code structure, and synthesizes high-signal context tailored to your specific task — saving your context window. Use BEFORE planning, implementing, debugging, or refactoring.
Typically takes 1-3 minutes. The wait is worth it: this tool does work that would take your agent longer to do iteratively. The result is dense, high-SNR context from pre-computed exhaustive documentation — saving tokens compared to any iterative discovery that the agent would do without Driver.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
task_description | string | Yes | Description of the task you need context for. Include what you're trying to accomplish, relevant scope, constraints, and any context you already have. More detail produces more targeted results. |
codebases | array | Yes | List of codebase targets. Each entry has a codebase_name (from get_codebase_names) and an optional branch_name. Pass an empty array only if scope cannot be determined. |
When to use
Start here for any non-trivial task. Call get_codebase_names first to resolve the codebase name, then provide a rich task description. This tool replaces iterative exploration for planning and implementation tasks.
Example prompt
"I need to add rate limiting to the API layer in my-backend. Gather context for me."
get_codebase_names
Returns all codebases available in your Driver organization. Most other Driver tools require a codebase name — call this first to discover valid names.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
include_metadata | boolean | No | When true, returns descriptions and type tags alongside codebase names. Useful for assessing which codebases are relevant to a task. Defaults to false. |
When to use
Call this at the start of any session before using other tools. Pass include_metadata=true when you need to identify which codebases are relevant to a multi-repo task.
Example prompt
"What codebases are available in Driver?"
get_branches
Returns all branches for a codebase that have completed documentation, with an indicator for the default branch.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. Must match a value from get_codebase_names. |
When to use
Before querying documentation for a specific branch. Use the returned branch names in the optional branch_name parameter of other tools.
Example prompt
"What branches does Driver have documentation for in my-backend?"
get_architecture_overview
Returns a comprehensive architecture document that covers system structure, key components, design patterns, and relationships.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. Must match a value from get_codebase_names. |
branch_name | string | No | Branch to query. If omitted, the default branch is used. Use get_branches to discover available branches. |
When to use
Start of any task that requires broad codebase understanding. This is the single most valuable tool for grounding the agent in system-level context.
Example prompt
"Show me the architecture of my-backend"
get_llm_onboarding_guide
Returns a guide optimized for AI agents. It covers navigation tips, key entry points, coding conventions, and cross-references to important files.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. Must match a value from get_codebase_names. |
branch_name | string | No | Branch to query. If omitted, the default branch is used. Use get_branches to discover available branches. |
When to use
Start of a session to build broad codebase familiarity. Pairs well with get_architecture_overview for comprehensive orientation.
Example prompt
"Get oriented with my-backend"
get_changelog
Returns a high-level development timeline organized by year and month.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. Must match a value from get_codebase_names. |
branch_name | string | No | Branch to query. If omitted, the default branch is used. Use get_branches to discover available branches. |
When to use
Understanding development history, major feature introductions, and architectural decisions over time. Use to identify a relevant month before drilling in with get_detailed_changelog.
Example prompt
"What has changed in my-backend recently?"
get_detailed_changelog
Returns detailed commit-level information for a specific month.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. |
year | string | Yes | The year to query (e.g., "2026"). |
month | string | Yes | The month to query (e.g., "01" for January). |
branch_name | string | No | Branch to query. If omitted, the default branch is used. Use get_branches to discover available branches. |
When to use
Deep-diving into why specific changes were made during a given month. Call get_changelog first to identify the relevant time period.
Example prompt
"What happened in my-backend in January 2026?"
get_code_map
Explores directory structure and returns every file and directory annotated with a pre-computed description of its purpose and contents. Supports adjustable depth and pagination for large trees.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. |
relative_directory_path | string | No | Directory to explore, relative to the codebase root (e.g., "src", "src/utils"). Use empty string for root. Defaults to root. |
max_depth | integer | No | How many levels deep to traverse (0 = directory only, 1 = immediate children, 2 = grandchildren). Defaults to 2. |
start_node | integer | No | Node index to start from for pagination. Use 0 for the first call. The response includes next_node and nodes_remaining for subsequent pages. |
max_nodes | integer | No | Maximum number of nodes to return. Use 0 (no limit) for the first call. |
branch_name | string | No | Branch to query. If omitted, the default branch is used. Use get_branches to discover available branches. |
When to use
Finding relevant files, understanding directory structure, and exploring unfamiliar areas of a codebase. Use with get_file_documentation to drill into specific files.
Example prompt
"What files handle authentication in my-backend?"
get_file_documentation
Returns symbol-level documentation for a specific file: functions, classes, interfaces, imports, and their descriptions — generated from static analysis. Supports pagination for large files.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. |
relative_file_path | string | Yes | Path to the file, relative to the codebase root (e.g., "src/auth/middleware.ts"). |
start_line | integer | No | Line number to start from. Use 1 for the first call. Defaults to 1. |
max_lines | integer | No | Maximum number of lines to return. Use 0 (no limit) for the first call. The response includes next_line and lines_remaining for pagination. |
branch_name | string | No | Branch to query. If omitted, the default branch is used. Use get_branches to discover available branches. |
When to use
Understanding the signatures, types, and purpose of symbols in a specific file. Use after get_code_map identifies the relevant file path. Prefer this over get_source_file when you need structured symbol information rather than raw implementation logic.
Example prompt
"Show me the documentation for src/auth/middleware.ts"
get_source_file
Returns the actual source code of a file with line numbers. Use when you need to see exact implementation logic, control flow, or full code context beyond what symbol-level documentation provides. Supports pagination for large files.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | Yes | Name of the codebase. |
relative_file_path | string | Yes | Path to the file, relative to the codebase root (e.g., "src/auth/middleware.ts"). Do not include the codebase root directory name. |
start_line | integer | No | Line number to start from. Use 1 for the first call. Defaults to 1. |
max_lines | integer | No | Maximum number of lines to return. Use 0 (no limit) for the first call. The response includes next_line and lines_remaining for pagination. |
branch_name | string | No | Branch to query. If omitted, the default branch is used. Use get_branches to discover available branches. |
When to use
When you need to read the exact implementation of a file — control flow, inline logic, or precise line references. Complements get_file_documentation, which gives structured symbol-level information. If you have local access to the codebase, prefer native file reading tools instead.
Example prompt
"Show me the source code for src/auth/middleware.ts"
get_registered_content_list
Lists all registered content documents accessible to you, including both static pages and auto-updating codebase documents. Use this to discover available content before fetching it.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
codebase_name | string | No | Filter to content associated with this codebase. |
auto_update_only | boolean | No | If true, only return auto-updating documents. If false, only return static pages. Omit to return both. |
tags | array | No | Filter to content with any of these tag names. |
org_only | boolean | No | If true, only return org-scoped documents (pages with no codebase associations). |
branch_name | string | No | Filter to content for a specific branch. If omitted, the default branch is used. |
When to use
Before calling fetch_registered_content to discover what content names are available. Also useful for auditing what documents have been registered to your organization.
Example prompt
"What registered content is available for my-backend?"
fetch_registered_content
Retrieves the full content of a registered document by name, including its markdown content and metadata.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
content_name | string | Yes | The name of the registered content document. Use get_registered_content_list to discover available names. |
branch_name | string | No | Branch to query. If omitted, the default branch is used. |
When to use
Reading a specific registered document by name. Call get_registered_content_list first to discover available content names.
Example prompt
"Fetch the API design guidelines document"
register_content
Registers a new content document. Supports two types:
- Static content (
auto_update=false) — a markdown document stored as a page. Can be associated with zero or more codebases. Documents without codebase associations are org-scoped and visible to all members of the organization. - Auto-updating content (
auto_update=true) — a document that is automatically updated when the associated codebase changes. Requires exactly one codebase. Provide adescription_or_goalthat guides updates.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
content_name | string | Yes | A unique name for this content document. |
content | string | Yes | The markdown content of the document. For auto-updating content, this is the initial content. |
description_or_goal | string | Yes | A description of the document's purpose. For auto-updating content, this guides the generation of updated content. |
auto_update | boolean | Yes | If true, the document auto-updates when the codebase changes. Requires exactly one codebase in codebase_names. |
codebase_names | array | No | Codebases to associate with this content. Required (exactly one) for auto_update=true. For static content, omit for org-scoped content (requires org admin access). |
tags | array | No | Tags to apply to the document. Static pages only; ignored for auto-updating content. |
branch_name | string | No | Branch to associate content with. If omitted, the default branch is used. |
When to use
Adding new documentation — design decisions, runbooks, API guidelines, or any content you want your agent to access in future sessions. Use auto-updating content for documents that should stay current with codebase changes.
Example prompt
"Register our API design guidelines as a document in Driver"
remove_registered_content
Permanently deletes a registered content document by name. This action cannot be undone. The agent will ask for confirmation before proceeding.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
content_name | string | Yes | The name of the registered content document to delete. Use get_registered_content_list to confirm the exact name before deleting. |
When to use
Removing outdated or incorrect registered documents. Use get_registered_content_list first to confirm the exact content name.
Example prompt
"Remove the old API guidelines document from Driver"