Skip to main content

Uno MCP Stdio

PyPI version Python 3.11+ License: MIT

Local stdio proxy for Uno MCP Gateway - Provides local proxy for MCP clients that don't support OAuth authentication.

🎯 Problem Solved

Many MCP clients (such as Manus, Cherry Studio) don't support OAuth 2.0 authentication and cannot directly connect to MCP servers that require authentication.

uno-mcp-stdio acts as a local proxy:

  1. Communicates with MCP clients using stdio mode (supported by all clients)
  2. Securely stores OAuth tokens locally
  3. Proxies requests to remote Uno Gateway, automatically attaching authentication information
┌─────────────────┐     stdio      ┌─────────────────┐     HTTPS      ┌─────────────────┐
│   MCP Client    │ ◄────────────► │  uno-mcp-stdio  │ ◄────────────► │  Uno Gateway    │
│ (No OAuth)      │                │  (Local Proxy)  │   + Bearer     │  (Remote)       │
└─────────────────┘                └─────────────────┘                └─────────────────┘

🚀 Quick Start

Installation

# Run directly with uvx (recommended)
uvx uno-mcp-stdio

# Or install with pip
pip install uno-mcp-stdio
uno-mcp-stdio

First Run

OAuth authentication is required on first run:

$ uvx uno-mcp-stdio
🔐 Authentication required
📋 Please open the following link in your browser to complete authentication:
   https://mcpmarket.cn/oauth/authorize?...

⏳ Waiting for authentication...
✅ Authentication successful! Token saved
🚀 Uno MCP Stdio is ready

Configure MCP Client

Configure stdio server in your MCP client:

Manus / Cherry Studio Configuration Example:

{
  "mcpServers": {
    "uno": {
      "command": "uvx",
      "args": ["uno-mcp-stdio"]
    }
  }
}

If installed with pip:

{
  "mcpServers": {
    "uno": {
      "command": "uno-mcp-stdio"
    }
  }
}

⚙️ Configuration

Environment Variables

Variable Description Default
UNO_GATEWAY_URL Uno Gateway URL https://uno.mcpmarket.cn/mcp
UNO_CREDENTIALS_PATH Token storage path ~/.uno-mcp/credentials.json
UNO_DEBUG Debug mode false

Token Storage

Authenticated tokens are stored in ~/.uno-mcp/credentials.json:

{
  "access_token": "xxx",
  "refresh_token": "xxx",
  "expires_at": 1736345678,
  "token_type": "Bearer"
}

Clear Authentication

# Delete token file to re-authenticate
rm ~/.uno-mcp/credentials.json

🔐 Authentication Flow

1. Start uno-mcp-stdio
   │
   ▼
2. Check ~/.uno-mcp/credentials.json
   │
   ├─ Valid token → Proxy requests directly
   │
   └─ No/expired token → Start authentication flow
      │
      ▼
3. Start temporary HTTP server (localhost:random port)
   │
   ▼
4. Generate OAuth URL, display to user
   │
   ▼
5. User completes authorization in browser
   │
   ▼
6. MCPMarket callback to local server
   │
   ▼
7. Exchange token, save to file
   │
   ▼
8. Close temporary server, start proxying

🛠️ Development

# Clone repository
git clone https://github.com/agentrix-ai/uno-mcp-stdio.git
cd uno-mcp-stdio

# Install dependencies
uv sync

# Run
uv run uno-mcp-stdio

# Debug mode
UNO_DEBUG=true uv run uno-mcp-stdio

📄 License

MIT

🌐 Languages

Metadata

Release files for uno-mcp-stdio 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uno-mcp-stdio 0.2.1
File Size Uploaded Provenance
uno_mcp_stdio-0.2.1.tar.gz 22.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for uno-mcp-stdio 0.2.1
File Interpreter ABI Platform
uno_mcp_stdio-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 45.3 kB

Release files / uno_mcp_stdio-0.2.1.tar.gz

Download URL uno_mcp_stdio-0.2.1.tar.gz
Size 22.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4ad9fc35772ea28a69577890b01e2c0c0ff463c4546aa287acb9f20fcedeaa4e
BLAKE2b-256 checksum
How to use checksums
352870b9bd3143592fffbc54a5bb565292892c5cb558f2d9e2520075aa602645
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.9

Release files / uno_mcp_stdio-0.2.1-py3-none-any.whl

Download URL uno_mcp_stdio-0.2.1-py3-none-any.whl
Size 22.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee75bc6da1364b1e5160211d8bc3b889a1690a9d8bcd634e03cb89d34bdf0f91
BLAKE2b-256 checksum
How to use checksums
f13d6f5b2732b9e6c104772281ff78dcc1e0b982493c3dcaa9a7046efa9c5509
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.9

Security for uno-mcp-stdio 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page