Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoHost for the HTTP transport. Recommended to keep as 127.0.0.1 unless intentionally exposing the HTTP server.127.0.0.1
MCP_API_KEYNoBearer token for HTTP transport. When set, clients must send Authorization: Bearer <MCP_API_KEY>. Without a key, HTTP access is accepted only from a direct loopback connection.
FCA_WORKSPACESNoKnown repositories, separated by comma or semicolon.
FCA_ALLOWED_ROOTSNoOptional filesystem sandbox.
MCP_ALLOWED_ROOTSNoFilesystem roots the agent may touch. Mentioned in the security model.
VSCODE_BRIDGE_URLNoLocal VS Code companion endpoint.
CHROME_BRIDGE_TOKENNoChrome extension pairing secret.
CHROME_EXTENSION_IDNoOptional extension identity pin.
MCP_ALLOWED_ORIGINSNoBrowser origins allowed to call HTTP endpoints.
FCA_DEFAULT_WORKSPACENoDefault directory for relative paths.
FCA_CHROME_BRIDGE_ENABLEDNoEnable/disable the companion Chrome bridge.

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
run_commandA

Run a shell command (/bin/bash) and wait for it to finish. Returns exitCode, stdout, stderr. Use for builds, tests, git, npm, python, ffmpeg, etc. For servers/watchers that never exit use process_start.

process_startA

Start a long-running background command (dev server, watcher, long build). Returns an id; read logs with process_output, stop with process_stop.

process_outputA

Read new output from a background process since the last read (or all buffered output with all: true).

process_inputA

Write text to stdin of a process started with process_start (REPLs, prompts, interactive CLIs). close: true writes the data and closes stdin.

process_stopA

Stop a background process started with process_start (kills its whole process tree).

process_listA

List background processes started by this bridge.

list_processesA

List OS processes (optionally filtered by name substring).

kill_processB

Kill an OS process tree by PID.

get_system_infoA

Host info, configured workspaces, default workspace and available integrations. Call this first in a new conversation.

pty_startB

Start a real interactive terminal backed by Windows ConPTY. Use for REPLs, debuggers, SSH/TUI programs and CLIs that require a terminal. By default starts the configured interactive shell; command runs inside it, or file+args starts an executable directly.

pty_readA

Read new terminal output from a PTY session (or all buffered output with all: true). ANSI escapes are stripped by default.

pty_writeB

Write to an interactive PTY. enter: true appends the Enter key.

pty_resizeC

Resize a PTY terminal.

pty_stopC

Stop and remove an interactive PTY session.

pty_listB

List interactive PTY sessions.

job_startA

Run a long command (test suite, build, install, benchmark) as a background job. Waits up to waitMs (default 25s): if it finishes you get a smart summary (pass/fail counts, failing tests with context, output tail) instead of the raw log; otherwise poll job_status.

job_statusA

Status of a job; waitMs (≤50s) waits for it to finish. Finished jobs return the failure summary.

job_outputB

Read a job log: tail (default 200 lines), a line range (fromLine/lines), or grep (regex with context lines).

job_cancelB

Cancel a running job (kills its process tree).

job_listB

Recent background jobs with status.

resource_statusA

Current workstation resource pressure and admission-controller slots for commands, builds/tests, LSP, diagnostics, background processes and video work.

read_fileA

Read a text file with line numbers. Relative paths resolve against the default workspace. Use startLine/endLine for large files.

read_many_filesA

Read up to 50 files in one call (strings, or {path,startLine,endLine}). Much faster than several read_file calls.

apply_patchA

