Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Mcp Server Developer Tool

    1 stars
    Go
    Updated Jun 30, 2025

    Table of Contents

    • Project Structure
    • Building and Running
    • Security Features
    • Configuring Allowed Paths
    • 1. Using Command-line Flags
    • 2. Using Environment Variables
    • 3. Programmatically
    • Default Behavior
    • Shell Command Security
    • Adding New Tools
    • Testing

    Table of Contents

    • Project Structure
    • Building and Running
    • Security Features
    • Configuring Allowed Paths
    • 1. Using Command-line Flags
    • 2. Using Environment Variables
    • 3. Programmatically
    • Default Behavior
    • Shell Command Security
    • Adding New Tools
    • Testing

    Documentation

    Modular MCP Server

    This is a Go implementation of the Model Context Protocol (MCP) server using the github.com/metoro-io/mcp-golang library, restructured in a modular way.

    Project Structure

    code
    mcp-server/
    ├── cmd/
    │   └── mcp-server/
    │       └── main.go           # Entry point
    ├── internal/
    │   ├── config/
    │   │   └── config.go         # Server configuration
    │   ├── server/
    │   │   ├── server.go         # MCP server implementation
    │   │   └── server_test.go    # Server tests
    │   ├── tools/
    │   │   ├── tool.go           # Tool interface
    │   │   ├── execute.go        # Execute shell command tool
    │   │   ├── showfile.go       # Show file tool
    │   │   ├── searchfile.go     # Search in file tool
    │   │   └── writefile.go      # Write file tool
    │   └── utils/
    │       └── response.go       # Common response utilities
    ├── go.mod
    ├── go.sum
    └── README.md

    Building and Running

    bash
    # Build the server
    cd cmd/mcp-server
    go build -o mcp-server
    
    # Run the server
    ./mcp-server

    Security Features

    The server now includes a path restriction system to limit file operations to specified directories.

    Configuring Allowed Paths

    You can configure allowed paths in several ways:

    1. Using Command-line Flags

    bash
    # Allow operations only in specific directories
    ./mcp-server --paths=/home/user/safe:/tmp/workspace
    
    # Explicitly deny specific paths even if within allowed paths
    ./mcp-server --paths=/home/user --deny-paths=/home/user/.ssh:/home/user/credentials

    2. Using Environment Variables

    bash
    # Set allowed paths
    export MCP_ALLOWED_PATHS=/home/user/safe:/tmp/workspace
    
    # Set denied paths
    export MCP_DENIED_PATHS=/home/user/.ssh:/home/user/credentials
    
    # Run the server
    ./mcp-server

    3. Programmatically

    You can also create a custom configuration programmatically:

    go
    cfg := config.DefaultConfig()
    cfg.AddAllowedPath("/path/to/allow")
    cfg.AddDeniedPath("/path/to/deny")
    
    server, err := server.NewServerWithConfig(cfg)

    Default Behavior

    • If no paths are specified, the server defaults to allowing only the current working directory.
    • Common sensitive directories like .git and .env are automatically added to the deny list.

    Shell Command Security

    For the execute_shell_command tool:

    • Commands are restricted to a whitelist of common utilities
    • Custom executable paths are checked against the allowed paths configuration
    • Working directories must be within allowed paths

    Adding New Tools

    To add a new tool:

    1. Create a new file in the internal/tools directory

    2. Implement the Tool interface

    3. Optionally implement the ConfigAware interface if your tool needs access to server configuration

    4. Register the tool in cmd/mcp-server/main.go

    Example:

    go
    // internal/tools/newtool.go
    package tools
    
    import (
        "github.com/metoro-io/mcp-golang"
        "mcp-server/internal/config"
        "mcp-server/internal/utils"
    )
    
    type NewToolArgs struct {
        // Tool arguments
    }
    
    type NewTool struct{
        config *config.ServerConfig
    }
    
    func NewNewTool() *NewTool {
        return &NewTool{}
    }
    
    // Implement ConfigAware interface
    func (t *NewTool) SetConfig(cfg *config.ServerConfig) {
        t.config = cfg
    }
    
    func (t *NewTool) Name() string {
        return "new_tool"
    }
    
    func (t *NewTool) Description() string {
        return "Description of the new tool"
    }
    
    func (t *NewTool) Execute(args NewToolArgs) (*mcp.ToolResponse, error) {
        // Access configuration if needed
        if t.config != nil {
            // Use configuration for security checks
        }
    
        // Tool implementation
        return utils.CreateSuccessResponse(result), nil
    }

    Testing

    bash
    go test ./...

    Similar MCP

    Based on tags & features

    • MC

      Mcpjungle

      Go·
      617
    • AN

      Anyquery

      Go·
      1.4k
    • YU

      Yutu

      Go·
      317
    • MC

      Mcp Cyclops

      Go·
      29

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • MC

      Mcpjungle

      Go·
      617
    • AN

      Anyquery

      Go·
      1.4k
    • YU

      Yutu

      Go·
      317
    • MC

      Mcp Cyclops

      Go·
      29

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k