MCP ExplorerExplorer

Mcp Outlet

@Datarailson 4 days ago
3 Apache-2.0
FreeCommunity
AI Systems
MCP Outlet is a secure runtime for running MCP servers with JSON-RPC support.

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

  1. Features
  2. Quick Start
  3. Usage
  4. Project Structure
  5. Development
  6. Contributing
  7. License

Features

  • Production-ready Python runtime – sub-500 ms warm latency (Azure Functions)
  • ☁️ One-command deploymentnpm 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:

  1. Update the handlers_map in src/python/app/handlers/rpc.py.
  2. (Optional) Mirror the change in src/js/handlers/rpc.ts.
  3. 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.

Tools

No tools

Comments