Node.js server for file and directory operations with fine-grained permission controls on what an agent may access.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add filesystem-rawr-ai --env ALLOWED_DIRECTORY='<ALLOWED_DIRECTORY>' --env HOST_DIR='<HOST_DIR>' --env CONTAINER_DIR='<CONTAINER_DIR>' --env ALLOWED_DIRECTORIES='<ALLOWED_DIRECTORIES>' --env SHAKA_PACKAGER_PATH='<SHAKA_PACKAGER_PATH>' --env VIDEO_PATH='<VIDEO_PATH>' -- node dist/index.js '{{config.ALLOWED_DIRECTORY}}'~/.codex/config.toml
[mcp_servers.filesystem-rawr-ai]
command = "node"
args = ["dist/index.js", "{{config.ALLOWED_DIRECTORY}}"]
env = { ALLOWED_DIRECTORY = "<ALLOWED_DIRECTORY>", HOST_DIR = "<HOST_DIR>", CONTAINER_DIR = "<CONTAINER_DIR>", ALLOWED_DIRECTORIES = "<ALLOWED_DIRECTORIES>", SHAKA_PACKAGER_PATH = "<SHAKA_PACKAGER_PATH>", VIDEO_PATH = "<VIDEO_PATH>" }
# codex mcp add filesystem-rawr-ai --env ALLOWED_DIRECTORY='<ALLOWED_DIRECTORY>' --env HOST_DIR='<HOST_DIR>' --env CONTAINER_DIR='<CONTAINER_DIR>' --env ALLOWED_DIRECTORIES='<ALLOWED_DIRECTORIES>' --env SHAKA_PACKAGER_PATH='<SHAKA_PACKAGER_PATH>' --env VIDEO_PATH='<VIDEO_PATH>' -- node dist/index.js '{{config.ALLOWED_DIRECTORY}}'~/.cursor/mcp.json
{
"mcpServers": {
"filesystem-rawr-ai": {
"command": "node",
"args": [
"dist/index.js",
"{{config.ALLOWED_DIRECTORY}}"
],
"env": {
"ALLOWED_DIRECTORY": "<ALLOWED_DIRECTORY>",
"HOST_DIR": "<HOST_DIR>",
"CONTAINER_DIR": "<CONTAINER_DIR>",
"ALLOWED_DIRECTORIES": "<ALLOWED_DIRECTORIES>",
"SHAKA_PACKAGER_PATH": "<SHAKA_PACKAGER_PATH>",
"VIDEO_PATH": "<VIDEO_PATH>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"filesystem-rawr-ai": {
"type": "stdio",
"command": "node",
"args": [
"dist/index.js",
"{{config.ALLOWED_DIRECTORY}}"
],
"env": {
"ALLOWED_DIRECTORY": "<ALLOWED_DIRECTORY>",
"HOST_DIR": "<HOST_DIR>",
"CONTAINER_DIR": "<CONTAINER_DIR>",
"ALLOWED_DIRECTORIES": "<ALLOWED_DIRECTORIES>",
"SHAKA_PACKAGER_PATH": "<SHAKA_PACKAGER_PATH>",
"VIDEO_PATH": "<VIDEO_PATH>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"filesystem-rawr-ai": {
"command": "node",
"args": [
"dist/index.js",
"{{config.ALLOWED_DIRECTORY}}"
],
"env": {
"ALLOWED_DIRECTORY": "<ALLOWED_DIRECTORY>",
"HOST_DIR": "<HOST_DIR>",
"CONTAINER_DIR": "<CONTAINER_DIR>",
"ALLOWED_DIRECTORIES": "<ALLOWED_DIRECTORIES>",
"SHAKA_PACKAGER_PATH": "<SHAKA_PACKAGER_PATH>",
"VIDEO_PATH": "<VIDEO_PATH>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"filesystem-rawr-ai": {
"command": "node",
"args": [
"dist/index.js",
"{{config.ALLOWED_DIRECTORY}}"
],
"env": {
"ALLOWED_DIRECTORY": "<ALLOWED_DIRECTORY>",
"HOST_DIR": "<HOST_DIR>",
"CONTAINER_DIR": "<CONTAINER_DIR>",
"ALLOWED_DIRECTORIES": "<ALLOWED_DIRECTORIES>",
"SHAKA_PACKAGER_PATH": "<SHAKA_PACKAGER_PATH>",
"VIDEO_PATH": "<VIDEO_PATH>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"filesystem-rawr-ai": {
"command": "node",
"args": [
"dist/index.js",
"{{config.ALLOWED_DIRECTORY}}"
],
"env": {
"ALLOWED_DIRECTORY": "<ALLOWED_DIRECTORY>",
"HOST_DIR": "<HOST_DIR>",
"CONTAINER_DIR": "<CONTAINER_DIR>",
"ALLOWED_DIRECTORIES": "<ALLOWED_DIRECTORIES>",
"SHAKA_PACKAGER_PATH": "<SHAKA_PACKAGER_PATH>",
"VIDEO_PATH": "<VIDEO_PATH>"
}
}
}
}Environment variables
ALLOWED_DIRECTORYHOST_DIRCONTAINER_DIRALLOWED_DIRECTORIESSHAKA_PACKAGER_PATHVIDEO_PATH
Replace the placeholders with your own credentials and keep them out of version control.