Skip to main content
Glama
ham0215

Lightweight GitHub MCP

by ham0215

lightweight-github-mcp

A lightweight proxy server that wraps github/github-mcp-server (GitHub's official MCP server) and exposes only whitelisted tools via YAML configuration. This dramatically reduces context consumption.

Prerequisites

  • Node.js >= 18.0.0

  • Docker (required for running upstream GitHub MCP server)

Related MCP server: mcp-compressor

Installation

# Install dependencies
npm install

# Build
npm run build

Usage

# Run the server
npm start

# Development mode (watch)
npm run dev

# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js

Architecture

Claude Desktop/Code
        │ MCP Protocol (stdio)
        ▼
┌─────────────────────────────┐
│  lightweight-github-mcp     │
│  ┌─────────┐  ┌──────────┐  │
│  │MCP      │→ │Tool      │→ │ config.yaml (allowedTools)
│  │Server   │  │Filter    │  │
│  └─────────┘  └──────────┘  │
│         ↑          │        │
│         │    ┌─────▼─────┐  │
│         │    │MCP Client │  │
│         │    └─────┬─────┘  │
└─────────┼──────────┼────────┘
          │          │ spawn Docker container
          │          ▼
          │  github/github-mcp-server (Docker, ~100 tools)
          │
    Claude requests

Key Components

  • src/index.ts - Entry point, config loading, server initialization

  • src/server.ts - MCP server implementation, tool filtering, meta-tool handlers

  • src/upstream-client.ts - Child process management for upstream GitHub MCP

  • src/config.ts - YAML configuration loading and validation

  • config.yaml - Tool whitelist configuration

Meta-Tools (Always Available)

The proxy provides four built-in meta-tools that are always exposed:

  • list_all_upstream_tools - List all upstream tools (allowed + blocked)

  • list_blocked_tools - List blocked tools by category

  • search_upstream_tools - Search upstream tools by keyword

  • get_tool_info - Get details about a specific tool

These help Claude discover tools and guide users to add needed tools to the whitelist.

Configuration

config.yaml

allowedTools:
  - get_file_contents
  - create_issue
  # ... only listed tools are exposed

# Using github/github-mcp-server via Docker
upstream:
  command: docker
  args:
    - "run"
    - "-i"
    - "--rm"
    - "-e"
    - "GITHUB_PERSONAL_ACCESS_TOKEN"
    - "ghcr.io/github/github-mcp-server"

Config File Lookup Order

  1. CONFIG_PATH environment variable

  2. ./config.yaml (current directory)

  3. Project root config.yaml

Environment Variables

Variable

Required

Description

GITHUB_PERSONAL_ACCESS_TOKEN

Yes

GitHub Personal Access Token

CONFIG_PATH

No

Path to config.yaml

Claude Desktop Configuration

Add the following to your Claude Desktop configuration file:

{
  "mcpServers": {
    "github-lite": {
      "command": "node",
      "args": ["/path/to/lightweight-github-mcp/dist/index.js"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    }
  }
}

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A lightweight proxy that allows users to filter MCP tools by whitelisting specific ones, preventing context window clutter. It sits between an MCP client and server to control tool visibility while transparently forwarding other protocol messages.
    5 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A proxy server that wraps existing MCP servers to significantly reduce token consumption by compressing tool descriptions into a two-step interface. It enables users to integrate extensive toolsets without exceeding context limits or incurring high API costs.
    124
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP proxy that bundles flat tool lists into hierarchical subcommand groups to reduce context token usage, supporting multi-server aggregation and auto-generated help from tool schemas.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A generic MCP proxy that filters which tools are exposed from a remote MCP server, reducing context window token usage by only loading the tools you actually need.
    6 npm
    1
    MIT