- Explore MCP Servers
- mcp-outlet
Mcp Outlet
What is Mcp Outlet
MCP Outlet is a universal runtime and proxy for Model-Context-Protocol (MCP) servers that allows any MCP-compatible server to run in a secure, serverless sandbox. It forwards JSON-RPC requests, provides tracing, and manages resource cleanup without requiring custom deployment for each server.
Use cases
MCP Outlet is ideal for developers needing to deploy and manage MCP-compatible servers quickly and securely. Use cases include setting up APIs for tools and prompts, conducting experiments with untrusted servers in a controlled environment, and facilitating end-to-end tracing for method calls in applications.
How to use
To use MCP Outlet, clone the repository and install the required JavaScript dependencies. Deploy the serverless function to Azure using a single command, then send JSON-RPC requests to your deployed endpoint or the local development server. For local development, start the server and make requests via curl.
Key features
Key features include a production-ready Python runtime with low latency, one-command deployment to Azure, plug-and-play capability for forwarding MCP methods, end-to-end tracing with hierarchical spans, an isolation layer for security, and unified schemas and tests between TypeScript and Python.
Where to use
MCP Outlet can be used in cloud environments, especially with Azure Functions, for deploying serverless applications. It is suitable for developing and testing MCP servers securely in local environments, as well as for companies needing to rapidly iterate on API design for machine learning tools or other services based on the Model-Context-Protocol.
Overview
What is Mcp Outlet
MCP Outlet is a universal runtime and proxy for Model-Context-Protocol (MCP) servers that allows any MCP-compatible server to run in a secure, serverless sandbox. It forwards JSON-RPC requests, provides tracing, and manages resource cleanup without requiring custom deployment for each server.
Use cases
MCP Outlet is ideal for developers needing to deploy and manage MCP-compatible servers quickly and securely. Use cases include setting up APIs for tools and prompts, conducting experiments with untrusted servers in a controlled environment, and facilitating end-to-end tracing for method calls in applications.
How to use
To use MCP Outlet, clone the repository and install the required JavaScript dependencies. Deploy the serverless function to Azure using a single command, then send JSON-RPC requests to your deployed endpoint or the local development server. For local development, start the server and make requests via curl.
Key features
Key features include a production-ready Python runtime with low latency, one-command deployment to Azure, plug-and-play capability for forwarding MCP methods, end-to-end tracing with hierarchical spans, an isolation layer for security, and unified schemas and tests between TypeScript and Python.
Where to use
MCP Outlet can be used in cloud environments, especially with Azure Functions, for deploying serverless applications. It is suitable for developing and testing MCP servers securely in local environments, as well as for companies needing to rapidly iterate on API design for machine learning tools or other services based on the Model-Context-Protocol.
Content
MCP Outlet
Universal runtime & proxy for Model-Context-Protocol (MCP) servers.
MCP Outlet lets you run any MCP-compatible server in a secure, serverless sandbox. It forwards JSON-RPC requests, adds tracing, and cleans up resources — no custom deployment per server required.
Table of Contents
Features
- ⚡ Production-ready Python runtime – sub-500 ms warm latency (Azure Functions)
- ☁️ One-command deployment –
npm run deploy
pushes to Azure - 🔌 Plug-and-play – forward any MCP method (
tools/*
,prompts/*
, …) - 🔍 End-to-end tracing – hierarchical spans, stdout/stderr capture
- 🛡️ Isolation layer – safely run untrusted or experimental MCP servers
- 🧰 Unified schemas & tests – Zod (TS) ↔︎ Pydantic (Py), shared test config
TypeScript implementation is available but not optimized; Python is the default runtime.
Quick Start
# 1. Clone & install JS dependencies
$ git clone https://github.com/<your-org>/mcp-outlet.git && cd mcp-outlet
$ npm install
# 2. Deploy the production-ready Python function to Azure (default)
$ npm run deploy
Need an Azure subscription? See /docs/DEVELOPMENT.md
for details.
Usage
Send JSON-RPC 2.0 requests to your deployed function (or local dev server):
curl -X POST https://<function-url>/mcpOutletPython \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/list",
"_meta": {
"server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}'
For local development:
$ npm start # local server on http://localhost:3001
Project Structure
├── src/ │ ├── python/ # Production runtime (Async, Pydantic, UV) │ └── js/ # Reference TypeScript implementation ├── deployments/ # Multi-cloud deploy helpers (Azure ready) ├── test/ # Shared test configuration & helpers └── config.ts # Deployment manifest
See the architecture docs for a deeper dive.
Development
# Watch TypeScript sources (optional)
$ npm run watch
# Run tests (JS + Python)
$ npm test # generates config, runs both suites, cleans up
Python runtime specifics live in src/python/app/handlers/
.
Key entry point: rpc.py
.
Contributing
Issues and pull requests are welcome! If you add a new MCP method:
- Update the
handlers_map
insrc/python/app/handlers/rpc.py
. - (Optional) Mirror the change in
src/js/handlers/rpc.ts
. - Add/extend test cases in
test/config.ts
(shared for both langs).
Please follow the existing code style (Black + Ruff for Python, Prettier + ESLint for TS).
License
This project is released under the Apache License. See LICENSE for details.