Skip to main content
Glama

Insert Before Symbol

insert_before_symbol
Destructive

Inserts content before a specific symbol definition in code files, enabling addition of classes, functions, imports, or variables at precise locations.

Instructions

Inserts the given content before the beginning of the definition of the given symbol (via the symbol's location). A typical use case is to insert a new class, function, method, field or variable assignment; or a new import statement before the first symbol in the file.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
name_pathYesName path of the symbol before which to insert content (definitions in the `find_symbol` tool apply).
relative_pathYesThe relative path to the file containing the symbol.
bodyYesThe body/content to be inserted before the line in which the referenced symbol is defined.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, which the description aligns with by describing an insertion operation that modifies files. The description adds valuable context beyond annotations by specifying that insertion occurs 'before the beginning of the definition' and via 'the symbol's location', and mentions typical use cases, which helps the agent understand the tool's behavior in practical scenarios.

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 front-loaded with the core purpose in the first sentence, followed by a second sentence providing typical use cases. Both sentences earn their place by clarifying scope and practical applications without redundancy or unnecessary details.

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

Completeness5/5

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

Given the tool's moderate complexity (file modification with symbol-based positioning), the description provides sufficient context alongside annotations (destructive, not read-only) and a complete input schema. With an output schema present, the description does not need to explain return values, making it complete for agent usage.

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 description coverage is 100%, providing clear documentation for all three parameters (name_path, relative_path, body). The description adds minimal semantic value beyond the schema, only implying that 'body' is content to insert and referencing 'find_symbol' for name_path definitions. This meets the baseline of 3 when schema coverage is high.

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 verb ('inserts') and resource ('content before the beginning of the definition of the given symbol'), with specific examples of typical use cases (new class, function, method, field, variable assignment, or import statement). It distinguishes from sibling 'insert_after_symbol' by specifying 'before' rather than 'after'.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('to insert a new class, function, method, field or variable assignment; or a new import statement before the first symbol in the file'), but does not explicitly state when not to use it or name alternatives beyond the implied sibling 'insert_after_symbol'. It lacks explicit exclusions or prerequisites.

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/oraios/serena'

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