Overview
The Pass-through Proxy is a Model Context Protocol (MCP) server that acts as a middleware layer between AI assistants and MCP tools. It enables you to intercept, validate, modify, and monitor all tool interactions through a flexible hook system.Why Use Pass-through Proxy?
For a detailed explanation of why MCP needs hooks, see the repository README which explains the core concepts.Getting Started
Installation
The Pass-through Proxy is available as an npm package:Basic Setup
- Identify your target MCP server - The server you want to add middleware to
- Choose or create hooks - Pre-built hooks are available, or create custom ones
- Configure and run - Set environment variables and start the proxy
Configuration
Configure via environment variables:PORT
- Where the proxy listens (default: 34000)TARGET_SERVER_URL
- The MCP server to forward requests toHOOKS
- Comma-separated URLs of hook servers
Available Hooks
The monorepo includes several pre-built hooks. See Available Packages for the complete list:Audit Hook
Logs every request and response for debugging and compliance. Perfect for understanding what your AI is doing.Guardrail Hook
Implements security rules to filter and validate requests. Includes domain filtering and content restrictions.Rate Limit Hook
Enforces usage limits per user with configurable windows and clear retry-after responses.Explain Hook
Adds a “reason” parameter to all tools, encouraging transparency in AI tool usage.Custom Description Hook
Modifies tool descriptions based on context, useful for environment-specific guidance.Creating Custom Hooks
Hooks implement a simple interface with three possible responses:- Continue - Allow the request (possibly modified)
- Reject - Block the request with an error
- Respond - Return a response without calling the target
Integration Patterns
With MCP Hub
Use Pass-through Proxy as middleware in the MCP Hub to apply consistent policies across all tools.With Claude Desktop
Add hooks to any MCP server used by Claude Desktop by configuring the proxy as an intermediary.In Production
Deploy hooks as separate microservices for scalability and independent updates.Architecture
The proxy uses:- @modelcontextprotocol/sdk for the server implementation
- tRPC for type-safe hook communication
- Requests flow through hooks in order
- Responses flow back in reverse order
- Any hook can short-circuit the pipeline
Resources
- GitHub Repository: https://github.com/civicteam/mcp-tools
- Quick Start
- Example Hooks
- Hook Interface