Skip to main content
Glama
peeyushcodes

Windows Developer MCP Server

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": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
clear_session_historyA

Clear the session command history.

This does not affect the working directory, environment variables, or any other session state. Only the command history is cleared.

Returns: A dict with keys: status, data (confirmation message).

Examples: clear_session_history()

get_environment_variableA

Return the value of an environment variable.

Checks session-scoped overrides first, then falls back to the inherited process environment.

get_session_historyA

Return recent command history for the current session.

History entries include the command, tool name, exit code, timestamp, and duration. History is capped at 500 entries.

get_session_infoA

Return a snapshot of the current session state.

Includes the working directory, last exit code, active virtual environment, active Git repository, active project, and session start time.

Returns: A dict with keys: status, data (session snapshot).

Examples: get_session_info()

get_working_directoryA

Return the current session working directory.

The working directory persists across all tool calls within the same server session. It defaults to the user's home directory on startup.

Returns: A dict with keys: status, data (containing cwd, exists, is_dir).

Examples: get_working_directory()

list_environment_variablesB

List all environment variables visible to the MCP server process.

Returns both process-level and session-scoped overrides. Session overrides are marked with source: "session" in the output.

run_cmdA

Execute a CMD command and return the output.

Useful for legacy batch operations, tools that behave differently under CMD, or when PowerShell is unavailable.

run_powershellA

Execute a PowerShell command and return the output.

The command passes through the full security validation pipeline before execution. Dangerous commands (format, shutdown, etc.) are blocked automatically.

run_scriptA

Execute a PowerShell (.ps1) or batch (.bat/.cmd) script file.

Resolves the script path relative to the current working directory. The script must exist within the configured workspace boundary.

set_working_directoryA

Change the current session working directory.

The new directory must exist and must be within the configured workspace boundary. Relative paths are resolved against the current working directory.