Apply a multi-file patch atomically (nothing is written unless every hunk applies). Preferred way to change code. Format: *** Begin Patch *** Update File: src/app.ts @@ function main() { (optional anchor line to jump near the change) context line (space prefix) -removed line +added line *** Add File: src/new.ts +file content line *** Delete File: src/old.ts *** Update File: a.ts *** Move to: b.ts *** End Patch Include ~3 unchanged context lines around each change. The result reports compiler/linter problems in the changed files and a checkpoint id for undo.

edit_fileA

Replace exact text in one file. Either oldText/newText, or edits: [{oldText,newText,replaceAll}] applied atomically in order. oldText must match exactly once unless replaceAll. Reports diagnostics and a checkpoint id.

write_fileA

Create or fully overwrite a file (parent folders are created). Prefer apply_patch/edit_file for changes to existing files.

check_filesB

Run the relevant compilers/linters (tsc, eslint, node --check, go vet, gofmt, py_compile, ruff, JSON) on specific files and report problems.

checkpoint_listA

List recent checkpoints (one per file-changing tool call) with the files each one touched.

checkpoint_rewindA

Undo: restore files to their state before the given checkpoint (default: the latest), undoing it and every later checkpoint.

list_directoryB

Tree listing of a directory (skips node_modules, .git, build outputs unless includeIgnored).

search_codeA

Search file contents with a regex (ripgrep when installed, Node fallback otherwise). Returns path:line: text; context adds surrounding lines.

find_filesB

Find files by glob pattern, e.g. "**/*.test.js" or "package.json".

file_infoB

Check whether a path exists and get its type, size and modification time.

delete_pathA

Delete a file, or a directory when recursive is true. Undoable with checkpoint_rewind.

copy_pathC

Copy a file or directory.

move_pathC

Move or rename a file or directory.

project_contextA

Start here for any project: detected stack and build/test/lint commands, git state, top-level layout, project instruction files, README start and saved memory notes.

repo_mapB

Compact map of a codebase: the most-referenced files with their key functions/classes/types and line numbers. Understand a large project in one call. focus: file names or symbols to prioritise.

outlineA

All symbols (functions, classes, methods, types) of a file with line numbers, so you can read_file just the part you need. A directory gives a repo map of it.

find_symbolB

Find where a function/class/type/method is defined (name or Container.name) and where it is used (whole-word references).

project_memoryA

Durable per-project notes shown by project_context in future conversations. action: list | add (note) | remove (index). Save conventions, gotchas and verified commands — not temporary state.

list_workspacesA

List configured project workspaces with git branch and number of changed files.

git_statusB

git status (short) plus diff stat against HEAD.

git_diffA

Full unified diff of the working tree (or staged changes, or against a ref), optionally for one file.

git_logC

Recent commit history.

git_commitB

Stage files (all changes by default) and create a commit.

web_searchB

Search the web (DuckDuckGo). Returns title, url, snippet for the top results.

fetch_urlA

Fetch a URL (follows redirects) and return readable text. raw: true returns the unprocessed body (useful for JSON/APIs).

browser_navigateB

Open a URL in the Playwright-controlled Chrome (persistent profile: logins are remembered). Returns the page snapshot with element refs.

browser_snapshotA

Accessibility snapshot of the current page with [ref=eN] handles. Use it before clicking/typing.

browser_clickB

Click an element by ref (preferred), selector or text. Returns the updated snapshot.

browser_typeA

Type into an input/textarea/contenteditable. Replaces its value unless slowly: true (types key by key). submit: true presses Enter.

browser_select_optionC

Select option(s) in a .

browser_press_keyB

Press a key or chord on the page, e.g. "Enter", "Escape", "Control+A", "ArrowDown".

browser_hoverC

Hover over an element.

browser_scrollC

Scroll the page by deltaY/deltaX pixels, or scroll an element (ref/selector/text) into view.

browser_wait_forB

Wait for a selector or text to appear (state visible/hidden/attached), or just wait timeoutMs.

browser_screenshotA

Screenshot of the page (or one element). The image is returned so you can see it, and saved to disk.

browser_evaluateB

Run JavaScript in the page. Pass an expression ("document.title") or a function body using return.

browser_get_textC

Visible text of the page or of an element (CSS selector).

browser_tabsC

List, open (new), select or close tabs by index.

browser_consoleC

Console messages, page errors, failed requests and dialogs captured from the browser.

browser_upload_fileC

Upload local file(s) through a file input or an upload button (ref/selector/text).

browser_resizeC

Set the viewport size.

browser_dialogB

Inspect or answer a JavaScript dialog (alert/confirm/prompt) in the Playwright browser. Dialogs are never accepted automatically.

browser_closeA

Close the Playwright browser (the persistent profile stays on disk).

browser_record_startA

Start recording a video of a browser session. Opens a dedicated recording tab (with your profile logins); every browser_* action afterwards is filmed until browser_record_stop.

browser_record_stopB

Stop the recording and save the clip (mp4 via ffmpeg). Returns the file path.

record_clipA

Render a video clip from code: pass a complete HTML document (CSS/JS/canvas/SVG animation) or a URL; it is played headlessly at the given size for durationMs and saved as mp4/webm/gif. Default 1080x1920 (vertical, Shorts/TikTok/Reels). If the page defines window.startClip(), it is called when recording begins.

chrome_statusB

Connection status of the Chrome extension bridge (the user's real, logged-in Chrome).

chrome_extension_reloadA

Reload the Free Codin Agent Chrome extension from disk (after it was updated) and report the new version.

chrome_pairing_setupA

Securely configure or rotate the Chrome bridge pairing token in both the connected extension and .env. The secret is never returned. Restart the MCP worker afterwards to enforce it.

chrome_dialogA

Inspect or answer a JavaScript dialog (alert/confirm/prompt/beforeunload) that is blocking a tab. Dialogs are never accepted automatically: read the message, then accept or dismiss (promptText for prompt()).

chrome_downloadsB

Recent Chrome downloads (file path, state, size, source URL, referrer).

chrome_list_tabsA

List all tabs in the user's real Chrome.

chrome_switch_tabB

Activate a tab and focus its window.

chrome_new_tabC

Open a new tab in the real Chrome.

chrome_close_tabC

Close a tab.

chrome_navigateB

Navigate a tab to an http(s) URL and wait for it to load.

chrome_snapshotA

Semantic snapshot of a tab: interactive elements with [#N] refs, plus page-declared site tools. Take one before clicking or typing.

chrome_clickA

Click an element by its [#N] ref using a real (trusted) mouse click via the Chrome debugger; falls back to a DOM click if the debugger cannot attach.

chrome_typeA

Focus an element by ref and type text with trusted input (replaces the current value unless append: true). submit: true presses Enter afterwards.

chrome_press_keyA

Press a key or chord (e.g. "Enter", "Tab", "Escape", "Control+a") as a trusted key event in the tab.

chrome_scrollB

Scroll the inspected tab by y pixels (negative scrolls up).

chrome_screenshotA

Screenshot of a tab in the real Chrome (visible viewport). The image is returned so you can see it.

chrome_evaluateB

Run JavaScript in a tab's page context (via the debugger). Pass an expression; the JSON-serializable result is returned.

chrome_get_textB

Visible text of a tab (document.body.innerText, truncated).

chrome_consoleC

Console messages and exceptions captured from a tab since the debugger attached to it.

chrome_call_site_toolA

Invoke a tool the web page itself declares (window.mcp / window.mcp_tools / meta[name=webmcp-tool]). Take a chrome_snapshot first to see the catalog.

windows_listB

List visible top-level native Windows application windows with process IDs and UI Automation refs.

windows_snapshotB

Semantic Windows UI Automation snapshot of a native app window. Returns stable runtime refs, control names/types, supported patterns and bounds. Prefer this over coordinate clicking.

windows_actionA

Act on a native Windows UI Automation element from windows_snapshot: invoke, setValue, toggle, select, expand, collapse, focus or scrollIntoView. Re-snapshot after meaningful UI changes.

windows_waitB

Wait for a semantic native Windows control to appear, become enabled, or disappear. Matches by accessible name substring, AutomationId and/or control type.

windows_screenshotA

Capture the visible bounds of a native Windows application window selected semantically by pid/title. Returns the PNG to the client and saves it under screenshots/.

lsp_diagnosticsA

Compiler/type-checker diagnostics from the real language server (gopls, typescript-language-server, pyright) for files or a directory — no VS Code needed. all: true also returns diagnostics the server reported for other files of the project.

lsp_definitionB

Go to definition (kind: definition | typeDefinition | implementation) of the symbol at file:line (give character or symbol name).

lsp_referencesA

All references to the symbol at file:line, resolved by the language server (exact, not text search).

lsp_hoverB

Type signature and documentation of the symbol at file:line.

lsp_symbolsB

Symbols: of one file (file), or matching a query across the project (query + path).

lsp_callsB

Call hierarchy of the function at file:line: incoming (who calls it) or outgoing (what it calls).

lsp_rename_previewA

Preview the exact workspace edits a semantic rename would make. Does not write files; apply reviewed changes through apply_patch/edit_file.

lsp_code_actionsA

List language-server code actions/quick fixes/refactors for a source range without applying them.

lsp_format_previewB

Preview language-server formatting edits for a file without applying them.

lsp_statusA

Which language servers are installed and running (language, project root, pid).

vscode_diagnosticsA

Live compiler/linter errors and warnings from VS Code language servers (optionally filtered to one file).

vscode_find_referencesB

All references to the symbol at a position (via the language server).

vscode_go_to_definitionC

Definition location of the symbol at a position.

vscode_open_filesC

Open editor tabs and the active file in VS Code.

vscode_debug_stateC

Active debug session and breakpoints.

vscode_add_breakpointC

Add a breakpoint (optionally conditional).

vscode_open_fileB

Open a file in VS Code at a line so the user can see it.

batchB

Run several tool calls in one request. Parallel mode is allowed only when every called tool is read-only.

capability_listB

List the live MCP capability catalog. Use prefix to filter tool names.

capability_callC

Fallback dispatcher for a capability present on the live server but missing from a cached client catalog.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 114 tools

Disambiguation3/5

Distinct domain prefixes (browser_, chrome_, lsp_, vscode_, pty_, job_) and detailed descriptions help, but there are multiple overlapping suites for similar actions, such as browser_* vs chrome_* and run_command vs process_start vs job_start. An agent can usually pick correctly from context, yet the parallel tool families create real misselection risk.

Naming Consistency4/5

Most tools use snake_case with a predictable domain prefix and action-oriented names, especially browser_, chrome_, windows_, lsp_, vscode_, pty_, job_, and process_. There are minor deviations like outline, batch, repo_map, and project_context, but the overall naming pattern is readable and mostly consistent.

Tool Count1/5

The server exposes 114 tools, far beyond the 3–15 range for a well-scoped set. Even with broad coding-agent capabilities, this volume makes discovery, selection, and maintenance unusually heavy.

Completeness4/5

The surface is very broad: file editing, code search, LSP, terminals, background jobs, browser and Chrome automation, Windows UI automation, video recording, git, web search, and project memory. Some lifecycle gaps remain, such as git branch/push/pull/merge operations and dedicated test/package management, but most agent workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues