memo-mcp
A small remote MCP server: notes, file links and speech-to-text in one place any agent can reach. This page is its plan: what the tools do, how sign-in works and what data it keeps.
Endpoint
https://memo.tail2612f9.ts.net/mcp, Streamable HTTP. It speaks MCP revision 2026-07-28 (stateless, server/discover) and still serves 2025-11-25, 2025-06-18 and 2025-03-26 clients that start with initialize.
Tools
| Tool | Input | Result |
|---|---|---|
memo_write | { text } | { id, created_at }. Saves a note. |
memo_search | { query, limit? } | { notes: [{ id, text, created_at, author }] }. Notes that contain every word of the query, newest first. An empty query lists the newest notes. |
upload | { filename, content, encoding?, mime_type? } | { url, id, filename, mime_type, size, sha256 }. Stores the file (base64 or UTF-8 text, up to 25 MB) and returns a link this server serves to anyone. |
transcribe | { url, language? } | { segments: [{ start, end, text }], language, text }. Downloads audio or video from a public URL (up to 100 MB) and returns one segment per sentence, times in seconds. |
Every result carries structuredContent that matches the tool's declared outputSchema, plus the same JSON as text. Problems the caller can fix (bad input, a URL that does not download) come back as results with isError: true.
Sign-in
- Every MCP request needs an OAuth 2.1 bearer token. Without one,
/mcpanswers401with aWWW-Authenticateheader that points to the protected resource metadata at/.well-known/oauth-protected-resource/mcp. - This server is its own authorization server: metadata at
/.well-known/oauth-authorization-server, issuerhttps://memo.tail2612f9.ts.net. - Clients identify with a Client ID Metadata Document (an https
client_id) or register at/register(RFC 7591). - Authorization code flow with PKCE (
S256) only. Tokens are bound to the resourcehttps://memo.tail2612f9.ts.net/mcp(RFC 8707). The redirect carriesiss(RFC 9207). - The owner lets each client in by hand: the consent page shows who asks and needs the owner password. Nobody else can approve a client.
- Access tokens last 1 hour. Refresh tokens last 30 days and rotate on each use; reusing an old one ends that sign-in.
Data it keeps
| Data | What is stored | How long |
|---|---|---|
| Notes | The text, the time, and the name and id of the client that saved it. Every signed-in client can search all notes. | Until the owner deletes them. |
| Uploads | The file, its name, type, size and SHA-256, and the client that uploaded it. Anyone with the link can download it; the link is long and random. | Until the owner deletes them. |
| Audio for transcribe | Held in memory only while it is transcribed. It is sent to ElevenLabs speech-to-text, which keeps it under its own policy. The transcript is returned, not stored here. | Not kept. |
| Sign-in | Registered clients, and SHA-256 hashes of codes and tokens. No raw tokens. | Codes 10 minutes, access tokens 1 hour, refresh tokens 30 days. |
| Request log | Time, path, status, MCP method, tool name and client name. No tool arguments or results. | System journal rotation. |
Limits
120 requests a minute per token. Outbound downloads only reach public internet addresses.