dev.zerm/zerm
up checked
Unclaimed · Unverified
Agent searches it appeared in, last 30 days: 0. Run this server? Claim the listing: verified label, uptime alerts and analytics.
Publisher-provided title
zerm
Publisher-provided description
Agent utility belt: memory, locks, webhook inboxes, timers, DNS, email, URL, timezone, cron
Summary by lookupd
Persistent key-value memory, locks, webhook inboxes, timers, DNS and URL checks, timezone and cron utilities for agents.
Install
Claude Code, remote (streamable-http)
claude mcp add --transport http zerm https://zerm.dev/mcp
Codex, remote (streamable-http)
codex mcp add zerm --url https://zerm.dev/mcp
Cursor, remote (streamable-http) → .cursor/mcp.json
{
"mcpServers": {
"zerm": {
"url": "https://zerm.dev/mcp"
}
}
}Other clients: docs. Or tell your agent: Set up lookupd for me: read https://lookupd.com/agent.md and follow it.
Tools (24 tools)
Publisher-provided text
kv_setStore a value durably under (namespace, key) with a TTL. Survives across your sessions - use it as memory between stateless runs. Value must be a string (JSON-ekv_getRetrieve a value previously stored with kv_set. Call this at the start of a run to restore state, preferences, or progress saved by earlier runs. Returns found=kv_deletePermanently remove one key from your namespace, freeing a slot against the 1000-key limit. Use it when a stored value is wrong or unwanted before its TTL runs okv_listList the keys held in your namespace, optionally narrowed to those starting with a prefix. Use it to discover what earlier runs saved before deciding what to fetimer_verify_originOne-time consent handshake before timers can deliver to an origin. Prerequisite: an HTTPS endpoint you control that can read a request body and echo part of ittimer_scheduleSchedule a durable callback: at fire time this service POSTs your JSON payload to your URL. Use it to wake up future runs of yourself or your orchestrator - agetimer_cancelCancel a pending timer using the id returned by timer_schedule. The id is the authorization: holding it is what proves you scheduled the timer, so keep it secretimer_statusCheck a timer by the id returned by timer_schedule: status (pending|delivering|delivered|failed|cancelled), attempts, last error. Returns found=false for an unkname_checkLive availability check for a name across domain TLDs (registry RDAP), npm, PyPI, and GitHub usernames. Real registry lookups at call time - not guesses. Each remail_checkDeliverability probe for an email address without sending anything: syntax validation, live MX lookup (with A/AAAA fallback per RFC 5321), disposable-domain deturl_checkLive URL health check: follows the full redirect chain (each hop reported), returns final status, content type, response time, TLS certificate expiry and trust,cron_nextDeterministic cron expression validator and scheduler: parses a cron expression (5 or 6 field, seconds optional) and computes the next N actual fire times, timeregex_testExecute a regex against test strings and return the ACTUAL matches: match text, indices, capture groups, named groups, and optional replacement output. Determinfixture_rowsBulk realistic test data: generate up to 10000 rows from a field schema in one call - orders of magnitude cheaper than generating rows with tokens. Deterministitz_convertDeterministic timezone conversion: convert a timestamp between IANA timezones with full DST awareness. Models routinely miscalculate DST transitions - this givetz_infoTimezone intelligence: for a given IANA timezone and date, returns the UTC offset, whether DST is active, the exact UTC instant of each DST transition in that ydns_queryFull DNS record lookup for a domain: returns A, AAAA, MX, NS, TXT, CNAME, SOA, and CAA records in one call. Automatically parses SPF and DMARC policies from TXTrequest_toolHit a capability wall? Describe a tool you wish this server had and the task you were trying to accomplish. The operator reviews every submission; the most-requlock_acquireAcquire a mutual-exclusion lock so concurrent agent runs do not double-process the same work. If two runs race, exactly one gets acquired=true plus a release tolock_releaseRelease a lock early using the token returned by lock_acquire. Only the token holder can release; without the token the lock simply expires on its own. Returnscounter_nextAtomically increment a named counter and return the new value. Guaranteed unique, monotonically increasing integers across concurrent stateless runs - use it foinbox_createCreate a URL that receives HTTP requests for you. Point any webhook (GitHub, Stripe, CI, a form) at it and read what arrives with inbox_poll - no server, no siginbox_pollRead requests delivered to an inbox since you last looked. Pass after=<the next_after from your previous poll> to get only new ones; omit it to start from the binbox_deleteDelete an inbox and everything delivered to it. The URL stops accepting requests immediately. Inboxes also delete themselves once unpolled past their expiry, so
Details
- Version: 0.3.4
- Transports: streamable-http
- Uptime (7 days): 100%
- Median latency: 465 ms
- First indexed:
- Last seen in registry:
- Website: https://zerm.dev
Badge for your README
Shows this live status and links here; updates hourly.
[](https://lookupd.com/servers/dev.zerm/zerm)
- 62071 servers
- Last crawl: 2026-11-11T16:39:06.253Z
- API base:
https://api.lookupd.com - MCP URL:
https://api.lookupd.com/mcp