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

NameTypeRequiredDescription
task_descriptionstringYesDescription 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.
codebasesarrayYesList 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

NameTypeRequiredDescription
include_metadatabooleanNoWhen 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

NameTypeRequiredDescription
codebase_namestringYesName 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

NameTypeRequiredDescription
codebase_namestringYesName of the codebase. Must match a value from get_codebase_names.
branch_namestringNoBranch 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

NameTypeRequiredDescription
codebase_namestringYesName of the codebase. Must match a value from get_codebase_names.
branch_namestringNoBranch 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

NameTypeRequiredDescription
codebase_namestringYesName of the codebase. Must match a value from get_codebase_names.
branch_namestringNoBranch 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

NameTypeRequiredDescription
codebase_namestringYesName of the codebase.
yearstringYesThe year to query (e.g., "2026").
monthstringYesThe month to query (e.g., "01" for January).
branch_namestringNoBranch 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

NameTypeRequiredDescription
codebase_namestringYesName of the codebase.
relative_directory_pathstringNoDirectory to explore, relative to the codebase root (e.g., "src", "src/utils"). Use empty string for root. Defaults to root.
max_depthintegerNoHow many levels deep to traverse (0 = directory only, 1 = immediate children, 2 = grandchildren). Defaults to 2.
start_nodeintegerNoNode index to start from for pagination. Use 0 for the first call. The response includes next_node and nodes_remaining for subsequent pages.
max_nodesintegerNoMaximum number of nodes to return. Use 0 (no limit) for the first call.
branch_namestringNoBranch 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

NameTypeRequiredDescription
codebase_namestringYesName of the codebase.
relative_file_pathstringYesPath to the file, relative to the codebase root (e.g., "src/auth/middleware.ts").
start_lineintegerNoLine number to start from. Use 1 for the first call. Defaults to 1.
max_linesintegerNoMaximum number of lines to return. Use 0 (no limit) for the first call. The response includes next_line and lines_remaining for pagination.
branch_namestringNoBranch 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

NameTypeRequiredDescription
codebase_namestringYesName of the codebase.
relative_file_pathstringYesPath to the file, relative to the codebase root (e.g., "src/auth/middleware.ts"). Do not include the codebase root directory name.
start_lineintegerNoLine number to start from. Use 1 for the first call. Defaults to 1.
max_linesintegerNoMaximum number of lines to return. Use 0 (no limit) for the first call. The response includes next_line and lines_remaining for pagination.
branch_namestringNoBranch 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

NameTypeRequiredDescription
codebase_namestringNoFilter to content associated with this codebase.
auto_update_onlybooleanNoIf true, only return auto-updating documents. If false, only return static pages. Omit to return both.
tagsarrayNoFilter to content with any of these tag names.
org_onlybooleanNoIf true, only return org-scoped documents (pages with no codebase associations).
branch_namestringNoFilter 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

NameTypeRequiredDescription
content_namestringYesThe name of the registered content document. Use get_registered_content_list to discover available names.
branch_namestringNoBranch 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 a description_or_goal that guides updates.

Parameters

NameTypeRequiredDescription
content_namestringYesA unique name for this content document.
contentstringYesThe markdown content of the document. For auto-updating content, this is the initial content.
description_or_goalstringYesA description of the document's purpose. For auto-updating content, this guides the generation of updated content.
auto_updatebooleanYesIf true, the document auto-updates when the codebase changes. Requires exactly one codebase in codebase_names.
codebase_namesarrayNoCodebases to associate with this content. Required (exactly one) for auto_update=true. For static content, omit for org-scoped content (requires org admin access).
tagsarrayNoTags to apply to the document. Static pages only; ignored for auto-updating content.
branch_namestringNoBranch 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

NameTypeRequiredDescription
content_namestringYesThe 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"