Required for installation of the MCP server and supports Go development workflows where Git is needed for source control.
Provides a macOS installation method for the Go Development MCP Server (coming soon).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Golang Dev Toolsrun this Go program that prints hello world"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Go Development MCP Server
The Go Development MCP Server is a comprehensive solution for integrating Go development workflows with AI assistants like Claude Desktop or other MCP-compatible tools. It enables AI assistants to compile, test, run, and analyze Go code directly through the Model Context Protocol (MCP).
Features
Go Build: Compile Go code and receive detailed feedback
Go Test: Run tests on Go code with support for coverage analysis
Go Run: Compile and execute Go programs with command-line arguments
Go Mod: Manage Go module dependencies (init, tidy, download, etc.)
Go Format: Format Go code according to standard conventions
Go Analyze: Analyze Go code for issues using static analysis tools
Go Workspace: Manage Go workspaces for multi-module development (NEW!)
New in This Release
MCP v0.29.0 Compatibility: Updated to use the latest Model Context Protocol v0.29.0
Go Workspace Support: Complete workspace management for multi-module Go projects
Project Path Support: All tools now support working with existing Go project directories
Workspace-Aware Execution: All tools can operate within Go workspace context
Strategy Pattern: Flexible execution strategies for code snippets vs. project directories vs. workspaces
Enhanced Response Formatting: Better structured responses with natural language metadata
Improved Error Handling: More detailed and helpful error messages
End-to-End Testing: Comprehensive behavioral testing scripts to verify functionality
Modern Testing Framework: New Go-based testing framework with parallel test execution
Related MCP server: Jotdown
Go Workspace Support
The server now includes comprehensive support for Go workspaces, enabling multi-module development workflows. This feature allows you to:
Initialize Workspaces: Create new Go workspaces with
go work initManage Modules: Add, remove, and organize modules within workspaces
Unified Operations: Run Go commands across all modules in a workspace
Dependency Synchronization: Keep dependencies consistent across modules
Workspace-Aware Tools: All existing tools (build, test, run, etc.) work seamlessly with workspaces
Workspace Commands
The go_workspace tool provides the following subcommands:
init: Initialize a new Go workspaceuse: Add modules to an existing workspacesync: Synchronize workspace dependenciesedit: View and modify workspace configurationvendor: Vendor all workspace dependenciesinfo: Get detailed workspace information
Workspace Integration
All existing tools support workspace contexts through the workspace_path parameter:
{
"tool": "go_build",
"arguments": {
"workspace_path": "/path/to/workspace",
"module": "specific-module",
"code": "package main..."
}
}Testing
The server includes comprehensive testing capabilities to verify that it works correctly with real Go projects. Testing is provided through two frameworks:
Go Testing Framework: Modern, parallel test framework using Go's native testing facilities and testify
PowerShell Testing: Legacy end-to-end behavioral tests (for backward compatibility)
The tests verify all input modes (code-only, project path, and hybrid) and ensure that the execution strategies work as expected.
Running the Tests
Go Tests (Recommended)
# Run all Go tests
cd go-dev-mcp
.\scripts\testing\run_tests.ps1 -TestType go -UseGoTests -WithCoverage
# Run with race detection
.\scripts\testing\run_tests.ps1 -TestType go -UseGoTests -WithRaceDetection
# Run directly with Go
go test -v ./internal/tools/...PowerShell Tests (Legacy)
# Quick tests
cd go-dev-mcp\scripts\testing
.\basic\simple_test.ps1
# Comprehensive tests
cd go-dev-mcp\scripts\testing
.\core\all_tools_test.ps1 -Verbose
# Strategy-specific tests
cd go-dev-mcp\scripts\testing
.\strategies\hybrid_strategy_test.ps1 -VerboseFor detailed information about the testing framework, see the Testing Documentation.
The testing scripts are organized into categories:
Basic tests: Simple, quick-running tests for sanity checks
Core tests: Comprehensive tests covering all tools and input modes
Strategy tests: Tests focused on specific execution strategies like hybrid execution
See the testing README for more details.
Installation
Prerequisites
Go 1.21 or higher
Git
Windows
Manual Installation
Clone the repository:
git clone https://github.com/MrFixit96/go-dev-mcp.git cd go-dev-mcpBuild the executable:
go build -o go-dev-mcp.exe ./cmd/serverMove the executable to a location in your PATH or reference it directly in your Claude Desktop configuration.
Using WinGet (Coming Soon)
winget install go-dev-mcpmacOS
Using Homebrew (Coming Soon)
brew install go-dev-mcpManual Installation (macOS)
Clone the repository:
git clone https://github.com/MrFixit96/go-dev-mcp.git cd go-dev-mcpBuild the executable:
go build -o go-dev-mcp ./cmd/serverMove the executable to a location in your PATH:
sudo mv go-dev-mcp /usr/local/bin/
Linux
Clone the repository:
git clone https://github.com/MrFixit96/go-dev-mcp.git cd go-dev-mcpBuild the executable:
go build -o go-dev-mcp ./cmd/serverMove the executable to a location in your PATH:
sudo mv go-dev-mcp /usr/local/bin/
Claude Desktop Integration
To integrate with Claude Desktop, update your claude_desktop_config.json file:
Windows Configuration
{
"mcpServers": {
"go-dev": {
"command": "C:\\path\\to\\go-dev-mcp.exe",
"args": [],
"env": {
"GOCACHE": "%LOCALAPPDATA%\\go-build",
"LOCALAPPDATA": "%LOCALAPPDATA%",
"GOPATH": "%USERPROFILE%\\go",
"GOROOT": "%GOROOT%",
"PATH": "%PATH%",
"DEBUG": "*"
},
"disabled": false,
"autoApprove": []
}
}
}Environment Variables Used:
%LOCALAPPDATA%: Resolves toC:\Users\{username}\AppData\Local%USERPROFILE%: Resolves toC:\Users\{username}%GOROOT%: Go installation directory (automatically set by Go installer)%PATH%: System PATH for Go binary access
Alternative using Go Environment Variables:
{
"mcpServers": {
"go-dev": {
"command": "C:\\path\\to\\go-dev-mcp.exe",
"args": [],
"env": {
"DEBUG": "*"
},
"disabled": false,
"autoApprove": []
}
}
}Note: The alternative configuration relies on Go's default environment detection. Go automatically uses
%LOCALAPPDATA%\go-buildfor GOCACHE and%USERPROFILE%\gofor GOPATH when not explicitly set.
macOS and Linux
{
"mcpServers": {
"go-dev": {
"command": "/path/to/go-dev-mcp",
"args": [],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}Usage
Working with Code Snippets
All tools accept Go code directly through the code parameter:
// Use go_build to compile code
go_build(code: "package main\n\nfunc main() {\n\tfmt.Println(\"Hello World\")\n}")
// Run tests with go_test
go_test(code: "package main", testCode: "package main\n\nimport \"testing\"\n\nfunc TestHello(t *testing.T) {...}")Working with Project Directories
All tools now support working with existing Go project directories through the new project_path parameter:
// Compile a project
go_build(project_path: "/path/to/your/go/project")
// Run tests in a project
go_test(project_path: "/path/to/your/go/project", verbose: true, coverage: true)
// Format all files in a project
go_fmt(project_path: "/path/to/your/go/project")
// Analyze a project for issues
go_analyze(project_path: "/path/to/your/go/project", vet: true)Configuration
The server uses a configuration file located at:
Windows:
%APPDATA%\go-dev-mcp\config.jsonmacOS:
~/Library/Application Support/go-dev-mcp/config.jsonLinux:
~/.config/go-dev-mcp/config.json
A default configuration file will be created on first run, which you can customize:
{
"version": "1.0.0",
"logLevel": "info",
"sandboxType": "process",
"resourceLimits": {
"cpuLimit": 2,
"memoryLimit": 512,
"timeoutSecs": 30
}
}Security
The Go Development MCP Server runs commands in a sandboxed environment with:
Process isolation
Resource limits (CPU, memory, execution time)
Temporary directory containment
No network access by default
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Roadmap
Add support for Go workspaces
Implement Docker-based sandbox for stronger isolation
Add debugging capabilities
Support for Go race detector
Improved error reporting with suggestions
Workspace Usage Examples
Basic Workspace Operations
Creating a New Workspace
{
"tool": "go_workspace",
"arguments": {
"command": "init",
"workspace_path": "/path/to/my-workspace",
"modules": ["./module1", "./module2"]
}
}Adding Modules to Existing Workspace
{
"tool": "go_workspace",
"arguments": {
"command": "use",
"workspace_path": "/path/to/my-workspace",
"modules": ["./new-module", "../external-module"]
}
}Getting Workspace Information
{
"tool": "go_workspace",
"arguments": {
"command": "info",
"workspace_path": "/path/to/my-workspace"
}
}Multi-Module Development Workflow
1. Initialize Workspace Structure
# Create workspace directory
mkdir my-project-workspace
cd my-project-workspace
# Initialize with MCP
{
"tool": "go_workspace",
"arguments": {
"command": "init",
"workspace_path": ".",
"modules": ["./api", "./client", "./shared"]
}
}2. Build Across All Modules
{
"tool": "go_build",
"arguments": {
"workspace_path": "/path/to/my-workspace"
}
}3. Test Specific Module
{
"tool": "go_test",
"arguments": {
"workspace_path": "/path/to/my-workspace",
"module": "api",
"coverage": true
}
}4. Synchronize Dependencies
{
"tool": "go_workspace",
"arguments": {
"command": "sync",
"workspace_path": "/path/to/my-workspace"
}
}Advanced Workspace Features
Workspace with Custom Code
{
"tool": "go_run",
"arguments": {
"workspace_path": "/path/to/my-workspace",
"module": "api",
"code": "package main\n\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Running in workspace context\")\n}"
}
}Vendor All Dependencies
{
"tool": "go_workspace",
"arguments": {
"command": "vendor",
"workspace_path": "/path/to/my-workspace"
}
}Format All Modules
{
"tool": "go_fmt",
"arguments": {
"workspace_path": "/path/to/my-workspace"
}
}Error Handling and Troubleshooting
Common Workspace Issues
Missing go.work file: Use
initcommand to create workspaceModule not found: Use
usecommand to add modulesDependency conflicts: Use
synccommand to resolveBuild failures: Check module-specific issues with targeted commands
Workspace Validation
{
"tool": "go_workspace",
"arguments": {
"command": "info",
"workspace_path": "/path/to/my-workspace"
}
}Returns detailed workspace structure and validation status.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.