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
commit f1b5fbd52c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
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()