Skip to main content
Glama

FastFS-MCP

by aj-geddes

FastFS-MCP

A high-speed MCP (Model Context Protocol) server for filesystem operations, Git integration, and interactive prompting capabilities, designed to work seamlessly with Claude and AI-native tooling.

🚀 Overview

FastFS-MCP enables AI assistants like Claude to interact with your local filesystem, manage Git repositories, and provide interactive experiences through a standardized JSON-based protocol. Whether you're building AI-assisted development workflows, creating content with Claude, or automating file management tasks, FastFS-MCP provides the bridge between your AI assistant and your local environment.

✨ Key Features

  • Ultra-fast filesystem operations: Access, modify, and manage files with minimal latency
  • Complete Git integration: Perform all standard Git operations and advanced repository analysis
  • Interactive prompting: Enable Claude to engage users through structured prompts and forms
  • GitHub authentication: Securely authenticate with GitHub using personal access tokens or GitHub Apps
  • JSON protocol: Communicate with Claude Desktop, VSCode, and other AI-native tools using a standard interface

🛠️ Core Components Architecture

💻 Installation & Quick Start

Docker Quick Start

# Build the Docker image docker build -t fastfs-mcp . # Run with your local filesystem mounted docker run -i --rm \ -v C:\\Users\\username:/mnt/workspace:rw \ fastfs-mcp

On Unix/macOS: replace with -v $HOME:/mnt/workspace

With GitHub Authentication

Using Personal Access Token
docker run -i --rm \ -v C:\\Users\\username:/mnt/workspace:rw \ -e GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here \ fastfs-mcp
Using GitHub App (Option 1: Private Key as Environment Variable)
docker run -i --rm \ -v C:\\Users\\username:/mnt/workspace:rw \ -e GITHUB_APP_ID=your_app_id \ -e GITHUB_APP_PRIVATE_KEY="$(cat path/to/private-key.pem)" \ -e GITHUB_APP_INSTALLATION_ID=your_installation_id \ fastfs-mcp
Using GitHub App (Option 2: Private Key from File in Workspace)
# First, copy your private key to the workspace cp path/to/private-key.pem C:\\Users\\username\\github-app-key.pem # Then run with the path to the private key docker run -i --rm \ -v C:\\Users\\username:/mnt/workspace:rw \ -e GITHUB_APP_ID=your_app_id \ -e GITHUB_APP_PRIVATE_KEY_PATH=/mnt/workspace/github-app-key.pem \ -e GITHUB_APP_INSTALLATION_ID=your_installation_id \ fastfs-mcp

🤖 Claude Desktop Configuration

{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "C:\\Users\\username:/mnt/workspace:rw", "fastfs-mcp" ] } } }

With GitHub Authentication

