DEV Community

Jaspal Singh
Jaspal Singh

Posted on

Give your AI agent a keyboard-shortcut memory

Give your AI agent a keyboard-shortcut memory

Keyboard shortcuts are facts about software — but which ones are confirmed for your platform is the part that matters. Most shortcut references are static pages. This one is a free MCP server your AI agent can query directly.

What it is

KeyShortcuts.net is a free, source-referenced keyboard-shortcut database: 2,719 records across 7 platforms (Windows, macOS, Linux, ChromeOS, iOS, Android) and 45 apps (VS Code, Excel, Figma, Photoshop, Notion, Slack, Vim, IntelliJ IDEA, Cursor, and more).

Every record carries a source reference and a per-binding review status. The server never guesses platform translations — if a shortcut isn't confirmed for your platform, it says so.

The MCP server

A stateless Streamable HTTP endpoint at https://keyshortcuts.net/api/mcp. No API key, no sign-in, no rate-limit paywall for basic use.

Add it to any MCP client:

{
  "mcpServers": {
    "keyshortcuts": {
      "type": "http",
      "url": "https://keyshortcuts.net/api/mcp"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Or with Claude Code:

claude mcp add keyshortcuts --transport http https://keyshortcuts.net/api/mcp
Enter fullscreen mode Exit fullscreen mode

Tools

Tool What it does
search_shortcuts Search action meanings and app labels
list_apps List supported apps and platforms
get_app_shortcuts Get the shortcut records for one app
lookup_shortcut Look up what a literal key combination does
compare_platforms Reviewed equivalents of an action across platforms
translate_shortcut Translate a binding between platforms (e.g. Windows → macOS)
get_source Source and review metadata for a binding
create_shortcut_set Compose a custom shortcut set

Verify it yourself

curl -s https://keyshortcuts.net/api/mcp   -H "Content-Type: application/json"   -H "Accept: application/json, text/event-stream"   -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
Enter fullscreen mode Exit fullscreen mode

Also a plain REST API

Same dataset, free, 60 req/min/IP:

  • GET /api/apps — list apps
  • GET /api/search?q=... — search shortcuts
  • GET /api/keys/{combination} — lookup a literal key combination
  • GET /api/compare?id=... — cross-platform equivalents
  • GET /api/translate?id=...&from=windows&to=macos — translate a binding
  • Schema: https://keyshortcuts.net/api/openapi.json

Free web tools

Attribution

We make no proprietary claim over keyboard combinations — they are facts about software. Our contribution is the curation, review status, and source references. Please keep the attribution link when reusing the data.

Top comments (1)

Collapse
 
koda2026 profile image
Harun - solo dev •

jaspal, this is a brilliantly practical application of the mcp protocol. keyboard shortcuts are the perfect use case for agent retrieval because they are highly contextual, platform-dependent, and notoriously prone to llm hallucination.

the choice of a stateless streamable http endpoint with a generous 60 req/min/ip limit is a masterclass in frictionless api design. it prevents abuse without forcing the dreaded "sign up for an api key" wall, which is exactly how public mcp servers should be built.

regarding the translate_shortcut and compare_platforms tools: since llms can be highly sensitive to tool call latency during a generation loop, how are you handling caching for these queries? are you caching the 2,719 records in-memory (e.g., via a local lru cache or redis) to ensure sub-50ms response times for the mcp client, or are you relying on the database's query planner and indexing to handle the concurrent load?

also, huge respect for including the openapi schema and the curl verification snippet right in the post. making it trivially easy for devs to test the endpoint is the absolute best kind of developer experience. 🐯