ForgeMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FORGEMCP_WORKSPACE | Yes | Must name an existing workspace directory. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| completions | {} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| workspace_listA | Show a directory tree; null depth expands every directory. File paths are errors. include_hidden controls dot directories; dot files remain visible and links are listed without traversal. |
| workspace_find_filesA | Find file paths recursively by case-sensitive glob, skipping dot directories and links. Patterns without / match basenames; patterns with / match paths relative to the search directory. |
| workspace_file_infoA | Read creation/modification times, byte size, and owner of one file. |
| workspace_read_fileA | Read UTF-8 text, optionally selecting an inclusive range of one-based lines. |
| workspace_text_searchA | Search lines by literal text or regex; report skipped binary/non-UTF-8 files. extensions accepts suffixes with or without a leading dot; null selects all files, while an empty list selects none. max_matches limits returned matching lines, not scanning. Counts are exact; skipped-file paths are available through the linked immutable resource. |
| workspace_write_fileA | Create or fully overwrite a UTF-8 file; its parent directory must exist. Return removed/added line counts and linked change resources. |
| workspace_edit_fileA | Replace one exact text occurrence, or all with replace_all=true. old_text must be nonempty. Missing or ambiguous matches leave the file unchanged. Text and line endings outside replacements are preserved. |
| workspace_moveA | Move a file or directory within project/ or within storage/. The destination must not exist, and its parent directory must exist. |
| workspace_deleteA | Delete a file or empty directory; protected paths and roots cannot be deleted. |
| workspace_mkdirA | Create a directory and missing parents, or report that it already exists. |
| processes_overviewB | Show current and completed external processes managed by ForgeMCP. |
| process_getA | Read a log slice: time, then lines, then UTF-8 text bytes. With neither selector, return the last 100 lines. Line ranges are inclusive; time ranges are [start, end) seconds from process start. Last seconds end at now for running processes, at completion otherwise. Returned line numbers remain absolute; a byte limit can cut a line. |
| toolsets_listA | List all discovered toolsets and the tools available in each. |
| toolset_getC | Read tool paths and kinds, querying available versions for this request. |
| cmake_profilesA | List effective profiles with their toolsets, build settings, and preset selections. |
| cmake_configureA | Configure selected profiles; return build/database paths and per-execution errors. Changing a manual profile's generator removes and recreates its build directory. |
| cmake_buildB | Build selected profiles and their build presets after configuration. Omitted targets use CMake or preset defaults; a nonempty targets list selects explicit build targets. |
| cmake_testB | Run CTest for selected profiles and test presets after building; return test cases. names selects exact test names, not regex patterns; omit it to use CTest or preset defaults. |
| clangd_configurationsB | List CMake contexts with an existing compilation database and clangd. |
| clangd_diagnosticsB | Get diagnostics for a managed file in selected configurations. Empty configurations selects all. |
| clangd_hoverB | Describe the symbol at a one-based line and zero-based code-point position. Empty configurations selects all. |
| clangd_definitionB | Find definitions of the symbol at the supplied position. External locations use root/. Empty configurations selects all. |
| clangd_referencesC | Find references to the symbol at the supplied position. Empty configurations selects all. |
| clangd_document_symbolsB | List the symbols declared in a managed file. Empty configurations selects all. |
| clangd_workspace_symbolsC | Find workspace symbols by name query. Empty configurations selects all. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| processes_list | Read the current retained process list as Markdown. |
| toolsets | Read a markdown summary of all discovered toolsets. |
| ui://forgemcp/workspace-tree.html | |
| ui://forgemcp/workspace-file.html | |
| ui://forgemcp/workspace-search.html | |
| ui://forgemcp/workspace-result.html | |
| ui://forgemcp/process-overview.html | |
| ui://forgemcp/process-details.html | |
| ui://forgemcp/toolsets.html | |
| ui://forgemcp/cmake-profiles.html | |
| ui://forgemcp/cmake-configure.html | |
| ui://forgemcp/cmake-build.html | |
| ui://forgemcp/cmake-test.html | |
| ui://forgemcp/clangd-result.html |
TDQS
Scored across 25 tools
Tools are mostly well-separated by resource (workspace, process, clangd, cmake, toolset). Some ambiguity exists within the clangd and cmake families (e.g., clangd_* language features), but operation names and descriptions clarify intent.
Mostly consistent verb_noun with clear prefixes: workspace_*, cmake_*, clangd_*. Minor deviations: processes_overview and process_get, workspace_list vs. workspace_find_files, and toolset_get vs. toolsets_list, but overall predictable.
25 tools is on the higher side but reasonable for a multi-domain server covering workspace, CMake, clangd, and process management. Each domain contributes a focused set.
Covers essential operations for each domain: file CRUD, CMake configure/build/test, clangd diagnostics/navigation, process monitoring, and toolset listing. Minor gaps like process termination/start, CMake clean, or clangd rename may limit some workflows.