Commit cf18e7c
authored
refactor: migrate to rmcp-based architecture (#95)
* docs: add STPA analysis, migration plan, and implementation spec
Rivet project initialized with STPA schema for rmcp migration safety
analysis. 58 artifacts covering losses, hazards, constraints, UCAs,
and loss scenarios for migrating from full MCP stack to rmcp extensions.
Phase 0+1 design spec and implementation plan ready for execution.
* feat: add poc workspace for rmcp migration validation
* feat(poc): validate Tower auth middleware with rmcp
Working PoC proving Tower middleware can intercept rmcp HTTP
requests, enforce Bearer auth, and propagate AuthContext into
MCP tool handlers via http::request::Parts extensions.
* feat(poc): validate MCP Apps UI resources with rmcp
Implements PoC 3 proving rmcp 1.3 supports the MCP Apps extension
pattern (SEP-1865) for serving interactive HTML via resources and tools.
* feat(poc): validate resource router with rmcp ServerHandler
Implements a matchit-based ResourceRouter that maps MCP URI templates
(file:///, config://) to handler functions, overriding list_resource_templates
and read_resource on ServerHandler alongside #[tool_handler] tools.
* docs(poc): record rmcp migration PoC results — all 3 pass
* refactor: rename mcp-logging to pulseengine-logging
Generic structured logging crate — not MCP-specific.
Provides credential scrubbing, metrics, alerting, correlation IDs.
* refactor: rename mcp-security-middleware to pulseengine-security
Generic Axum/Tower security middleware — not MCP-specific.
Remove unused mcp-protocol dependency.
* feat: add pulseengine-mcp-resources crate — resource router for rmcp
URI-template-based resource router built on matchit for rmcp MCP
servers. Provides ResourceRouter<S> with scheme-aware URI matching,
handler dispatch, and template listing for ServerHandler integration.
* feat: add pulseengine-mcp-apps crate — MCP Apps extension for rmcp
* docs: add migration guide for rmcp-based crate structure
* refactor: rename mcp-auth to pulseengine-auth
Generic auth/RBAC/session crate — not MCP-specific.
Remove mcp-protocol dependency, rename MCP-prefixed types
(McpPermission → Permission, McpPermissionChecker → PermissionChecker).
Middleware now operates on generic (method, params) instead of MCP Request.
* refactor: rename directories to match package names, remove poc/
mcp-logging/ → pulseengine-logging/
mcp-auth/ → pulseengine-auth/
mcp-security-middleware/ → pulseengine-security/
Remove poc/ directory — validation complete, results in poc/RESULTS.md
preserved in git history.
* refactor(examples): rewrite hello-world and ultra-simple to use rmcp
* refactor(examples): rewrite auth example for rmcp, remove conformance-server
* refactor(examples): rewrite resources-demo and ui-enabled-server for rmcp
* fix: rustfmt and Dockerfile directory paths after renames
* fix: cargo fmt --all
* fix: clippy warnings (dead_code, Default impl, format strings)1 parent b950226 commit cf18e7c
144 files changed
Lines changed: 5241 additions & 1975 deletions
File tree
- .claude
- artifacts
- docs
- superpowers
- plans
- specs
- examples
- conformance-server
- src
- hello-world-with-auth
- src
- hello-world
- src
- resources-demo
- src
- ui-enabled-server
- src
- ultra-simple
- src
- integration-tests
- src
- mcp-auth/src/permissions
- mcp-external-validation
- src
- mcp-macros
- mcp-protocol
- src
- mcp-server
- src
- pulseengine-auth
- docs
- src
- consent
- crypto
- middleware
- monitoring
- oauth
- permissions
- security
- session
- transport
- vault
- tests
- pulseengine-logging
- assets
- src
- pulseengine-mcp-apps
- src
- tests
- pulseengine-mcp-resources
- src
- tests
- pulseengine-security
- src
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
65 | 115 | | |
66 | 116 | | |
67 | 117 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
0 commit comments