Skip to main content
Glama
ufo5260987423

scheme-langserver-bridge

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SCHEME_BRIDGE_LOGLEVELNoBridge log level: DEBUG / INFO / WARNING / ERRORINFO
SCHEME_LANGSERVER_PATHNoPath to the scheme-langserver executableauto-discover
SCHEME_BRIDGE_REPORT_DIRNoDefault directory for debug crash reportscurrent working dir
SCHEME_LANGSERVER_TIMEOUTNoRequest timeout in seconds30.0
SCHEME_LANGSERVER_LOG_PATHNoLog file path.scheme-langserver.log
SCHEME_LANGSERVER_CACHE_PATHNoDirectory for workspace FASL cache.scheme-langserver-cache
SCHEME_LANGSERVER_AUTO_UPDATENoAllow auto-download when no executable is foundtrue
SCHEME_LANGSERVER_MULTI_THREADNoMulti-threading enable / disableenable
SCHEME_LANGSERVER_MAX_MEMORY_MBNoSub-process memory limit in MB2048
SCHEME_LANGSERVER_TYPE_INFERENCENoType inference enable / disableenable
SCHEME_LANGSERVER_MAX_CPU_SECONDSNoSub-process CPU time limit in seconds180
SCHEME_LANGSERVER_TOP_ENVIRONMENTNoTop-level environment: R6RS / R7RS / s7 / goldfish / fluentR6RS
SCHEME_LANGSERVER_COMPLETION_TIMEOUTNoCompletion request timeout in seconds30.0

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
lsp_initializeA

Initialize the scheme-langserver connection.

Must be called before any other LSP tool. Provides the project root directory so the language server can resolve imports and analyze the codebase.

Args: root_dir: Project root directory. langserver_path: Optional path to a specific scheme-langserver executable. If provided, it overrides environment variables and project config. This is useful for switching between scheme-langserver builds at runtime, e.g. when debugging a local development build.

lsp_export_debug_reportA

Export a debug report for scheme-langserver upstream issue reporting.

The report contains the LSP traffic log, open project files, environment info, and server stderr. Review before sharing publicly — it includes source code.

When to use: scheme-langserver crashed or returned clearly wrong results, and you want to help debug by generating a report for the upstream issue tracker (https://github.com/ufo5260987423/scheme-langserver/issues).

lsp_shutdownB

Gracefully shut down the scheme-langserver connection.

lsp_restartA

Restart the scheme-langserver connection and reopen tracked documents.

Use this when you want scheme-langserver to pick up configuration changes (e.g. a new cache_path), switch to a different executable, or recover from a stuck server. After restarting, all currently open files are re-opened automatically so the server state is restored.

Args: root_dir: Project root directory. If omitted, the previously used root_dir is reused; if there is none, it is inferred from open documents or the current working directory. langserver_path: Optional path to a specific scheme-langserver executable. If provided, it overrides environment variables and project config. This lets you instantly switch to a local build for debugging or comparison.

lsp_openA

Open a file in the language server (like opening a tab in an editor).

The server needs to know file contents before it can provide hover, completion, or diagnostics for that file.

When to use: When you start working on a Scheme file. Keep the file open for the duration of the session; do NOT open and close repeatedly.

lsp_changeA

Notify the language server that a file has changed (like pressing Save).

Send the new full text of the file. This keeps the server's internal state in sync with the actual file contents.

When to use: IMMEDIATELY after you modify a Scheme file via filesystem tools (WriteFile/StrReplaceFile). If you skip this step, subsequent diagnostics and queries will operate on stale content.

lsp_closeA

Close a file in the language server.

When to use: When you are completely done with a file or at session end. Do NOT close files just because you paused editing; frequent open/close wastes server resources.

lsp_hoverA

Show hover tooltip (type, docs) for the symbol under the cursor.

Like hovering the mouse over an identifier in an IDE.

Confidence: MEDIUM. Type inference is experimental; info about macro-expanded identifiers may be inaccurate. Cross-check with your knowledge.

Args: file_path: Absolute path to the file. line: Zero-based line number. character: Zero-based character (column) position.

lsp_completeA

Trigger auto-completion at the cursor position.

Like pressing Ctrl+Space in an IDE. Returns identifiers available in the current scope, including local bindings (let, lambda parameters) that may not be obvious from a simple text search.

Confidence: MEDIUM. The list may miss identifiers generated by macros.

lsp_definitionB

Go to Definition: jump to where the symbol is defined.

Like pressing F12 in an IDE. Returns file URI, line, and column.

Confidence: HIGH. Reliable for locating definitions across files.

lsp_referencesB

Find All References: list every usage of the symbol across the workspace.

Like Shift+F12 in an IDE.

Confidence: HIGH. Reliable for assessing impact before refactoring.

Args: include_declaration: Whether to include the definition site in the results.

lsp_renameA

Compute workspace edits to rename a symbol.

Returns a set of text document edits that can be applied to safely rename the symbol across all files.

Limitation: rename is on the scheme-langserver roadmap and may return -32601 "method not found". If so, fall back to manual renaming.

lsp_signatureA

Get signature help for a function call.

Shows parameter names and types for the function being called at the given position.

Limitation: signatureHelp is on the scheme-langserver roadmap and may return -32601 "method not found". If so, fall back to your own knowledge.

lsp_document_symbolA

Show the file's symbol outline (functions, variables, macros).

Like the Outline / Structure panel in an IDE.

Confidence: MEDIUM. Symbols generated by macros may be missing.

lsp_workspace_symbolA

Search symbols across the entire workspace.

Like Ctrl+T / Go to Symbol in an IDE. Returns all symbols matching the query string across all indexed files.

Confidence: MEDIUM. Accuracy depends on index completeness. Requires scheme-langserver >= 2.1.0.

lsp_code_actionB

Get code actions (quick fixes, refactorings) for a range.

Limitation: codeAction is on the scheme-langserver roadmap and may return -32601 "method not found" or behave incompletely.

lsp_diagnosticsA

Get diagnostic messages (errors, warnings) from the language server.

When to use: After lsp_change to check for errors, like IDE real-time linting. Also useful before finishing a task to ensure no errors were introduced.

Why this matters for Scheme: S-expressions are catastrophically sensitive to bracket balance. A single missing or extra parenthesis can render the entire file unparseable. Diagnostics will catch unmatched brackets, tokenizer errors, and structural syntax failures with high reliability — things LLMs often miss by eye. scheme-langserver 2.1.2+ restored clear bracket-mismatch diagnostics (unclosed parenthesis, unexpected close bracket) in the fault-tolerant tokenizer. Always pull diagnostics after significant edits.

Confidence: HIGH for basic syntax (brackets, undefined ids). MEDIUM/LOW for semantic errors and implementation-specific extensions (Chez-specific forms may be falsely flagged).

Args: file_path: If provided, returns diagnostics for that file only. If omitted, returns diagnostics for all open files.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 17 tools

Disambiguation5/5

Each tool maps to a distinct LSP operation or lifecycle event, so there is no meaningful overlap: open/change/close manage document state, hover/complete/definition/references/signature query different perspectives, and document_symbol vs workspace_symbol are explicitly scoped to file vs workspace. The few related pairs are differentiated clearly by name and description.

Naming Consistency5/5

All 17 tools follow the same lsp_ snake_case prefix and mostly mirror standard LSP method names, making the set predictable and easy to navigate. Even though some names are nouns rather than verb_noun phrases, the convention is uniform across the whole server.

Tool Count4/5

17 tools is at the upper end of comfortable scope, but nearly every one corresponds to a distinct LSP feature or lifecycle step needed by a language-server bridge. The count feels justified rather than bloated; it is only slightly above the typical well-scoped range.

Completeness4/5

The set covers the full editing loop: initialize, open/change/close documents, query symbols/references/hover/completion, and fetch diagnostics, plus shutdown/restart and troubleshooting. Minor gaps remain (e.g., formatting, document highlighting) and a few exposed features (rename/signature/code_action) are documented as possibly unsupported by the server, but there are no critical dead ends for the core workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues