mirror of
https://github.com/open-webui/mcpo
synced 2025-06-26 18:26:58 +00:00
Merge pull request #38 from open-webui/dev
Some checks failed
Release / release (push) Has been cancelled
Some checks failed
Release / release (push) Has been cancelled
0.0.8
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -48,6 +48,8 @@ uvx mcpo --port 8000 --api-key "top-secret" -- uvx mcp-server-time --local-timez
|
||||
|
||||
That’s 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:
|
||||
|
||||
@@ -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" }
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user