mcp-server-prototype
The Filesystem MCP Server is designed to facilitate access to file metadata and content, offering tools to retrieve and read information. It leverages the Spring Framework for improved maintainability and testability.
Filesystem MCP Server
An MCP server that provides resources for accessing file metadata and content.
Overview
The Filesystem MCP Server is a Model Context Protocol (MCP) server that provides resources for accessing file metadata and content. It allows clients to retrieve information about files and directories, as well as read the content of files.
Features
- Get metadata for files and directories (name, path, size, timestamps, permissions, etc.)
- Read the content of text and binary files
- Automatic MIME type detection based on file extension
- Comprehensive logging
- Dependency injection using Spring Framework for better maintainability and testability
Resources
The server provides the following resources:
file://metadata/{path}
- Get metadata for a file or directoryfile://content/{path}
- Get content of a file
For more information, see the .
Tools
The server provides the following tools:
list_files
- List files in a directory
For more information, see the .
Building and Running
Prerequisites
- Java 17 or higher
- Maven
- Spring Framework (automatically managed by Maven)
Building
mvn clean package
This will create an executable JAR file in the target
directory.
Running
java -jar target/filesystem-mcp-1.0-SNAPSHOT-jar-with-dependencies.jar
Documentation
- (for reference)
Architecture
The server uses a layered architecture:
- Configuration Layer: Spring configuration classes for dependency injection
- Service Layer: Core services for file system operations
- Resource Layer: MCP resources for exposing file system functionality
- Utility Layer: Utility classes for common operations
Dependency Injection
The server uses Spring Framework for dependency injection, which provides:
- Constructor injection for better testability
- Lifecycle management with
@PostConstruct
and@PreDestroy
- Configuration classes for explicit bean definitions
- Component scanning for automatic bean discovery
License
This project is licensed under the MIT License - see the file for details.