mcp server bearer auth
A Cloudflare Workers-based MCP server implementation that supports OAuth login and bearer token authentication, allowing secure connection from MCP clients like Claude Desktop and the MCP Inspector.
A Cloudflare Workers-based MCP server implementation that supports OAuth login and bearer token authentication, allowing secure connection from MCP clients like Claude Desktop and the MCP Inspector.
Let's get a remote MCP server up-and-running on Cloudflare Workers complete with OAuth login!
# clone the repository
git clone [email protected]:cloudflare/ai.git
# install dependencies
cd ai
npm install
# run locally
npx nx dev remote-mcp-server-bearer-auth
You should be able to open http://localhost:8787/
in your browser
To explore your new MCP api, you can use the MCP Inspector.
npx @modelcontextprotocol/inspector
SSE
and enter http://localhost:8787/sse
as the URL of the MCP server to connect to. "remote-example": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8787/sse",
"--header",
"Authorization: Bearer {token}"
]
}
npm run deploy
Just like you did above in "Develop locally", run the MCP inspector:
npx @modelcontextprotocol/inspector@latest
Then enter the workers.dev
URL (ex: worker-name.account-name.workers.dev/sse
) of your Worker in the inspector as the URL of the MCP server to connect to, and click "Connect".
You've now connected to your MCP server from a remote MCP client. You can pass in a bearer token like mentioned above
TODO: We need to support arbitrary headers to the mcp-remote
proxy
Should anything go wrong it can be helpful to restart Claude, or to try connecting directly to your MCP server on the command line with the following command.
npx mcp-remote http://localhost:8787/sse
In some rare cases it may help to clear the files added to ~/.mcp-auth
rm -rf ~/.mcp-auth