41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
import os
|
|
from mcp.server.fastmcp import FastMCP
|
|
from modules.filesystem import internal_listFiles, internal_readFile, internal_writeFile, internal_executeCommand, internal_writePythonFile
|
|
|
|
mcpServer = FastMCP(
|
|
"Cariddi",
|
|
host=os.getenv("FASTMCP_HOST", os.getenv("MCP_HOST", "0.0.0.0")),
|
|
port=int(os.getenv("FASTMCP_PORT", os.getenv("MCP_PORT", "8000"))),
|
|
)
|
|
|
|
@mcpServer.tool()
|
|
def listFiles(path: str) -> list[str]:
|
|
"""List all files in the given path"""
|
|
return internal_listFiles(path)
|
|
|
|
@mcpServer.tool()
|
|
def readFile(path: str) -> str:
|
|
"""Read the contents of a file"""
|
|
return internal_readFile(path)
|
|
|
|
@mcpServer.tool()
|
|
def writeFile(path: str, content: str) -> bool:
|
|
"""Write the contents of a file"""
|
|
return internal_writeFile(path, content)
|
|
|
|
@mcpServer.tool()
|
|
def executeCommand(command: str) -> dict:
|
|
"""Execute a command"""
|
|
return internal_executeCommand(command)
|
|
|
|
@mcpServer.tool()
|
|
def writePythonFile(path: str, content: str) -> str:
|
|
"""Write a Python file handling streaming and escape characters correctly."""
|
|
return internal_writePythonFile(path, content)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
mcpServer.run(transport="streamable-http")
|
|
except KeyboardInterrupt:
|
|
print("Server stopped by user") |