Commit 5c5a523
Changed files (1)
README.md
@@ -1,6 +1,5 @@
# Go MCP Servers
-[](https://github.com/xlgmokha/mcp/actions/workflows/go.yml)
[](https://opensource.org/licenses/MIT)
A pure Go implementation of Model Context Protocol (MCP) servers, providing drop-in replacements for the Python MCP servers with zero dependencies and static linking.
@@ -20,6 +19,7 @@ A pure Go implementation of Model Context Protocol (MCP) servers, providing drop
| **fetch** | Web content fetching with HTML to Markdown conversion | Complete |
| **filesystem** | Secure file operations with access controls | Complete |
| **git** | Git repository operations (status, add, commit, log, etc.) | Complete |
+| **maildir** | Email archive analysis for maildir format | Design |
| **memory** | Knowledge graph persistent memory system | Complete |
| **sequential-thinking** | Dynamic problem-solving with thought sequences | Complete |
| **time** | Time and timezone conversion utilities | Complete |
@@ -42,7 +42,7 @@ sudo make install
### Binary Releases
-Download pre-built binaries from the [releases page](https://github.com/xlgmokha/mcp/releases).
+Pre-built binaries will be available from the [releases page](https://github.com/xlgmokha/mcp/releases) once the first release is published.
### Claude Code Configuration
@@ -52,12 +52,10 @@ Replace Python MCP servers in your `~/.claude.json` configuration:
{
"mcpServers": {
"git": {
- "command": "mcp-git",
- "args": ["--repository", "/path/to/your/repo"]
+ "command": "mcp-git"
},
"filesystem": {
- "command": "mcp-filesystem",
- "args": ["/allowed/directory/path"]
+ "command": "mcp-filesystem"
},
"fetch": {
"command": "mcp-fetch"
@@ -91,7 +89,9 @@ Provides Git repository operations with safety checks.
**Usage:**
```bash
-mcp-git --repository /path/to/repo
+# Git server runs without additional arguments
+# Repository path is specified per-tool call
+mcp-git
```
### Filesystem Server (`mcp-filesystem`)
@@ -109,7 +109,9 @@ Secure file operations with configurable access controls.
**Usage:**
```bash
-mcp-filesystem /allowed/path1 /allowed/path2
+# Filesystem server runs without additional arguments
+# Allowed paths are validated per-tool call
+mcp-filesystem
```
### Fetch Server (`mcp-fetch`)
@@ -190,7 +192,7 @@ mcp-time
### Prerequisites
-- Go 1.21 or later
+- Go 1.21 or later (requires Go 1.24 for current build)
- Make (optional, for convenience)
### Building
@@ -198,7 +200,7 @@ mcp-time
```bash
# Build all servers
go build -o bin/mcp-git ./cmd/git
-go build -o bin/mcp-filesystem ./cmd/filesystem
+go build -o bin/mcp-filesystem ./cmd/filesystem
go build -o bin/mcp-fetch ./cmd/fetch
go build -o bin/mcp-memory ./cmd/memory
go build -o bin/mcp-sequential-thinking ./cmd/sequential-thinking
@@ -246,12 +248,12 @@ The project follows a clean, modular architecture with:
- **`pkg/mcp/`**: Core MCP protocol implementation and shared utilities
- **`pkg/*/`**: Individual MCP server implementations (reusable packages)
- - `pkg/gitserver/`: Git operations server
- - `pkg/fsserver/`: Filesystem operations server
- - `pkg/fetchserver/`: Web content fetching server
- - `pkg/memoryserver/`: Knowledge graph memory server
- - `pkg/thinkingserver/`: Sequential thinking server
- - `pkg/timeserver/`: Time and timezone server
+ - `pkg/git/`: Git operations server
+ - `pkg/filesystem/`: Filesystem operations server
+ - `pkg/fetch/`: Web content fetching server
+ - `pkg/memory/`: Knowledge graph memory server
+ - `pkg/thinking/`: Sequential thinking server
+ - `pkg/time/`: Time and timezone server
- **`cmd/*/`**: Minimal CLI entry points (thin wrappers around packages)
- **Standard Go project layout** with clear separation of concerns
- **Test-driven development** ensuring reliability
@@ -274,10 +276,13 @@ MIT License - see [LICENSE](LICENSE) file for details.
## Contributing
+We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
+
+Quick start:
1. Fork the repository
2. Create a feature branch
3. Add tests for new functionality
-4. Ensure all tests pass
+4. Ensure all tests pass: `make test`
5. Submit a pull request
## Acknowledgments