Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JADE_JSONNoSet to '1' to emit machine-readable JSON instead of plain text.0
JADE_STATE_DIRNoKeep the telemetry log outside the workspace, one subdirectory per workspace.
JADE_TELEMETRYNoSet to '0' to disable local usage recording entirely.1
JADE_UPDATE_CHECKNoSet to '0' to turn off the daily check for a newer release.1
JADE_METALS_IMPORTNoSet to '1' to let metals import an sbt build so Scala edits get diagnostics. Runs sbt; creates .bloop/ and .metals/.0
JADE_WORKSPACE_ROOTNoRepository to operate on. Overridden by --root. Defaults to the working directory if neither is set.

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

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
jade.read_rangeA

Read a file verbatim, whole or by line range — the replacement for cat and sed -n. Omit both line numbers to read the whole file, which is how to read go.mod, a Makefile, or any JSON/YAML/TOML config that has no symbols to address. An end line past the end of the file reads to the end. A dependency's source reads as dep:/, read-only. Several ranges, in one file or many, go in one call: {"ranges": [{"path": "a.go", "lines": "280-400"}, {"path": "b.go", "lines": "700-760"}]}.

jade.findA

Locate declarations by name AND return their source in one call — the fused search-and-read that replaces grep -n 'func X' -A 30. Exact name matches win over substring ones. Use this instead of outline and read_range when you have not located the symbol yet. Pass queries to find several names in one call.

jade.insertA

Add text to a file without replacing anything — a new function, a new section, an extra case. Use this for additive work instead of rewriting a surrounding symbol. With no anchor it appends to the end of the file; with one it places the text before or after that anchor, refusing if the anchor is absent or matches more than once. Several additions or edits at once belong in apply.

jade.replace_textA

Replace an exact, unique string in a file. An anchor string does not move when the lines around it do, which is why follow-up edits address text rather than line numbers. Refuses when the anchor is absent or matches more than once — extend it with surrounding context to disambiguate. For several sites, use apply: atomic, one validation, no diagnostics from half-done intermediate states.

jade.create_fileA

Create a brand-new file, and any missing parent directories. Refuses to overwrite an existing one — use replace_text or apply to modify existing content.

jade.applyA

Apply several edits as one atomic unit: all land or none do. Ops: replace_text, replace_range, replace_symbol, delete_symbol, insert. Anchors are validated before anything is written, touched files are formatted, and one validation runs at the end instead of one per edit. Prefer this over several single edits when changing more than one site.

jade.delete_fileA

Delete a file, not a directory; fails if it does not exist. Reverting to an earlier checkpoint recreates it. To edit content use replace_text or apply.

jade.checkA

Run a validation command on demand and wait for the verdict: kind build (default), typecheck or tests. Uses the repository's own Makefile target, npm script or cargo command when present. Waits by default and returns pass/fail directly. Every result names the command that ran; dryRun names it without running anything. In a repository with several projects, pass target to check one; with no command at the root, the answer lists the projects.

jade.grepA

Literal or regex text search across the workspace, returning path:line matches with optional trailing context — the replacement for grep -rn. Use this for anything that is not a declaration name: struct fields, string literals, error messages, config keys, or any search needing a path filter. Use find instead when you want a declaration and its body. Pass queries to search several patterns in one call.

jade.run_commandA

Run a command the repository declares, by name, and wait for the verdict: pass/fail with the decisive output. Use it instead of a shell for anything check does not cover. No name lists the declared commands. Nothing fits? declare_command it once.

jade.declare_commandA

Declare a named command in .jade/commands.json — a reproduction, a benchmark — to run with run_command in this and later sessions; the file is reviewed like any change. Declaring an existing name replaces it; do not redeclare one just to run it.

jade.run_testsA

Rerun a failing test, a test file, or changed files' tests; waits for pass/fail and the first failure. Full suite: check kind tests.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct operation: file creation/deletion/reading, text replacement/insertion/atomic batch edits, declaration lookup vs. general grep, and command execution vs. test running. Even closely related tools like replace_text and insert are clearly separated by their use cases and the apply tool explicitly aggregates them. No ambiguity among the 12 tools.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_pattern (delete_file, read_range, find, create_file, grep, declare_command, run_tests, apply, check, insert, replace_text, run_command). While some verbs lack explicit noun objects, the pattern is uniform and predictable across the entire set.

Tool Count5/5

With 12 tools, the server is well-scoped for its purpose as a code editing and validation assistant. Each tool covers a necessary operation without redundancy, fitting comfortably within the typical 3-15 range for a focused toolset.

Completeness4/5

The tool surface covers the core lifecycle: file creation, deletion, reading, editing (replace/insert/apply), searching (grep/find), and command execution (check/run_tests/run_command/declare_command). Minor gaps exist, such as no explicit file listing or rename operation, but these are likely out of scope and do not create workflow dead ends for typical coding tasks.

Maintenance

ActivityMaintained
ResponsivenessResponsive