mirror of
https://github.com/open-webui/mcpo.git
synced 2026-11-05 01:27:39 +00:00
[PR #231] [MERGED] feat: OAuth Support for Streamable HTTP with Dynamic Client Registration #217
Labels
No labels
bug
can't reproduce
documentation
enhancement
good first issue
help wanted
invalid
pull-request
question
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/mcpo#217
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/open-webui/mcpo/pull/231
Author: @taylorwilsdon
Created: 8/12/2025
Status: ✅ Merged
Merged: 8/12/2025
Merged by: @tjbck
Base:
dev← Head:oauth_support📝 Commits (8)
c67dcb6chore: publish action44ce6d0Update publish.yaml0c6b408Merge branch 'main' of github.com:open-webui/mcpo into dev8dd71b7init oauth supportbf4f79bworking oauth implementation for mcpo servers supporting dynamic client registration141d62badd oauth guide05911d5clean up callback282e7e5pretty callbacks📊 Changes
8 files changed (+768 additions, -9 deletions)
View changed files
➕
.github/workflows/publish.yaml(+38 -0)➕
OAUTH_GUIDE.md(+204 -0)📝
README.md(+58 -0)📝
pyproject.toml(+2 -2)📝
src/mcpo/main.py(+33 -1)➕
src/mcpo/utils/oauth.py(+294 -0)➕
src/mcpo/utils/oauth_callback.html(+133 -0)📝
uv.lock(+6 -6)📄 Description
@tjbck I think you'll like this one ;) Opens some very interesting doors.
https://github.com/user-attachments/assets/36755a94-9c09-4569-a25e-24da71a1fd54
Pull Request Checklist
Before submitting, make sure you've checked the following:
devbranch.Changelog Entry
Description
feat: Add OAuth 2.1 client-to-server authentication support for MCP servers
This PR implements comprehensive OAuth 2.1 authentication support for MCPO, enabling secure client-to-server authentication with MCP servers that require OAuth. The implementation follows OAuth 2.1 best practices with dynamic client registration as the default approach and minimal configuration requirements.
Added
~/.mcpo/tokens/) and in-memory session storagesrc/mcpo/utils/oauth.py): Core OAuth implementation with token storage and callback handlingChanged
lifespanfunction inmain.pyto integrate OAuth providersoauthfieldSecurity
Breaking Changes
Additional Information
OAuthClientProviderfor standards compliancestreamable-httpservers;sseandstdioservers log appropriate warningsScreenshots or Videos
Key Configuration Examples:
Minimal (Dynamic Registration):
Legacy (Static Registration):
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.