Using Personal Access Token
{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "-v", "C:\\Users\\username:/mnt/workspace:rw", "fastfs-mcp" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here" } } } }
Using GitHub App with Private Key as Environment Variable
{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_APP_ID", "-e", "GITHUB_APP_PRIVATE_KEY", "-e", "GITHUB_APP_INSTALLATION_ID", "-v", "C:\\Users\\username:/mnt/workspace:rw", "fastfs-mcp" ], "env": { "GITHUB_APP_ID": "your_app_id", "GITHUB_APP_PRIVATE_KEY": "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----", "GITHUB_APP_INSTALLATION_ID": "your_installation_id" } } } }
Using GitHub App with Private Key from File
{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_APP_ID", "-e", "GITHUB_APP_PRIVATE_KEY_PATH", "-e", "GITHUB_APP_INSTALLATION_ID", "-v", "C:\\Users\\username:/mnt/workspace:rw", "fastfs-mcp" ], "env": { "GITHUB_APP_ID": "your_app_id", "GITHUB_APP_PRIVATE_KEY_PATH": "/mnt/workspace/github-app-key.pem", "GITHUB_APP_INSTALLATION_ID": "your_installation_id" } } } }

📋 Tool Categories

FastFS-MCP provides a comprehensive set of tools organized into logical categories:

🗂️ Filesystem Operations

Basic Operations

MethodDescription
lsList files in a directory
cdChange the current working directory
pwdPrint the current working directory
readRead file contents
writeCreate or overwrite file content
grepFast file searching via ripgrep
whichLocate executables in PATH

Advanced Operations

MethodDescription
treeDisplay directory structure
findFind files by pattern
cpCopy files or directories
mvMove or rename files
rmRemove files or directories
mkdirCreate directories
statDisplay file metadata
chmodChange file permissions
duShow disk usage
dfShow disk space
touchCreate a new empty file or update timestamp

Text & File Processing

MethodDescription
sedStream editor for text transformation
gawkText processing with AWK
headShow first lines of a file
tailShow last lines of a file
wcCount lines, words, and bytes
cutSelect columns from file
sortSort lines of text files
uniqReport or filter repeated lines
nlNumber lines in a file
splitSplit a file into smaller parts
readlinkPrint the resolved path of a symbolic link
realpathPrint the resolved absolute path

Archive & Compression

MethodDescription
tarCreate/extract tar archives
gzipCompress/decompress files
zipCreate/extract zip archives

🌿 Git Operations

Basic Git Operations

MethodDescription
cloneClone a Git repository
initInitialize a new Git repository
addAdd file(s) to staging area
commitCommit changes to repository
statusShow working tree status
pushPush changes to remote repository
pullPull changes from remote repository
logShow commit logs
checkoutSwitch branches or restore files
branchList, create, or delete branches
mergeJoin development histories together
showShow Git objects
diffShow changes between commits/working tree
remoteManage remote repositories
stashStash changes in working directory
tagManage Git tags
configGet or set repository or global options
fetchDownload objects and refs from another repository
blameShow what revision and author last modified each line of a file
git_grepPrint lines matching a pattern in tracked files
headShow the current HEAD commit information

Advanced Git Analysis

MethodDescription
contextGet comprehensive repo context
repo_infoGet detailed repository information
validateCheck repository for common issues
summarize_logGenerate commit log statistics
suggest_commitAuto-suggest commit messages
audit_historyAudit repository for security issues

🤝 Interactive Prompts

Prompt Templates

TemplateDescription
confirm_file_overwriteAsk user to confirm before overwriting an existing file
confirm_directory_deleteWarn user before deleting a directory
file_not_found_optionsProvide options when a file is not found
enter_file_contentGet content for a file from the user
enter_search_patternAsk user for a search pattern
project_initializationCollect information to initialize a new project
coding_taskDefine parameters of a coding task
select_file_from_listLet user select a file from a list
customCreate a completely custom prompt message

Interactive Functions

FunctionDescription
promptSend an interactive prompt to the user
get_prompt_typesList available prompt templates
interactive_writeWrite file with user-provided content
confirm_overwriteAsk before overwriting files
select_fileLet user choose from file list
get_file_contentGet content for file from user
init_projectInitialize project with guided setup

📝 Protocol Usage

FastFS-MCP uses a simple JSON-based protocol to communicate with Claude and other AI tools.

Request Format

{ "method": "METHOD_NAME", "params": { "param1": "value1", "param2": "value2" } }

Response Format

{ "result": RESPONSE_DATA }

Examples

Basic File Operation
// Request { "method": "ls", "params": { "path": "." } } // Response { "result": ["main.tf", "README.md"] }
Git Repository Context
// Request { "method": "context", "params": {} } // Response { "result": { "current_branch": "main", "repository_root": "/mnt/workspace/my-project", "is_clean": false, "head_commit": "a1b2c3d4e5f6...", "remotes": { "origin": "https://github.com/user/repo.git" }, "recent_commits": [ "a1b2c3d4 Update README.md", "b2c3d4e5 Fix bug in main function", "c3d4e5f6 Add new feature" ] } }
Interactive Prompt Flow
// Request { "method": "prompt", "params": { "prompt_type": "custom", "message": "What would you like to name your file?" } } // Response to stdout (visible to user) { "type": "user_prompt", "prompt": "What would you like to name your file?" } // User response (from stdin) { "type": "user_response", "response": "myfile.txt" } // Final result to Claude { "result": { "response": "myfile.txt", "timestamp": 1622548123.45 } }

🔧 GitHub Authentication

FastFS-MCP supports two methods of GitHub authentication to enable secure Git operations with GitHub repositories:

Personal Access Token (PAT) Authentication

When a GitHub PAT is provided via the GITHUB_PERSONAL_ACCESS_TOKEN environment variable, Git operations that interact with GitHub (clone, push, pull, fetch) will automatically use the token for authentication, enabling:

  • Access to private repositories
  • Operations that require authentication (push, create repo, etc.)
  • Avoiding rate limits on API calls

GitHub App Authentication

GitHub App authentication provides more granular permissions and better security compared to Personal Access Tokens:

  • Fine-grained permissions: GitHub Apps can be configured with specific permissions
  • Repository-specific access: GitHub Apps can be installed on specific repositories
  • Organization-level control: Organization admins can control which apps are installed
  • Automatic token refresh: Installation tokens expire after 1 hour and are automatically refreshed

To use GitHub App authentication, provide the following environment variables:

  • GITHUB_APP_ID: Your GitHub App's ID

And one of these options for the private key:

  • GITHUB_APP_PRIVATE_KEY: The private key content for your GitHub App (PEM format) as an environment variable
  • GITHUB_APP_PRIVATE_KEY_PATH: Path to a file containing the private key (PEM format)

Optionally:

  • GITHUB_APP_INSTALLATION_ID: The specific installation ID to use (if not provided, FastFS-MCP will attempt to use the first installation)
Security Considerations for Private Keys

When using GitHub App authentication, consider these security practices for managing private keys:

  1. File-based private key (recommended):
    • Store your private key in your workspace and use GITHUB_APP_PRIVATE_KEY_PATH
    • Ensure proper file permissions (chmod 600) on the private key file
    • This approach avoids having the key in process environment variables or shell history
  2. Environment variable private key:
    • Use this for development or when you can't mount a file
    • Be aware that environment variables can be visible in process lists on some systems

🐳 Docker Environment

FastFS-MCP runs in a Docker container for portability and isolation, with the following tools installed:

  • ripgrep for high-performance file searching
  • jq for JSON parsing and manipulation
  • sed and gawk for text processing
  • tree for directory visualization
  • fd-find for alternative file finding
  • coreutils for standard Unix tools
  • zip/unzip, gzip, and xz-utils for compression
  • git for repository operations

🚀 Use Cases

  • AI-assisted development: Let Claude help you code, manage files, and use Git all within the same conversation
  • Content creation workflows: Enable Claude to read, write, and organize files for writing projects
  • Repository management: Get insights into Git repositories and automate common Git operations
  • Interactive project setup: Guide users through structured project initialization with interactive prompts
  • System administration: Perform file system operations and maintenance tasks with AI assistance

🔒 Security Considerations

FastFS-MCP provides direct access to your filesystem and Git repositories. Consider the following security practices:

  1. Only run FastFS-MCP with appropriate file system permissions
  2. Mount only the directories you need to expose to Claude
  3. Use separate GitHub PATs with limited scope for authentication, or prefer GitHub Apps for better security
  4. Regularly review the logs and commands executed by the server
  5. For GitHub Apps, store the private key securely and use installation-specific tokens
  6. When using GitHub App authentication, prefer file-based private keys over environment variables when possible

📄 License

FastFS-MCP is released under the MIT License. See the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📚 Further Documentation


Built for AI-enhanced CLI and developer workflows with speed, structure, and simplicity.

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    An MCP server that allows Claude AI to perform filesystem operations including reading, writing, listing, moving files, and searching directories within specified allowed paths.
    Last updated -
    5
    1
    JavaScript
  • -
    security
    A
    license
    -
    quality
    An MCP server that implements Claude Code-like functionality, allowing the AI to analyze codebases, modify files, execute commands, and manage projects through direct file system interactions.
    Last updated -
    179
    Python
    MIT License
    • Apple
    • Linux
  • -
    security
    F
    license
    -
    quality
    An MCP server that allows AI assistants like Claude to execute terminal commands on the user's computer and return the output, functioning like a terminal through AI.
    Last updated -
    7
    Python
    • Apple
  • -
    security
    A
    license
    -
    quality
    A comprehensive MCP (Model Context Protocol) server for file system operations, providing Claude and other AI assistants with access to local files and directories.
    Last updated -
    Python
    MIT License
    • Apple
    • Linux

View all related MCP servers

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/aj-geddes/fastfs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server