Skip to main content
Glama

extract_variable

Extract a selected expression from Java source code into a local variable. Specify expression location with zero-based positions to receive text edits that create the variable and replace the expression.

Instructions

Extract an expression at the given position into a local variable.

Returns the text edits needed to extract the expression. The caller should apply these edits to perform the extraction.

USAGE: Select expression by providing start and end positions OUTPUT: Variable declaration and replacement edits

IMPORTANT: Uses ZERO-BASED coordinates.

Requires load_project to be called first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endLineYesZero-based end line of expression
startColumnYesZero-based start column of expression
filePathYesPath to source file
endColumnYesZero-based end column of expression
variableNameNoName for the new variable (optional, will suggest if not provided)
startLineYesZero-based start line of expression
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides key behavioral details: the tool returns text edits rather than performing extraction directly, and coordinates are zero-based. This informs the agent about the tool's safe but indirect nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with only essential information: purpose, return type, usage hint, coordinate emphasis, and a prerequisite. Each sentence adds value and it's well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that returns text edits with no output schema, the description explains the output adequately. It covers the prerequisite, coordinate system, and return type. Minor gap: does not specify the format of edits or potential errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter has a description. The tool description adds minimal extra meaning beyond emphasizing zero-based coordinates and noting variableName is optional. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool extracts an expression into a local variable, with specific verb and resource. It distinguishes from siblings like extract_constant and extract_method by focusing on 'expression' and 'local variable'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a prerequisite (load_project) and basic usage (select expression via positions), but does not provide guidance on when to use this tool vs. other extract tools (constant, method, interface) or alternatives like inline_variable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pzalutski-pixel/javalens-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server