init commit, added server and client
This commit is contained in:
61
mcpServer/modules/filesystem.py
Normal file
61
mcpServer/modules/filesystem.py
Normal file
@@ -0,0 +1,61 @@
|
||||
import os
|
||||
from typing import List
|
||||
import subprocess
|
||||
def internal_listFiles(path: str) -> List[str]:
|
||||
"""List all files in the given path"""
|
||||
if os.path.exists(path) and os.path.isdir(path):
|
||||
result = os.listdir(path)
|
||||
return result
|
||||
print(f"Path does not exist or is not a directory: {path}")
|
||||
return []
|
||||
|
||||
def internal_readFile(path: str) -> str:
|
||||
"""Read the contents of a file"""
|
||||
if os.path.exists(path) and os.path.isfile(path):
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
return content
|
||||
except Exception as e:
|
||||
error_msg = f"Error reading file: {str(e)}"
|
||||
return error_msg
|
||||
return ""
|
||||
|
||||
def internal_writeFile(path: str, content: str) -> bool:
|
||||
"""Write the contents of a file"""
|
||||
try:
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(content)
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"Error writing file: {str(e)}")
|
||||
return False
|
||||
|
||||
def internal_executeCommand(command: str) -> str:
|
||||
"""Execute a command"""
|
||||
try:
|
||||
result = subprocess.run(command, shell=True, capture_output=True, text=True)
|
||||
output = {
|
||||
"stderr": result.stderr,
|
||||
"stdout": result.stdout,
|
||||
"returncode": result.returncode
|
||||
}
|
||||
return output
|
||||
except Exception as e:
|
||||
print(f"Error executing command: {str(e)}")
|
||||
return ""
|
||||
|
||||
def internal_writePythonFile(path: str, content: str) -> str:
|
||||
"""Write a Python file handling streaming and escape characters correctly."""
|
||||
content = content.encode('utf-8').decode('unicode_escape') if '\\n' in content else content
|
||||
if "```python" in content:
|
||||
content = content.split("```python")[1].split("```")[0].strip()
|
||||
elif "```" in content:
|
||||
content = content.split("```")[1].split("```")[0].strip()
|
||||
|
||||
try:
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(content)
|
||||
return f"File saved correctly in {path}"
|
||||
except Exception as e:
|
||||
return f"Error: {str(e)}"
|
||||
Reference in New Issue
Block a user