A remote MCP server that keeps notes, stores files and transcribes audio.
Endpoint: https://memo.ataga.ovh/mcp — Streamable HTTP, MCP revision
2025-11-25 (older revisions 2025-06-18 and 2025-03-26 work too).
This server is a student project, not a product.
| Tool | Input | Result |
|---|---|---|
memo_write |
{ text: string } |
{ id, text, createdAt } — the note is saved on this server. |
memo_search |
{ query?: string } |
{ notes: [{ id, text, createdAt }] } — case-insensitive substring match, newest first. An empty query returns every note. |
upload |
{ name?, mime?, content_base64?, text? } |
{ url, id, name, size } — the file is stored here and url is public: anyone with it can open the file. |
transcribe |
{ url: string } |
{ segments: [{ start, end, text }], duration } — start and end are seconds. |
Every tool declares an output schema and returns structured content that matches it, plus the same data as text.
The server is its own authorization server. A client registers itself by dynamic client registration, then opens an authorization page. The owner of this server reads that page and enters a pass phrase to approve the client. The client then trades a PKCE authorization code for a bearer token, valid for 12 hours, with a refresh token valid for 30 days.
/.well-known/oauth-protected-resource/mcp/.well-known/oauth-authorization-serverPOST /register (public)GET /authorize, then POST /approve with the pass phrasePOST /tokenPOST /revoke
Every endpoint under /mcp needs a bearer token. Requests without one get
401 and a WWW-Authenticate header that points at the protected resource
metadata above.
transcribe is the one tool that sends data off this host: the audio file at the given url
is passed to an OpenAI-compatible model service (OpenRouter) to make the transcript. The other three
tools keep everything on this server. No analytics, no cookies, no third-party trackers.
The owner can revoke a token at POST /revoke or delete the whole data directory on the host.