lab-b tools

A small remote MCP server run by Brian Bawuah (LAB-BAWUAH). Endpoint: https://tools.apps.lab-b.dev/mcp

Tools

ToolInOut
memo_write{text}{id} — saves a short note.
memo_search{query, limit?}{notes:[{id,text,created_at,client_name}]} — notes containing every word of the query, newest first. An empty query lists the newest notes.
upload{filename, content_base64 | text | source_url, mime_type?}{url,id,filename,size,mime_type} — stores a file (max 25 MB) and returns a link served from this host.
transcribe{url, language?}{segments:[{start,end,text}], text, language, duration} — speech to text with a Whisper model that runs on this server. Audio is not sent to any other service.

Every tool declares an output schema and returns its result as structuredContent that matches it.

Sign-in

The server uses OAuth 2.1 with PKCE, as the MCP authorization spec describes. Clients find it through /.well-known/oauth-protected-resource, then register (dynamic client registration or a client id metadata document). The owner lets each client in on a consent page by entering the owner password. Nobody else can approve a client.

Access tokens last one hour, refresh tokens 30 days and rotate on use. Tokens are bound to https://tools.apps.lab-b.dev/mcp and stored only as hashes.

Data kept

Data lives on one server in Germany (Hetzner). The owner deletes notes, files and clients by hand, and removes all of it when the course challenge this server was built for is over.