Windows Developer MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": 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