Merge pull request #38 from open-webui/dev
Some checks failed
Release / release (push) Has been cancelled

0.0.8
This commit is contained in:
Timothy Jaeryang Baek
2025-04-03 09:48:51 -07:00
committed by GitHub
5 changed files with 21 additions and 3 deletions

View File

@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.0.8] - 2025-04-03
### Added
- 🔒 **SSL Support via '--ssl-certfile' and '--ssl-keyfile'**: Easily enable HTTPS for your mcpo servers by passing certificate and key files—ideal for securing deployments in production, enabling encrypted communication between clients (e.g. browsers, AI agents) and your MCP tools without external proxies.
## [0.0.7] - 2025-04-03
### Added

View File

@@ -48,6 +48,8 @@ uvx mcpo --port 8000 --api-key "top-secret" -- uvx mcp-server-time --local-timez
Thats it. Your MCP tool is now available at http://localhost:8000 with a generated OpenAPI schema — test it live at [http://localhost:8000/docs](http://localhost:8000/docs).
🤝 **To integrate with Open WebUI after launching the server, check our [docs](https://docs.openwebui.com/openapi-servers/open-webui/).**
### 🔄 Using a Config File
You can serve multiple MCP tools via a single config file that follows the [Claude Desktop](https://modelcontextprotocol.io/quickstart/user) format:

View File

@@ -1,6 +1,6 @@
[project]
name = "mcpo"
version = "0.0.7"
version = "0.0.8"
description = "A simple, secure MCP-to-OpenAPI proxy server"
authors = [
{ name = "Timothy Jaeryang Baek", email = "tim@openwebui.com" }

View File

@@ -41,6 +41,12 @@ def main(
version: Annotated[
Optional[str], typer.Option("--version", "-v", help="Server version")
] = None,
ssl_certfile: Annotated[
Optional[str], typer.Option("--ssl-certfile", "-t", help="SSL certfile")
] = None,
ssl_keyfile: Annotated[
Optional[str], typer.Option("--ssl-keyfile", "-k", help="SSL keyfile")
] = None,
):
server_command = None
if not config:
@@ -87,6 +93,8 @@ def main(
description=description,
version=version,
server_command=server_command,
ssl_certfile=ssl_certfile,
ssl_keyfile=ssl_keyfile,
)
)

View File

@@ -157,9 +157,11 @@ async def run(
kwargs.get("description") or "Automatically generated API from MCP Tool Schemas"
)
version = kwargs.get("version") or "1.0"
ssl_certfile = kwargs.get("ssl_certfile")
ssl_keyfile= kwargs.get("ssl_keyfile")
main_app = FastAPI(
title=name, description=description, version=version, lifespan=lifespan
title=name, description=description, version=version, ssl_certfile=ssl_certfile, ssl_keyfile=ssl_keyfile, lifespan=lifespan
)
main_app.add_middleware(
@@ -212,7 +214,7 @@ async def run(
else:
raise ValueError("You must provide either server_command or config.")
config = uvicorn.Config(app=main_app, host=host, port=port, log_level="info")
config = uvicorn.Config(app=main_app, host=host, port=port, ssl_certfile=ssl_certfile , ssl_keyfile=ssl_keyfile ,log_level="info")
server = uvicorn.Server(config)
await server.serve()