append_fileA
    Append content to an existing file (or create it if it does not exist).

    Args:
        path:     Path to the file.
        content:  Content to append.
        encoding: File encoding. Default: "utf-8".

    Returns:
        A dict with keys: status, data (path, total_size_bytes).

    Examples:
        append_file("log.txt", "New entry

") append_file("output.csv", "row1,row2 ")

copy_fileB

Copy a file to a new location within the workspace.

create_directoryA

Create a directory and all necessary parent directories.

delete_fileA

Permanently delete a file from the workspace.

This operation is irreversible. Requires explicit confirmation when security.require_confirmation is enabled (default: True).

file_existsB

Check whether a path exists within the workspace.

file_infoA

Return metadata for a file or directory.

Includes size, creation time, modification time, file type, and whether the path is readable/writable.

list_directoryB

List the contents of a directory.

move_fileB

Move or rename a file within the workspace.

read_fileB

Read and return the contents of a text file.

search_filesB

Search for files matching a glob pattern.

treeA

Return a directory tree view up to a specified depth.

write_fileA
    Create or overwrite a file with the given content.

    Creates parent directories automatically. Overwrites existing files
    without warning — use file_exists() first if unsure.

    Requires explicit confirmation when ``security.require_confirmation``
    is enabled in config.

    Args:
        path:     Path to write (absolute or relative to cwd).
        content:  The text content to write.
        encoding: File encoding. Default: "utf-8".
        confirm:  Set to True to confirm when required by config.

    Returns:
        A dict with keys: status, data (path, size_bytes, lines).

    Examples:
        write_file("notes.txt", "Hello, World!")
        write_file("src/config.py", "DEBUG = True

", confirm=True)

git_addA

Stage files for commit.

git_blameB

Show line-by-line authorship information for a file.

git_branchA

List local (or all) branches and indicate the current branch.

git_checkoutA

Switch to a branch, or restore a file to its last committed state.

git_cloneA

Clone a remote repository into a local directory.

The destination must be within the workspace boundary.

git_commitA

Create a commit with the staged changes.

Requires explicit confirmation when security.require_confirmation is enabled in config (default: True).

git_create_branchA

Create a new branch and switch to it.

git_diffA

Show changes between commits, working tree, or index.

git_initB

Initialise a new Git repository.

The target path must be within the workspace boundary.

git_logC

Return recent commit history.

git_pullB

Pull changes from a remote repository.

git_pushA

Push commits to a remote repository.

Requires explicit confirmation when security.require_confirmation is enabled in config (default: True).

git_remote_infoA

Show configured remote repositories and their URLs.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: git_remote_info()

git_stashB

Stash or restore uncommitted changes.

git_statusA

Return the current Git working tree status.

Shows the state of the index and working directory — which files are staged, unstaged, or untracked.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: git_status()

git_tagsA

List all tags in the repository.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: git_tags()

activate_venvA

Register a virtual environment as active in the current session.

This does not "activate" the venv in a shell sense (which is a shell-level operation). Instead, it records the venv path in the session so that subsequent python_* and pip_* tool calls use the venv's interpreter and pip automatically.

check_packageA

Check whether a package is installed and return its version.

create_venvA

Create a new Python virtual environment.

deactivate_venvA

Deactivate the current session's virtual environment.

After this call, python_* and pip_* tools will use the system Python interpreter.

Returns: A dict with keys: status, data (confirmation).

Examples: deactivate_venv()

install_packageA

Install a Python package with pip.

Requires explicit confirmation when security.require_confirmation is enabled in config.

list_packagesA

List all installed Python packages.

pip_freezeA

Output installed packages in requirements.txt format.

Useful for generating a requirements.txt file or auditing the exact package versions in the current environment.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: pip_freeze()

pip_versionA

Return the current pip version.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: pip_version()

python_infoA

Return comprehensive Python environment information.

Includes version, executable path, platform, prefix, and active virtual environment (if any).

Returns: A dict with keys: status, data (detailed env info).

Examples: python_info()

python_versionA

Return the current Python interpreter version.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: python_version()

run_python_scriptA

Execute a Python script file.

The script must be within the workspace boundary. Uses the active virtual environment's Python if one is registered in the session.

uninstall_packageA

Uninstall a Python package with pip.

Requires explicit confirmation (passes --yes to pip to avoid interactive prompt).

node_run_scriptC

Execute a JavaScript file with Node.js.

node_versionA

Return the installed Node.js version.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: node_version()

npm_infoA

Fetch information about an npm package from the registry.

npm_installC

Install npm packages.

npm_listB

List installed npm packages.

npm_runA

Run an npm script defined in package.json.

npm_versionA

Return the installed npm version.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: npm_version()

npx_runB

Execute a command with npx.

docker_buildB

Build a Docker image from a Dockerfile.

docker_compose_downB

Stop and remove Docker Compose services.

docker_compose_logsB

Return logs from Docker Compose services.

docker_compose_upB

Start Docker Compose services.

docker_execA

Execute a command inside a running container.

docker_infoA

Return Docker system-wide information.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: docker_info()

docker_list_containersB

List Docker containers.

docker_list_imagesC

List Docker images.

docker_logsC

Return logs from a container.

docker_pullB

Pull a Docker image from a registry.

docker_remove_containerB

Remove a Docker container.

docker_runC

Run a Docker container.

docker_stopB

Stop a running container.

docker_versionA

Return the installed Docker version.

Returns: A dict with keys: status, exit_code, stdout, stderr, output, duration_ms.

Examples: docker_version()

cpu_infoA

Return CPU usage statistics and core information.

Returns: A dict with keys: status, data (cores, usage%, frequency).

Examples: cpu_info()

disk_infoA

Return disk partition information and usage for each drive.

Returns: A dict with keys: status, data (list of partition details).

Examples: disk_info()

get_processB

Return detailed information about a specific process.

list_processesA

List running processes with resource usage.

list_servicesA

List Windows services with their status.

memory_infoA

Return RAM and virtual memory statistics.

Returns: A dict with keys: status, data (total, available, used, percent for RAM and swap).

Examples: memory_info()

system_infoA

Return comprehensive system information.

Includes OS version, hostname, uptime, Python version, architecture, and processor brand.

Returns: A dict with keys: status, data (detailed system snapshot).

Examples: system_info()

windows_versionA

Return detailed Windows version information.

Returns: A dict with keys: status, data (version, build, edition strings).

Examples: windows_version()

dns_lookupB

Perform a DNS lookup for the given hostname.

get_ip_infoA

Return local network adapter information and IP addresses.

Includes all IPv4 and IPv6 addresses for each active adapter.

Returns: A dict with keys: status, data (hostname, adapters list).

Examples: get_ip_info()

get_open_portsA

List locally open (listening) TCP and UDP ports.

http_getA

Perform an HTTP GET request and return the response.

Useful for testing APIs and web endpoints. Response body is truncated at 10,000 characters.

pingB

Ping a host and return round-trip statistics.

tracerouteB

Trace the network route to a host.

sqlite_databasesA

Search for SQLite database files within the workspace.

sqlite_executeA

Execute any SQL statement against a SQLite database.

Write operations (INSERT, UPDATE, DELETE, CREATE, DROP, etc.) require explicit confirmation.

sqlite_list_tablesA

List all tables in a SQLite database file.

sqlite_queryA

Execute a read-only SELECT query against a SQLite database.

Only SELECT statements are allowed. Use sqlite_execute for writes.

sqlite_schemaA

Return the CREATE statement(s) for tables in a database.

sqlite_table_infoB

Return column definitions for a specific table.

analyze_projectA

Detect project type, framework, and key configuration files.

Identifies Python, Node.js, .NET, Rust, Go, Java, Docker, and other project types automatically by checking for characteristic files.

count_lines_of_codeA

Count lines of code across the codebase.

Counts total lines, code lines (non-blank, non-comment), blank lines, and comment lines per file extension.

find_todosB

Search for TODO/FIXME/HACK and similar tags in source files.

project_summaryA

Return a comprehensive project overview combining multiple analyses.

Combines project type detection, LOC counting, and TODO/FIXME listing into a single structured report.

read_package_jsonA

Parse and summarise a package.json file.

Returns project name, version, description, scripts, dependencies, and devDependencies.

read_pyproject_tomlA

Parse and summarise a pyproject.toml file.

Returns project name, version, description, dependencies, and tool configurations.

github_auth_statusA

Check GitHub authentication status and token validity.

Returns whether a token is configured and (if so) the authenticated user's login name.

Returns: A dict with keys: status, data (authenticated, token_present, user).

Examples: github_auth_status()

github_create_issueA

Create a new GitHub issue.

Requires a GITHUB_TOKEN with issue write permissions and explicit confirmation when required by config.

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/peeyushcodes/windows-developer-mcp'

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