I built this because MCP supports remote servers over Streamable HTTP, but a lot of MCP servers still assume the client and server share a filesystem. Once the server is in a container/VM, two things break: tools can’t read client-local file paths, and outputs (screenshots/PDFs etc) get written on the server where the client can’t access them.
Remote MCP Adapter is an application-layer gateway that sits between an MCP client and one/more upstream MCP servers. It stages inputs as upload handles and captures outputs as MCP resources that the client can read back. It also adds session isolation, automated TTL-based cleanups, quotas, state persistence, health checks and the other standard constructs necessary for a production deployment.
Docs + demo: https://aakashh242.github.io/remote-mcp-adapter/ Code: https://github.com/aakashh242/remote-mcp-adapter
Quickstart is in the README (docker compose spins up Playwright MCP + the adapter) and you point your agent at: http://localhost:8932/mcp/playwright
Would love feedback on edge cases and missing features: artifact capture rules across different servers, guarantee that all requests with a given session_id are consistently routed to the same upstream.