MCP Proxy with PII Redaction
An MCP proxy that aggregates multiple MCP servers behind a single HTTP entrypoint, with built-in PII redaction capabilities.
- Proxy multiple MCP servers: Aggregate tools, prompts, and resources from many servers through a single HTTP endpoint
- Multiple transport types: Support for
stdio,sse, andstreamable-httpclient transports - Server transport options: Serve via Server-Sent Events (SSE) or streamable HTTP
- PII redaction: Automatic redaction of PII using GCS-backed dictionaries and generic pattern matching
- Tool filtering: Allow or block specific tools per server configuration
- Authentication: Bearer token authentication with per-server or global configuration
- Audit logging: Optional verbose audit logging for redaction operations
- Flexible configuration: JSON configuration with environment variable interpolation
- Configuration - Configuration reference and examples
- Usage - CLI options, endpoints, authentication, and tool filtering
- PII Redaction - Redaction setup and configuration
- Deployment - Docker and production deployment
- Node.js >= 22.14.0
- npm
git clone https://github.com/growthspace-engineering/gs-mcp-proxy-pii-redactor.git
cd gs-mcp-pii-redactor
npm install# Development mode with watch
npm run start:dev
# Production build
npm run build
npm run start:prod
# With custom config file
npm run start:prod -- --config /path/to/config.json
# With remote config URL
npm run start:prod -- --config https://example.com/config.json{
"mcpProxy": {
"baseURL": "http://localhost:8083",
"addr": ":8083",
"name": "MCP Proxy with PII Redaction",
"version": "1.0.0",
"type": "streamable-http"
},
"mcpServers": {
"github": {
"transportType": "streamable-http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
}
}
}See Configuration for full configuration reference and examples.
# Unit tests
npm test
# E2E tests (requires GITHUB_TOKEN)
export GITHUB_TOKEN=your_token_here
npm run test:e2eNote: All E2E tests require a valid GITHUB_TOKEN environment variable. The test suite validates both SSE and Streamable HTTP transport options.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project follows the all-contributors specification. Contributions of any kind welcome!
This project adheres to a Code of Conduct. Please read CODE_OF_CONDUCT.md before contributing.
Thanks goes to these wonderful people (emoji key):
Neil Kalman π» π |
![]() Romario Nijim π€ π§ π¬ |
When you merge a pull request, our GitHub Actions workflow automatically:
- Adds the contributor to the
.all-contributorsrcconfiguration - Updates the Contributors section in this README
- Creates a commit with the changes
You can also manually add contributors using:
npm run contributors:add -- <username> <contribution-type>Contribution types include: code, doc, test, bug, ideas, review, and more.
- This project was inspired by the TBXark/mcp-proxy project, a Go-based MCP proxy server that aggregates multiple MCP servers through a single HTTP endpoint.
MIT
