Skip to main content
Glama

lean_declaration_file

Read-onlyIdempotent

Retrieve the declaration source of a symbol in a Lean file, with optional context lines or the full file. Ideal for analyzing theorem definitions and proofs.

Instructions

Get the source of a symbol's declaration (declaration slice + context).

Set full_file=True for the whole file (can be very large).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolYesSymbol (case sensitive, must be in file)
file_pathYesAbsolute or project-root-relative path to Lean file
full_fileNoReturn the entire declaration file (large!)
context_linesNoLines of context around the declaration

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesDeclaration source (sliced unless full_file=True)
end_lineNoLast line of the returned slice (1-indexed)
file_pathYesPath to declaration file
start_lineNoFirst line of the returned slice (1-indexed)
total_linesNoTotal lines in the declaration file
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds that full_file returns the entire file and can be very large, which is useful behavioral context. However, it does not mention error cases (e.g., symbol not found) or performance implications beyond size.

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?

Two sentences, front-loaded with the core purpose, and the second sentence addresses a key option. No wasted words.

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?

Given an output schema exists, the description does not need to detail return values. It adequately covers the main functionality and the key parameter option. Could mention the output format briefly, but not necessary.

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% with descriptions for all 4 parameters. The description adds minimal extra meaning beyond the schema, only reinforcing the size warning for full_file. Baseline 3 is appropriate as schema handles most semantic load.

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 retrieves the source of a symbol's declaration, specifying 'declaration slice + context'. This distinctively separates it from sibling tools like lean_hover_info or lean_goal, which serve different purposes.

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 implicitly suggests using full_file for whole file context but does not explicitly guide when to prefer this tool over siblings like lean_file_outline or lean_hover_info. No when-not-to-use or alternative references are provided.

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/oOo0oOo/lean-lsp-mcp'

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