Skip to main content
Glama
davidfstr
by davidfstr

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
rename_symbolA

Renames a symbol (function, variable, class, etc.) and all its references across the workspace.

Uses text-based matching to locate the symbol—no coordinate counting required.

Example: filePath: "/path/to/file.py" oldString: "def helper_function(" newString: "def _helper_function("

This will rename helper_function to _helper_function everywhere it's referenced.
move_string_in_fileA

Moves a continuous range of lines from one location to another within a file (or between files).

Specify cut boundaries and paste location using substring matching with an optional ⬥ marker.

Example 1: Move a definition before another definition: cutStartAt: "class MyClass:" (start at this line) cutEndAt: "class NextClass:" (end BEFORE this line) pasteAt: "\n⬥def target_function():" (paste adjacent to the \n)

Example 2: Move a paragraph after another paragraph: cutStartAt: "# Close the database" (start at this line) cutEndAt: "db.close()\n⬥" (end after the final paragraph line) pasteAt: "db.open()\n⬥" (paste after a different paragraph's last line)

⬥ in cut boundaries anywhere in a line marks the line to cut when the cut context contains multiple lines. No ⬥ is needed if cut context is within a single line only.

⬥ in a paste boundary must be adjacent to a \n or the start/end of the file. All lines will be pasted before/after the nearby \n or file boundary.

Whitespace at the end of lines is ignored when matching substrings.

After editing reports on blank lines around the cut and paste boundaries, simplifying clean up of nearby line spacing with small subsequent edits.

Does not alter indentation. Use indent_dedent to adjust indentation after moving if needed.

indent_dedentA

Indents or unindents a range of lines in a file.

Specify the range using substring matching with a ⬥ marker. The ⬥ identifies which line is the boundary — the full line containing the ⬥ is included in the range.

Common pattern — indent a block, then wrap it: 1. indent_dedent(indentStartAt="# Create home URL\n⬥", ..., indentDelta=1) 2. replace_string_in_file to insert "if True:" before the indented block

⬥ in boundaries anywhere on a line marks the line to indent when the context contains multiple lines. No ⬥ is needed if the context is within a single line only.

Whitespace at the end of lines is ignored when matching substrings.

Empty lines within the range are left unchanged (no whitespace added). Non-empty lines (including whitespace-only lines) are indented/unindented.

outline_fileA

Returns a high-level outline of a file, similar to VS Code's folded view.

Shows only structurally significant lines:

  • class and def definitions (at any indentation level)

  • Section separator comments (# === ... or # --- ... prefix, at any indentation)

  • Section name comments that immediately follow a pure separator line

Output format: "LINE_NUMBER:LINE_CONTENT" (1-indexed), one per line. Useful for understanding the structure of a large file before reading it in full.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/davidfstr/revise-mcp'

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