Windows Developer MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| 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 |
| 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_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 |
| 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 | ", 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 |
| 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 |
| 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 |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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