MEGA.dev · S02E03
Schema First is a remote MCP server owned by this workspace’s operator. Its endpoint is /mcp. It supports MCP 2026-07-28 and the previous revision 2025-11-25. Every tool declares input and output JSON Schema; successful calls return matching structured content.
| Tool | What it does |
|---|---|
memo_write | Saves the exact text you provide and returns its ID. |
memo_search | Finds notes by a case-insensitive literal substring. An empty query returns the newest notes, up to 100. |
upload | Accepts a filename, base64 file content, and optional MIME type. Stores up to 20 MB and returns a public link on this server. Anyone holding the link can download the file without signing in. Do not upload secrets or personal data you cannot share. |
transcribe | Fetches up to 14 MB of audio from a public HTTP(S) URL or an upload link. Returns original-language speech segments with start times in seconds. Supports WAV, MP3, FLAC, OGG, M4A, and WebM. Sends the audio to the configured Gemini API; model-based timestamps may be approximate. |
MCP calls require a Bearer access token. OAuth protected resource metadata at /.well-known/oauth-protected-resource/mcp points to this server’s authorization metadata. Clients can use HTTPS Client ID Metadata Documents or dynamic registration. The authorization code flow requires S256 PKCE and the exact MCP endpoint as its resource.
The owner must enter their owner password and approve each authorization request in their browser. The consent page shows the client identity, return address, and access requested. Registration alone grants no access. All approved clients share one owner workspace; clients are not separate user accounts. Do not approve clients that should not see your notes.
Access tokens expire in one hour. Refresh tokens expire in 30 days and rotate after use. Use /revoke with client authentication to revoke a token. The operator can revoke a client’s entire access and refresh-token set using the local administration command. Tokens are bound to this server and are never passed to Gemini.
A SQLite database on the configured data directory stores notes, uploaded files, registered client metadata, pending consent requests, and hashed OAuth credentials. Notes and files remain until the operator deletes them. Pending consent expires after ten minutes, authorization codes after two minutes; expired credential records are pruned. Owner and Gemini credentials come from the server environment or its private configuration file.
Downloaded audio and transcripts are processed in memory and are not saved by the transcription tool. An uploaded audio file stays in storage until deleted. Audio sent to Gemini is subject to the operator’s Google account terms and Google’s data handling policy. The application does not log request bodies, URLs, tokens, owner passwords, or upstream responses. The hosting provider may keep its own request logs.
Requests have size limits and rate limits. Downloads reject private, loopback, link-local, and reserved addresses and recheck redirects. At most two transcriptions run at once. File links use unguessable random IDs and are served as attachments. Back up the persistent data directory before a deployment. Deleting an uploaded file invalidates its link; revoking a client prevents future authorized use.