Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mentra Glass MCP ServerDisplay 'Meeting in 10 minutes' on my glasses"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mentra Glass MCP Server
A Model Context Protocol (MCP) server for controlling MentraOS smart glasses. Built with Bun, Mentra SDK, and MCP SDK.
Features
MCP Support: Exposes tools to control glasses (Display, Audio, Input) via JSON-RPC.
Multi-User: Supports multiple users via Bearer token authentication (email).
Mentra Integration: Connects to Mentra Cloud as an AppServer.
Docker Ready: Includes Dockerfile and Compose setup.
Architecture
MCP Client (Claude/Cursor)
⬇️ JSON-RPC (HTTP)
[MCP Server]
⬇️ Mentra SDK
Mentra Cloud
⬇️
Smart GlassesPrerequisites
Bun (v1.0+)
Mentra Developer Account & API Key
Authentication
This server uses a secure token-based authentication system.
Start the Server (Locally or Deployed).
Open the Webview:
Local:
http://localhost:3000/webviewDeployed:
https://your-app.onrender.com/webview
Login: Sign in with your Mentra account.
Get Token: Copy the Access Token displayed on the screen.
Connecting to Clients
1. GitHub Copilot (VS Code)
Add the server to your MCP configuration file (usually ~/.config/github-copilot/mcp.json or via the VS Code command "MCP: Manage MCP Servers").
{
"mcpServers": {
"mentra-glasses": {
"type": "sse",
"url": "mcp url here",
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
}
}Note: Replace the URL and Token with your actual values.
2. Claude Desktop
Edit your configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mentra-glass": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sse-client"],
"env": {
"MCP_SSE_URL": "http://localhost:3000/mcp",
"MCP_SSE_HEADERS": "{\"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"}"
}
}
}
}3. Cursor
Go to Settings > Features > MCP.
Click + Add New MCP Server.
Name:
mentra-glassType:
SSEURL:
https://your-app.onrender.com/mcp?token=YOUR_ACCESS_TOKEN(Note: Cursor may not support custom headers yet, so we support passing the token via query parameter as a fallback)
Running Locally
# Start the server
bun run src/index.ts
# Watch mode
bun run devThe server will start on http://localhost:3000.
/mcp: MCP JSON-RPC endpoint/health: Health check/webview: Auth & Settings
Running with Docker
# Build & Run
docker compose up --build -dAvailable Tools
Display:
glasses_display_text,glasses_clear_displayAudio:
glasses_speakInput:
glasses_get_transcriptions,glasses_get_eventsSystem:
glasses_status
Project Structure
src/config: Environment configurationsrc/services: Core logic (Mentra SDK, Session Management)src/tools: MCP Tool definitionssrc/index.ts: Entry point
Deployment
Option 1: Render + Supabase (Recommended for Free Tier)
Best for indie devs. Uses Supabase for the database (since Render's free tier wipes local files) and Render for hosting.
Database: Follow
SUPABASE_SETUP.mdto create your Supabase project and get credentials.Hosting:
Sign up at render.com.
Create a new Web Service.
Connect your GitHub repository.
Runtime: Docker.
Environment Variables:
SUPABASE_URL: Your Supabase URL.SUPABASE_SERVICE_KEY: Your Supabase Service Role Key.MENTRAOS_API_KEY: Your Mentra API Key.PACKAGE_NAME:com.yourname.glassmcp.PORT:3000.
Option 2: Fly.io (Best for SQLite)
Allows you to keep using the local SQLite database by attaching a persistent volume.
Install
flyctl.Run
fly launch.Create a volume:
fly volumes create mcp_data.Update
fly.tomlto mount the volume to/app/mcp.sqlite.
Option 3: Self-Hosted (VPS)
Run standard Docker Compose on any server (DigitalOcean, Hetzner, Oracle Cloud).
docker compose up -dThis server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.