MCProxy
Provides integration with GitHub by proxying its MCP server, enabling LLM clients to interact with GitHub features while reducing context token usage.
Click on "Deploy 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., "@MCProxycheck the status of backend servers"
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.
MCProxy 🚀
MCProxy is an MCP server proxy designed to reduce Model Context Protocol (MCP) context window bloat while preserving LLM client permissions. It strips heavy metadata and JSON schemas from backend tool definitions during the discovery phase, forcing LLM clients to fetch full schemas dynamically on-demand via a deduplicated Master Server.
Disclosure: This project contains code generated mostly by Gemini, with human editing. It is not intended to be production-ready and is not feature-complete and compatible with all scenarios.
Features
Context Compression: Strips heavy descriptions, nested properties, and large enums from backend tools, reducing token overhead significantly while preserving client-side policies and call-time permissions.
Master Metadata Routing: Exposes a single
get_tool_detailshelper tool on a master endpoint (/mcp) so individual backend servers stay uncluttered.Multi-Transport Support: Manages backend servers running over Stdio, Server-Sent Events (SSE), and modern Streamable HTTP.
Fleet Management Web UI: Includes an embedded dashboard at
/statusdisplaying live server statuses and a simple one-click Restart action for individual downed or unauthenticated backends.Nix & Home Manager Native: Easily deployable and configurable declaratively using Nix derivations and Home Manager modules.
Related MCP server: nimble
Project Structure
src/
├── types.ts # TypeScript interfaces and state types
├── backendManager.ts # MCP SDK client/server lifecycle, transport factories, & caching
├── index.ts # Express routing, Fleet Manager UI logic, & entry point
└── views/
└── status.ejs # EJS template for the Fleet Status dashboardGetting Started & Development
Prerequisites
Node.js (v22+)
Nix (optional, but recommended for development and deployment)
Local Development (via Nix DevShell)
Clone the repository and enter the Nix development environment:
nix develop
npm installStart the proxy locally using tsx:
npm run devConfiguration (mcpServers.json)
MCProxy is configured via a JSON file (or generated via Nix) defining your backend MCP servers. It supports environment variable interpolation using the ${VAR_NAME} syntax.
{
"filesystem": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/code"]
},
"github": {
"transport": "sse",
"url": "https://mcp.internal.mycompany.com/github/sse",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
}
}Nix & Home Manager Integration
This repository includes a flake.nix and module.nix to integrate MCProxy seamlessly into your Home Manager setup.
Enable the Service
In your Home Manager configuration, enable the proxy, define your backend servers, and pipe the auto-generated configuration directly into your system-wide MCP client setup (programs.mcp):
{ config, pkgs, inputs, ... }: {
services.mcproxy = {
enable = true;
port = 11262;
servers = {
filesystem = {
transport = "stdio";
command = "npx";
args = [ "-y" "@modelcontextprotocol/server-filesystem" "/home/user/code" ];
};
};
};
# Automatically exposes the Master and Proxied Streamable HTTP endpoints
programs.mcp = {
enable = true;
servers = config.services.mcproxy.generatedConfig;
};
}Status Dashboard
Once running, MCProxy exposes a built-in web management portal at: http://127.0.0.1:11262/status.
Live Monitoring: View whether your backend servers are RUNNING, STARTING, or encountering an ERROR (such as a 401 Unauthorized token expiration).
Individual Restarts: If a backend server drops or requires an updated OAuth token, resolve the issue externally and click Restart right from the UI to re-initialize that specific backend without restarting the entire proxy fleet.
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for building and testing AI agents with multi-model experimentation and insights.
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
- ArcjetOAuthcom.arcjet
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA 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.124Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA token-efficient MCP server that reduces context window bloat by lazy loading tool descriptions and proxying calls through three simple tools, with a dashboard for managing connections.7 npm9MIT
- AlicenseAqualityDmaintenanceA proxy MCP server that reduces token usage by caching tool definitions locally and loading them on demand, supporting multiple backend MCP servers.51Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA proxy MCP server that manages multiple upstream MCP servers by grouping them and loading tool schemas on-demand, reducing LLM context usage.3,636 npm51MIT