A remote MCP server: one person's home for notes, files and transcription. Endpoint: https://gc-tools-dc0.pages.dev/mcp (Streamable HTTP, protocol 2026-07-28, and 2025-11-25 for older clients).
| Tool | Input | Result | What it does |
|---|---|---|---|
memo_write | { text } | { id } | Saves a note. |
memo_search | { query } | { notes: [{ id, text, author, createdAt }] } | Finds notes that contain every word of the query, ignoring case, newest first, at most 50. |
upload | { filename, content, mimeType? }, content is base64 | { url, name, mimeType, size } | Stores a file, up to 10 MiB, and gives back a link anyone can open. This server serves the link. |
transcribe | { url } | { segments: [{ start, end, text }], text, language, duration } | Fetches audio from a public URL, up to 25 MiB, and returns timestamped text. start and end are in seconds. |
Every successful result is structured content that matches the output schema in tools/list, with the same JSON in a text block. A failure comes back with isError and a sentence that says what to do.
OAuth 2.1 with PKCE (S256). This host is both the MCP server and its authorization server.
WWW-Authenticate header that points to the protected resource metadata, then to the authorization server metadata./register. Neither grants anything./authorize. The page shows who is asking and where the approval goes. Only the owner of this server can approve, with the owner passcode. No other way in exists./token for an access token (one hour) and a refresh token (30 days, single use). Tokens are bound to https://gc-tools-dc0.pages.dev/mcp and work nowhere else.Anyone can open a link from upload. Everything else needs a token. Everyone let in shares the same notes and files.
The data sits in a Cloudflare D1 database on the owner's account. The server runs on Cloudflare Pages. It sets no cookies and no analytics.