Skip to content

Conversation

@guyernest
Copy link
Collaborator

Summary

  • Add comprehensive OAuth support for MCP servers deployed to pmcp.run
  • OAuth proxy Lambda template with Dynamic Client Registration (RFC 7591)
  • Client name sanitization for Cognito compatibility (fixes Claude Code "(project)" name issue)
  • Integration with pmcp.run shared API Gateway architecture
  • New cargo pmcp oauth commands for managing OAuth settings
  • Complete deployment cleanup with destroyDeployment mutation
  • Stable serverId-based URLs from server response

Key Fixes for Claude Code Compatibility

  • P0: Intentionally omit RFC 8707 oauth-protected-resource endpoint that caused validation issues
  • P1: Sanitize client names containing special characters (parentheses, brackets, etc.) for Cognito

Test plan

  • Deploy MCP server with OAuth enabled via cargo pmcp deploy --target pmcp-run
  • Verify OAuth discovery at /.well-known/openid-configuration
  • Test Dynamic Client Registration from Claude Code
  • Verify token exchange and MCP server access
  • Test destroy with cargo pmcp deploy destroy --target pmcp-run

🤖 Generated with Claude Code

This adds comprehensive OAuth support for MCP servers deployed to pmcp.run:

- OAuth proxy Lambda template with Dynamic Client Registration (RFC 7591)
- Client name sanitization for Cognito compatibility (fixes Claude Code issue)
- Integration with pmcp.run shared API Gateway architecture
- OAuth configuration via deploy.toml ([auth] section)
- New `cargo pmcp oauth` commands for managing OAuth settings
- destroyDeployment mutation for complete cleanup
- Stable serverId-based URLs from server response

Key fixes for Claude Code compatibility:
- Intentionally omit RFC 8707 oauth-protected-resource endpoint
- Sanitize client names containing special characters like parentheses

Also includes:
- OAuth debugging guide for mcp-tester
- Architecture documentation for pmcp.run integration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@guyernest guyernest merged commit 328bc8c into paiml:main Dec 7, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant