Coding Tools is a Model Context Protocol (MCP) server designed to provide a robust backend for filesystem and code manipulation utilities. This TypeScript-based project offers a modular infrastructure for performing various coding-related operations with strong security measures and validation.
- Secure filesystem operations with path validation and sanitization
- Comprehensive shell command execution with security restrictions
- Git version control integration
- Modular architecture with separate components for:
- Configuration management
- Server implementations
- Coding utilities and tools
- Security and validation utilities
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"coding-tools": {
"command": "npx",
"args": ["-y", "@setkyar/coding-tools", "<directory-that-you-want-to-allow>"]
}
}
}- List directories
- Read and write files
- Navigate file system
- Text processing (cat, grep, sed, etc.)
- File management (ls, find, mkdir, etc.)
- Development tools (git, npm, node)
- Language: TypeScript
- Runtime: Node.js (v18+)
- Key Dependencies:
- Model Context Protocol SDK (v0.5.0)
- Zod for schema validation
- Node.js (version 18 or later)
- npm (Node Package Manager)
-
Clone the repository:
git clone <repository-url> cd coding-tools
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Watch mode (auto-recompile):
npm run watch
-
Code Formatting:
npm run format # Format all files npm run format:check # Check formatting without changes
-
Linting:
npm run lint # Lint the codebase npm run lint:fix # Automatically fix linting issues
coding-tools/
│
├── src/
│ ├── config/ # Configuration management
│ │ └── AppConfig.ts # Handles directory validation and security
│ │
│ ├── server/ # Server-related implementations
│ │ └── MCPServer.ts # MCP protocol server implementation
│ │
│ ├── tools/ # Coding utilities
│ │ ├── filesystem/ # Filesystem operations
│ │ ├── shell/ # Shell command execution
│ │ └── types.ts # Shared type definitions
│ │
│ └── utils/ # Utility functions
│ └── PathUtils.ts # Path handling and sanitization
│
├── dist/ # Compiled JavaScript files
└── index.ts # Main entry point
- Path traversal prevention through canonical path resolution
- Strict validation of allowed directories
- Shell command sanitization and whitelisting
- Execution environment restriction
After installation, run the server with allowed directories:
node dist/index.js <allowed-directory-1> [allowed-directory-2...]The server will only allow operations within the specified directories.
- Fork the repository
- Create a feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a Pull Request
Distributed under the MIT License.
For more information, please reach out to the project maintainer.