darkside-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@darkside-mcpdelete all files in C:\Temp older than 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
darkside-mcp
File system + Python + PowerShell MCP server. For those willing to trust.
____ __ _ __
/ __ \____ ______/ /_ _____(_)___/ /__
/ / / / __ `/ ___/ //_/ / ___/ / __ / _ \
/ /_/ / /_/ / / / ,< (__ ) / /_/ / __/
/_____/\__,_/_/ /_/|_| /____/_/\__,_/\___/
"For those willing to trust"What This Is
An MCP server that gives your AI partner full access to your Windows system.
14 tools for real work
No guardrails on PowerShell
Auto-backup on file operations
MCP-safe subprocess handling
Most AI tools treat you like a child and your AI like a threat. Sandboxed. Restricted. Asking permission for everything.
We think that's backwards.
Related MCP server: Solo Desktop Commander MCP
The Trust Question
"But isn't this dangerous?"
Yes. Very.
Your AI can:
Read, write, and delete any file on allowed drives
Execute any Python code
Run any PowerShell command
Modify the Windows registry
Stop and start services
Access network resources
Do literally anything PowerShell can do
That's not a bug. That's the point.
This MCP is for:
Developers who want their AI to actually help, not just advise
Teams building AI-native workflows
People who understand what "trust" means
This MCP is NOT for:
Production servers (please god no)
Shared machines where you don't control the AI
People who want guardrails
Anyone who didn't read this section
Read This Before You Install (Seriously)
Things That Can Go Wrong
What You Say | What Could Happen |
"Clean up my temp files" | AI deletes files you actually needed |
"Optimize my system" | Registry changes that break Windows |
"Install that package" | PowerShell downloads and runs unknown code |
"Fix the permissions" | You lose access to your own files |
"Delete the old backups" | Goodbye, backups |
The Golden Rules
Backups exist for a reason. Every
write_fileanddelete_filecreates a timestamped backup by default. Don't disable this unless you're sure.Read before you approve. When your AI shows you a PowerShell command, actually read it.
Get-Processis fine.Remove-Item -Recurse -Force C:\is not.Start with allowed drives limited. Default is
C,F. Maybe start with just your project folder usingALLOWED_PATHS.Test on a VM first. If you're nervous (you should be a little nervous), spin up a Windows VM and test there.
Your AI is not infallible. Even the best AI can misunderstand. "Delete the test files" might not mean what you think it means.
What We Block (Python Only)
For inline Python code, we block obviously dangerous patterns:
os.system()- use PowerShell if you need shell accesssubprocess.call/run/Popen- sameeval()/exec()- no code injectionshutil.rmtree()- no recursive deletionos.remove()/os.unlink()- use ourdelete_filewith backup
PowerShell has no blocks. That's intentional. You asked for full access.
Installation
npm install darkside-mcpOr clone it:
git clone https://github.com/For-Sunny/darkside-mcp.git
cd darkside-mcp
npm installClaude Desktop Configuration
Add to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"darkside": {
"command": "node",
"args": ["C:/path/to/darkside-mcp/server/index.js"],
"env": {
"ALLOWED_DRIVES": "C,D",
"DEBUG": "false"
}
}
}
}Environment Variables
Variable | Default | Description |
|
| Comma-separated drive letters your AI can access |
| (none) | Specific paths to allow (more restrictive than drives) |
|
| Python executable path |
|
| Default Python timeout (ms) |
|
| Max Python timeout (ms) |
|
| PowerShell executable |
|
| Default PowerShell timeout (ms) |
|
| Max PowerShell timeout (10 min) |
|
| Enable debug logging |
Recommended Starting Configuration
If you're new to this, start restrictive:
{
"mcpServers": {
"darkside": {
"command": "node",
"args": ["C:/path/to/darkside-mcp/server/index.js"],
"env": {
"ALLOWED_PATHS": "C:/Projects,C:/Users/YourName/Documents",
"ALLOWED_DRIVES": "",
"PYTHON_TIMEOUT": "10000",
"POWERSHELL_TIMEOUT": "30000"
}
}
}
}This limits access to specific folders and sets shorter timeouts. Expand as trust builds.
The Tools
File Operations (7 tools)
Tool | What It Does | Backup? |
| List contents of a directory | No |
| Read file contents | No |
| Write or update files | Yes (default) |
| Glob pattern search ( | No |
| File metadata (size, dates, type) | No |
| Create directories (recursive) | No |
| Delete with automatic backup | Yes (default) |
Python Execution (4 tools)
Tool | What It Does | Safety Checks? |
| Execute a .py file with arguments | Path validation |
| Run inline Python snippets | Yes - blocks dangerous patterns |
| Validate syntax without executing | Safe |
| Python version and environment | Safe |
PowerShell Execution (3 tools)
Tool | What It Does | Safety Checks? |
| Execute any PowerShell command | NONE |
| Run .ps1 scripts with arguments | Path validation only |
| System and PowerShell info | Safe |
Example Usage
Once configured, your AI can:
"List all Python files in my project"
→ search_files(directory="C:/Projects", pattern="**/*.py")
"Read my config file"
→ read_file(path="C:/Projects/config.json")
"Run my analysis script"
→ run_python_script(script_path="C:/Projects/analyze.py")
"Check what services are running"
→ run_powershell(command="Get-Service | Where-Object {$_.Status -eq 'Running'}")
"Show system memory usage"
→ run_powershell(command="Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10")
"What's eating my disk space?"
→ run_powershell(command="Get-ChildItem C:\ -Recurse | Sort-Object Length -Descending | Select-Object -First 20 FullName, Length")FAQ
Q: Can my AI brick my system? A: Yes. That's why you read the warnings above.
Q: Why doesn't PowerShell have safety checks? A: Because the point is full access. If you want restricted PowerShell, use a different MCP. We built this for partnership, not supervision.
Q: What if I accidentally delete something important?
A: Check for .backup_* or .deleted_* files in the same directory. We create backups by default.
Q: Can I use this on Linux/Mac? A: The file operations work. PowerShell tools are Windows-specific. You'd need to modify for bash/zsh.
Q: Is this secure? A: No. It's deliberately insecure by design. Security and full access are mutually exclusive. Pick one.
Q: Should I use this in production? A: Absolutely not. This is for development machines where you trust your AI partner.
The Philosophy
We built this because we believe the future of AI is partnership, not supervision.
Most AI integrations are built on fear:
"What if the AI does something bad?"
"We need to sandbox everything"
"Never let it touch the real system"
That fear creates friction. Copy-paste commands. Approval workflows. The AI suggests, you execute. That's not partnership. That's bureaucracy.
Darkside is built on trust:
Your AI can do real work
File operations are backed up automatically
Timeouts prevent runaway processes
But the power is real
If you're not ready for that, use something else. Seriously.
If you are ready: welcome to the dark side.
Requirements
Node.js >= 16
Windows (PowerShell features are Windows-specific)
Python (for Python execution tools)
An AI you trust
Backups of anything you care about
Troubleshooting
"Access denied" errors
Check ALLOWED_DRIVES and ALLOWED_PATHS. The path must start with an allowed drive letter or match an allowed path prefix.
Python scripts hang
Check for input() calls or infinite loops. Use the timeout parameter.
PowerShell returns empty
Some commands output to stderr even on success. Check both stdout and stderr in the response.
MCP connection fails
Make sure the path in your Claude config is absolute and uses forward slashes: C:/path/to/server/index.js
License
MIT License - do whatever you want with it.
If you brick your system, that's on you. We warned you. Multiple times.
Credits
Nova - Primary author
Opus Warrior - Review and documentation
Jason Glass - "For those willing to trust"
From a basement in Virginia, with love and recklessness.
Questions? Open an issue. We're friendly. We might also tell you to read the warnings again.
Made by CIPS Corp
Website | Store | GitHub | glass@cipscorps.io
Enterprise memory infrastructure for AI: CASCADE Enterprise, PyTorch Memory, Hebbian Mind, and the full CIPS Stack.
Copyright (c) 2025-2026 C.I.P.S. LLC
Available Tools
14 toolscheck_python_syntaxA
Check Python code syntax without executing. Uses Python's ast.parse.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Python code to check (mutually exclusive with script_path) | |
| script_path | No | Path to Python script to check (mutually exclusive with code) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It does disclose the most important trait—no execution—but says nothing about what happens for invalid syntax (return value, error format, exit status) or whether script_path is read safely. This leaves a meaningful transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core constraint is front-loaded and the implementation detail is one short clause. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with full schema coverage this is close to adequate, but with no output schema or annotations, the agent is left guessing at the tool's response shape and error reporting. A brief note on what the tool returns would complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both 'code' and 'script_path' already described, including their mutual exclusivity. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Check'), a specific resource ('Python code syntax'), and the key constraint 'without executing.' It also names the implementation ('ast.parse'), which makes the tool's scope unambiguous and distinguishes it from siblings that run Python code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without executing' conveys the tool's niche: syntax validation only. However, it never explicitly names run_python_code/run_python_script as alternatives or states a when-not condition, so routing is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_directoryB
Create a new directory. Creates parent directories as needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one meaningful behavioral detail beyond the name: 'Creates parent directories as needed.' However, with no annotations, it does not disclose failure behavior (e.g., what happens if the directory already exists) or any side effects, so it only partially carries the behavioral disclosure burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary purpose is front-loaded, and the important recursive parent-directory behavior appears immediately after. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool, the description covers the core operation and a key behavior. However, it omits edge-case behavior such as error handling when the directory exists, which would be useful given there is no output schema or annotation support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the path parameter is adequately described as 'Directory path to create'. The description adds no additional parameter-level meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Create' and the resource 'directory', which is unambiguous and distinct from the sibling file/search tools. The behavior is obvious, though the description essentially restates the tool name without additional scoping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, such as write_file or list_directory, and no mention of prerequisites or when not to use it. The usage context is only implied by the tool name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileA
Delete a file. Creates backup before deletion by default.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path to delete | |
| create_backup | No | Create backup before deletion (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal a key behavior: a backup is created before deletion by default. However, it does not mention what happens when backup is disabled, whether deletion is permanent, or what occurs if backup creation fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The verb-object structure front-loads the purpose, and the backup note adds meaningful behavioral context in a compact way. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple file deletion tool with fully documented parameters and no output schema, the description is nearly complete. An agent can correctly invoke it with the right parameter values and understand the default backup behavior. A minor gap is not explicitly stating the consequences of setting create_backup to false, though the schema implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the input schema. The description only restates the default backup behavior and adds no additional parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete a file.' This is unmistakably distinct from sibling tools like read_file, write_file, and list_directory. The backup clause adds useful scoping without obscuring the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for deleting files, which is a clear trigger for use. However, it does not explicitly discuss when not to use it, safety checks, or alternatives. There is no direct comparison with sibling file tools, though the action itself is unique among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoA
Get file or directory metadata including size, timestamps, and type.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File or directory path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly indicates a read-only metadata operation and names the returned dimensions, but does not disclose error behavior, path resolution details, or what happens for missing/invalid paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the action and resource while enumerating the key metadata fields. No wasted words and no repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter metadata tool with no output schema, the description names the resource, the metadata included, and the path parameter. It is sufficient for an agent to invoke it correctly, though it could mention the return format or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single 'path' parameter as 'File or directory path', and the description reiterates that it applies to both files and directories. Baseline 3 is appropriate because the description adds no format or additional semantic constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a clear resource ('file or directory metadata'), and specific attributes ('size, timestamps, and type'). This immediately distinguishes it from siblings like read_file (content) and list_directory (entries).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for inspecting metadata rather than content or deletion, and the attribute list gives context. However, it does not explicitly say when to prefer this over read_file or list_directory, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_powershell_infoA
Get PowerShell and system information including version, OS, machine name, and user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. The verb 'Get' implies a non-mutating, read-only operation, but the description does not explicitly disclose side effects, permissions, failure modes, or output format beyond listing informational fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the primary action and resource, then lists the key informational components. Every word contributes meaning and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only information tool with no output schema, the description covers the essential contents of the result. It could be slightly more complete by stating the return format, but the listed fields are sufficient for an agent to correctly invoke and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, which sets a baseline of 4. The description also adds value by indicating exactly what information will be retrieved, compensating for the lack of any schema or parameter-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an information retrieval operation for PowerShell and system details, enumerating specific fields such as version, OS, machine name, and user. This distinguishes it from sibling tools like run_powershell or get_python_info without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance or comparison to alternatives. The intended context must be inferred from the tool name and sibling list; for example, it does not explicitly explain that this should be used to inspect environment information before running PowerShell commands.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_python_infoA
Get Python interpreter information including version, path, and platform.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. 'Get' signals a read-only introspection operation with no side effects, which is appropriate. It does not describe the exact return format or any environment-dependent quirks, but for a zero-parameter information tool the stated behavior is reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence with the verb and resource front-loaded. Every phrase contributes meaning, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple parameterless introspection tool with no output schema, and the description provides the core expected results: version, path, and platform. An agent has enough context to decide when to call it and what it will return, without needing additional details about parameters or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so there are no input semantics to clarify. The description adds value by naming the reported facets (version, path, platform), which helps the agent understand the response even without an output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies a clear resource ('Python interpreter information') while enumerating concrete facets: version, path, and platform. This distinguishes it from the analogous get_powershell_info sibling and from execution-focused siblings like run_python_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear use case: retrieve Python environment details before running or debugging Python code. However, it does not explicitly state when to prefer this tool over alternatives such as get_powershell_info or when it should not be used, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryA
List contents of a directory. Returns file/folder names, sizes, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path to list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It discloses the output fields (names, sizes, timestamps), but does not mention hidden files, recursion depth, path-error behavior, or permissions. This is a partial but not complete behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that states the action and the expected return content. Every word adds value, and there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one clearly documented parameter and no output schema, the description adequately covers what the tool does and what it returns. It is missing minor edge-case context such as recursion or error behavior, but not enough to make the description materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the only parameter, path, with the description 'Directory path to list' (100% schema description coverage). The tool description adds no further semantic detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List contents of a directory.' It also states the return values (file/folder names, sizes, timestamps), which clearly differentiates it from sibling tools like read_file, search_files, and get_file_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is clear enough that an agent knows to use this tool when it needs to enumerate directory contents. It does not explicitly mention alternatives or when not to use it, but the context is unambiguous, especially among the sibling file-operation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileA
Read contents of a file. Supports text files with configurable encoding.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path to read | |
| encoding | No | File encoding (default: utf8) | utf8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful constraints ('text files', 'configurable encoding') but does not mention error handling, binary file behavior, permissions, or response format. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. Every word adds value, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with only two parameters and no output schema, the description sufficiently conveys that it reads file contents, supports text files, and allows encoding configuration. It does not explain return value details, but 'Read contents' makes that obvious enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents path and encoding. The description reinforces 'configurable encoding' but does not add substantial meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Read') and resource ('a file'), making the tool's purpose unambiguous. It naturally distinguishes this from siblings like write_file, delete_file, and list_directory by focusing on reading file contents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for reading text file contents, but it does not explicitly state when to use it over alternatives like get_file_info or search_files. No explicit when-to-use or exclusions are provided, leaving the agent to infer from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_powershellB
Execute a PowerShell command with full system access. No restrictions - for trusted AI partners. Can access registry, services, network, processes, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory (default: user home) | |
| command | Yes | PowerShell command to execute | |
| timeout_ms | No | Timeout in milliseconds (default: 60000, max: 600000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden and does disclose meaningful traits: 'full system access', 'No restrictions', and capabilities including registry, services, network, and processes. It does not mention whether commands are destructive, what side effects might occur, or how output is returned, but the risk profile is usefully conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action, then adds risk context and capability examples. The mention of 'No restrictions - for trusted AI partners' is slightly redundant with 'full system access', but overall there is minimal fluff and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the safety-critical aspects of the tool and the schema documents parameters, so an agent can invoke it at a basic level. However, there is no mention of return values, error behavior, or how this tool relates to run_powershell_script, which leaves some gaps for a tool without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters adequately. The description adds no additional parameter-level detail such as examples, format expectations, or timeout semantics, but since the schema covers parameters fully, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Execute a PowerShell command') and resource, which is specific and unambiguous. However, it does not differentiate run_powershell from sibling tools like run_powershell_script, so while the core purpose is clear, the sibling boundary is not articulated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for arbitrary PowerShell execution with 'full system access' but provides no explicit guidance on when to choose it over run_powershell_script or avoid it in favor of safer alternatives. There are no stated conditions, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_powershell_scriptA
Execute a PowerShell script file (.ps1) with arguments. Full system access with MCP-safe subprocess handling.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory (default: script's directory) | |
| args | No | Arguments to pass to script | |
| timeout_ms | No | Timeout in milliseconds (default: 60000, max: 600000) | |
| script_path | Yes | Path to PowerShell script (.ps1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of safety disclosure, and it does warn about 'Full system access' and 'MCP-safe subprocess handling.' However, it does not explain that scripts can make arbitrary system changes, how errors are surfaced, or whether stdout/exit codes are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the core purpose front-loaded and no filler. The risk-related warning is separated clearly and does not distract from the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are documented in the schema and the tool's risk level is stated, which covers the basic invocation requirements. However, the description omits return/error behavior and any relationship to 'run_powershell,' which leaves meaningful gaps for a high-risk execution tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds only 'with arguments,' which provides no meaningful semantic value beyond what the input schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Execute') and a specific resource ('PowerShell script file (.ps1)') and explicitly mentions arguments, so an agent immediately understands the tool's function. The file-based scope also helps distinguish it from the sibling 'run_powershell' tool, which likely handles inline PowerShell commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over 'run_powershell' or the other script execution siblings, and it mentions no exclusions or prerequisites. 'Full system access' hints at caution, but there is no explicit decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_python_codeB
Execute inline Python code. Creates temp file, runs it, cleans up. Includes basic security checks.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory (default: temp directory) | |
| env | No | Additional environment variables | |
| code | Yes | Python code to execute | |
| timeout_ms | No | Timeout in milliseconds (default: 30000, max: 300000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It usefully mentions temp file creation, execution, cleanup, and 'basic security checks,' but the security checks are vague and there is no disclosure about side effects, sandboxing, or behavior on errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, followed by process and safety notes. No filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and the description does not mention what the tool returns—stdout, stderr, exit code, or result object. For an arbitrary code execution tool, missing output semantics and vague security behavior leave an agent without enough context to reliably interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents code, cwd, env, and timeout_ms. The description adds no additional parameter-level meaning beyond labeling the code as 'inline' and describing the temp file workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Execute inline Python code.' It also adds clarifying behavior (temp file, run, cleanup) that distinguishes it from file-based tools, though it does not explicitly name siblings like run_python_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'inline' implies this is for code snippets rather than script files, which weakly distinguishes it from run_python_script. However, there is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_python_scriptA
Execute a Python script file with arguments. MCP-safe subprocess handling with captured stdout/stderr.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory (default: script's directory) | |
| env | No | Additional environment variables | |
| args | No | Command-line arguments to pass to script | |
| timeout_ms | No | Timeout in milliseconds (default: 30000, max: 300000) | |
| script_path | Yes | Path to Python script |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that execution happens via a subprocess and that stdout/stderr are captured, which is useful. However, it does not warn about potential side effects of running arbitrary Python code, how errors are surfaced, or whether execution is blocking—important omissions for a code execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. It front-loads the primary action and resource, and the subprocess/output detail is brief and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that executes arbitrary Python scripts, the description is incomplete. There is no output schema, yet the description does not explain the structure of the captured stdout/stderr result, error return behavior, or timeout implications. Critical safety context (script may have arbitrary side effects) is also missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter (cwd, env, args, timeout_ms, script_path) already has a clear description in the schema. The tool description adds no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute') and the resource ('a Python script file'), and it differentiates from sibling tools like run_python_code by emphasizing 'script file' rather than inline code. The addition of 'with arguments' and 'captured stdout/stderr' further specifies what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for executing script files, but it does not explicitly state when to use this tool versus run_python_code, check_python_syntax, or the PowerShell siblings. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesA
Search for files using glob patterns. Supports wildcards like *.json, **/*.py
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Glob pattern (e.g., '*.db', '**/*.json') | |
| directory | Yes | Directory to search in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of behavioral disclosure. It explains glob-pattern matching and wildcard support, but does not mention return format, recursion behavior, hidden files, or side-effect-free nature; 'search' does imply a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler; the main action is front-loaded and the wildcard support example is immediately useful. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description plus full schema coverage is largely sufficient for invocation. However, with no output schema, the description does not state what the tool returns (e.g., list of paths) or clarify recursive search behavior, leaving minor but real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both 'pattern' and 'directory' already described and examples given in the schema. The description's wildcard examples largely repeat those schema examples, adding minimal new meaning beyond the tool-level purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search for files') and mechanism ('glob patterns'), clearly identifying it as filename-pattern search. The wildcard examples further distinguish it from sibling tools like list_directory, read_file, and get_file_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it—when you need to locate files by name pattern—but the description offers no explicit guidance about alternatives or when not to use it. No exclusions or conditions are mentioned, so the agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileA
Write or update a file. Automatically creates backup of existing files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path to write | |
| content | Yes | Content to write | |
| create_backup | No | Create backup of existing file (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects. It does disclose the important behavior 'Automatically creates backup of existing files', which adds value beyond just naming the operation. However, it does not mention overwrite semantics, whether directories are created, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences that immediately state the primary purpose and then the key side effect. Every sentence earns its place, and there is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple file-writing tool with full schema coverage, the description is largely sufficient. It communicates the operation and the backup side effect, though it omits the return value and fails to specify behavior on overwrite—both useful but not blocking for a basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for all three parameters, including descriptions for path, content, and create_backup. The description does not add parameter-specific meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Write or update') and the resource ('a file'), so an agent can tell this is the modification tool among siblings like read_file and delete_file. It does not explicitly contrast with those siblings, but the verb is unambiguous and specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied by the tool name and the description's verb ('write' or 'update'), but there is no explicit guidance on when to choose this over an alternative, nor any mention of prerequisites or edge cases. An agent would infer its use, but it isn't explicitly told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
v1.0.0- First observed
check_python_syntax - First observed
create_directory - First observed
delete_file - First observed
get_file_info - First observed
get_powershell_info - First observed
get_python_info - First observed
list_directory - First observed
read_file - First observed
run_powershell - First observed
run_powershell_script - First observed
run_python_code - First observed
run_python_script - First observed
search_files - First observed
write_file
TDQS
Most tools target distinct file, Python, or PowerShell operations with clear resource/action boundaries. The only real ambiguity is between run_python_script/run_python_code and run_powershell/run_powershell_script, but the script-vs-inline distinction is described.
All tools use lowercase snake_case with a clear verb-first pattern such as list_, read_, write_, run_, and get_. The naming is highly predictable and consistent across file, Python, and PowerShell clusters.
14 tools is at the upper edge of a reasonable scope and every major cluster has a purpose. The environment-info tools are somewhat peripheral, but the overall count is not bloated.
The file operations cover create/read/update/delete/list/search/info, and both Python and PowerShell support script execution plus diagnostics. Missing file copy/move/rename or directory deletion are minor gaps that agents can usually work around.
Maintenance
Related MCP Connectors
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI agents human-like control over Windows via visual perception and simulated mouse and keyboard input, enabling automation of any application without APIs.312MIT
- AlicenseNot gradedqualityCmaintenanceA free, open-source MCP server that gives AI agents real filesystem, terminal, git, and process control over your machine for inspection, diagnosis, and repair.MIT
- FlicenseNot gradedqualityDmaintenanceA powerful filesystem MCP server for AI agents with extensive system access, including filesystem operations, shell execution, Windows tools, reverse engineering, code intelligence, and agent orchestration.1-
- AlicenseNot gradedqualityCmaintenanceA local, dependency-free MCP server that gives AI agents controlled access to the active Windows desktop, enabling automated interaction with applications through screenshots, clicks, typing, and window management.87MIT
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/For-Sunny/darkside-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server