Skip to main content
Glama
ham0215

Lightweight GitHub MCP

by ham0215
CLAUDE.md3.16 kB
# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview Lightweight GitHub MCP is a proxy server that wraps `@modelcontextprotocol/server-github` and exposes only whitelisted tools via YAML configuration. This dramatically reduces context consumption (100+ tools → 10-20 tools). ## Build and Run Commands ```bash # Install dependencies npm install # Build npm run build # Development mode (watch) npm run dev # Run the server npm start # 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 child process │ ▼ │ @modelcontextprotocol/server-github (~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` structure: ```yaml allowedTools: - get_file_contents - create_issue # ... only listed tools are exposed upstream: command: npx args: - "-y" - "@modelcontextprotocol/server-github" ``` Config file lookup order: 1. `CONFIG_PATH` environment variable 2. `./config.yaml` (current directory) 3. Project root `config.yaml` ## Environment Variables - `GITHUB_PERSONAL_ACCESS_TOKEN` (required) - GitHub PAT - `CONFIG_PATH` (optional) - Path to config.yaml ## Claude Desktop Configuration ```json { "mcpServers": { "github-lite": { "command": "node", "args": ["/path/to/lightweight-github-mcp/dist/index.js"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" } } } } ```

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ham0215/lightweight-github-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server