We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexei-led/aws-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
tools.py•1.78 KiB
"""Command parsing utilities for AWS MCP Server.
This module provides utilities for parsing commands:
- Pipe command detection and splitting
"""
from typing import TypedDict
class CommandResult(TypedDict):
"""Type definition for command execution results."""
status: str
output: str
def is_pipe_command(command: str) -> bool:
"""Check if a command contains a pipe operator.
Args:
command: The command to check
Returns:
True if the command contains a pipe operator, False otherwise
"""
return len(split_pipe_command(command)) > 1
def split_pipe_command(pipe_command: str) -> list[str]:
"""Split a piped command into individual commands.
Args:
pipe_command: The piped command string
Returns:
List of individual command strings
"""
commands = []
current_command = ""
in_single_quote = False
in_double_quote = False
escaped = False
for char in pipe_command:
if char == "\\" and not escaped:
escaped = True
current_command += char
continue
if not escaped:
if char == "'" and not in_double_quote:
in_single_quote = not in_single_quote
current_command += char
elif char == '"' and not in_single_quote:
in_double_quote = not in_double_quote
current_command += char
elif char == "|" and not in_single_quote and not in_double_quote:
commands.append(current_command.strip())
current_command = ""
else:
current_command += char
else:
current_command += char
escaped = False
if current_command.strip():
commands.append(current_command.strip())
return commands