jump
Resolve visible symbols to authoritative definitions.
Use jump to follow source identifiers to definitions in the workspace, installed dependencies, or the standard library. Because resolution starts from an occurrence in your source, a dependency jump lands in the version your project actually installs — the one your lockfile selected, not the latest release and not a remembered API.
Use when
- You have a visible source occurrence and need its definition.
- You need an API outline or implementation for a resolved target.
Do not use when
- You know only a symbol name; use
grep_definition. - You need the body of an already discovered handle; use
extract.
Request
{"file":"/workspace/project/src/lib.rs","symbols":[["UserService",42],["McpError",67],["spawn_session",104]],"output_mode":"api"}Batch related identifiers from the same file: each extra round trip costs a full agent turn, and one jump call resolves every symbol in the batch even when the definitions land in different files.
Parameters
| Field | Required | Default / bounds |
|---|---|---|
file | source form | Path; file_path is accepted as an alias. |
symbols | source form | Entries are [symbol_name, line]; line is a 1-based integer. |
handles | handle form | Registered handles; mutually exclusive with source fields. |
output_mode | no | api; union: api, implementation. |
show_implementations | no | false; enabling can be expensive for widely used traits/types. |
workspace_root | no | Source form; only needed when multiple workspaces are active. |
What it returns
Resolved definitions grouped by destination. api returns signatures, hierarchy, and declarations; implementation selects Code, falling back to Full, with inline type annotations. Missing outlines or code retain exact LSP-range fallbacks. Optional implementor/attached-implementation outlines are included when requested.
Example
Real output — jumping McpError from project code lands in the rmcp crate's source, in the local registry:
## ~/.cargo/registry/.../rmcp-3.1.2/src/model.rs
pub struct ErrorData {
/// The error type that occurred (using standard JSON-RPC error codes)
pub code: ErrorCode,
/// A short description of the error. The message SHOULD be limited to a concise single sentence.
pub message: Cow<'static, str>,
/// Additional information about the error.
pub data: Option<Value>,
}The real fields of the version the lockfile resolved, read from its source — not from documentation and not from training data.
Common mistakes
- Using a guessed line or symbol spelling that is not visible at that location.
- Requesting
implementationafterapiwhen one implementation request would suffice. - Enabling
show_implementationsfor broad traits without needing the complete surface.
Related tools
grep_definitionfinds definitions when no source occurrence is visible.extractreads the body of an already resolved definition by handle.hoverreturns the signature and documentation without navigating away.show_usagewalks the opposite direction: to consumers instead of the definition.