Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STATS_DB_PATHNoPath where the DuckDB database for statistics will be storedtext_editor_stats.duckdb
PROTECTED_PATHSNoComma-separated list of file patterns or absolute paths that will be denied access
MAX_SELECT_LINESNoMaximum number of lines that can be edited in a single operation50
DUCKDB_USAGE_STATSNoControls whether usage statistics are collected in a DuckDB database0
ENABLE_JS_SYNTAX_CHECKNoEnable/disable JavaScript and JSX syntax checking1
FAIL_ON_JS_SYNTAX_ERRORNoWhen enabled, JavaScript/JSX syntax errors will automatically cancel the overwrite operation0
FAIL_ON_PYTHON_SYNTAX_ERRORNoWhen enabled, Python syntax errors will automatically cancel the overwrite operation1

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
set_fileA

Set the current file to work with.

This is always the first step in the workflow. You must set a file before you can use other tools like read, select etc.

skimA

Read text from the current file, truncated to the first SKIM_MAX_LINES lines.

Returns: dict: lines, total_lines, max_select_lines

readA

Read lines from the current file from start line to end line, returning them in a dictionary like {"lines":[[1,"text on first line"],[2,"text on second line"]]}. This makes it easier to find the precise lines to select for editing.

Args: start (int, optional): Start line number end (int, optional): End line number

Returns: dict: lines, start_line, end_line

selectC

Select lines from for subsequent overwrite operation.

Args: start (int): Start line number (1-based) end (int): End line number (1-based)

Returns: dict: status, lines, start, end, id, line_count, message

overwriteB

Overwrite the selected lines with new text. Amount of new lines can differ from the original selection

Args: new_lines (dict): Example: {"lines":["line one", "second line"]}

Returns: dict: Diff preview showing the proposed changes, and any syntax errors for JS or Python

confirmC

Confirm action

cancelD

Cancel action

delete_fileC

Delete current file

new_fileA

Creates a new file.

After creating new file, the first line is automatically selected for editing. Automatically creates parent directories if they don't exist.

Args: filepath (str): Path of the new file Returns: dict: Status message with selection info

find_lineA

Find lines that match provided text in the current file.

Args: search_text (str): Text to search for in the file

Returns: dict: Matching lines with their line numbers, and full text

listdirD–
find_functionA

Find a function or method definition in a Python or JS/JSX file. Uses AST parsers.

Args: function_name (str): Name of the function or method to find

Returns: dict: function lines with their line numbers, start_line, and end_line

set_python_pathB

Set it before running tests so the project is correctly recognized

run_testsB

Run pytest tests using the specified Python virtual environment.

Args: test_path (str, optional): Directory or file path containing tests to run test_name (str, optional): Specific test function/method to run verbose (bool, optional): Run tests in verbose mode collect_only (bool, optional): Only collect tests without executing them

Returns: dict: Test execution results including returncode, output, and execution time

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.8/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have distinct purposes, but 'cancel' and 'confirm' are ambiguous without context, and 'find_function' and 'find_line' could be confused as both search within files. The core editing tools like 'read', 'select', and 'overwrite' are clearly differentiated, supporting a coherent workflow.

Naming Consistency3/5

The naming is mixed with some consistency: verbs like 'find', 'set', and 'run' are used, but patterns vary (e.g., 'listdir' vs. 'new_file', 'overwrite' vs. 'select'). There's no uniform verb_noun structure, making it readable but not predictable across all tools.

Tool Count5/5

With 14 tools, this is well-scoped for an editor server, covering file operations, editing, searching, and testing. Each tool serves a specific role in the workflow, and the count is neither too sparse nor overwhelming for the domain.

Completeness4/5

The toolset provides strong coverage for file editing and testing workflows, including create, read, update, and delete operations. Minor gaps exist, such as no explicit 'save' or 'undo' tools, but agents can work around these using existing tools like 'overwrite' and workflow steps.

Maintenance

ActivityInactive
ResponsivenessNo issues