MCP.Market

KeyboardExtAX MCP server

by Nikitosina·io.github.Nikitosina/keyboard-ext-ax·v0.1.2

Accessibility snapshots and tap coordinates for active third-party iOS keyboards in Simulator.

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

0 stars25 downloads/wk

Reviews

Write one

Nobody has reviewed KeyboardExtAX yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

KeyboardExtAX tools (1)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • keyboard_snapshot

    Return the active keyboard extension accessibility tree and tap coordinates.

Public scan report

scanner v0.1.10 · 2026-10-15 · same rubric, same numbers if you re-run it

no findings
  • Code scan6 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 22 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How KeyboardExtAX compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 95% of 48,255 servers
Tools
1
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
25
more than 11% of 12,191 servers with a package

What its tools let an agent do: 1 read

Release history: 2 versions in the registry since 2026-09-18, latest 2026-09-23, typically one every 5 days.

Install KeyboardExtAX in Claude Code, Cursor or VS Code

claude mcp add keyboard-ext-ax -- uvx keyboard-ext-ax
Add to Cursor

What the publisher says

From the KeyboardExtAX repository's README, as published. We do not edit it. Read it on GitHub

<!-- mcp-name: io.github.Nikitosina/keyboard-ext-ax -->

KeyboardExtAX

Fast, read-only accessibility snapshots of active third-party iOS keyboard extensions in Simulator.

Why this project exists

A custom iOS keyboard runs in a separate app-extension process. When a client app presents that keyboard, ordinary UI automation usually sees the client application's accessibility tree but not the keyboard's useful descendants. The entire keyboard may appear as one opaque element.

That creates a practical automation gap:

  • screenshots can show the keyboard, but extracting reliable tap coordinates from pixels is slow and brittle;
  • the client application's accessibility snapshot does not necessarily expose the extension's keys and controls;
  • starting a new XCTest session for every query is expensive and can disturb keyboard focus;
  • XCTest element handles become stale whenever the keyboard changes layout;
  • automation agents should not need to manage test plans, ports, build products, or runner processes.

KeyboardExtAX fills that gap. It attaches XCTest directly to the already-running keyboard extension by bundle identifier, parses its accessibility hierarchy, and returns plain JSON with absolute logical coordinates. A persistent runner keeps warm snapshots fast, while a small controller owns building, caching, ports, and per-simulator lifecycle.

KeyboardExtAX observes only. Use a separate automation tool, such as XcodeBuildMCP, to launch apps, focus text fields, and perform gestures with the returned coordinates.

Quick start: MCP

Configure keyboard-ext-ax-mcp as a stdio MCP server. Most MCP clients use a configuration shaped like this:

{
  "mcpServers": {
    "KeyboardExtAX": {
      "command": "keyboard-ext-ax-mcp",
      "env": {
        "DEVELOPER_DIR": "/Applications/Xcode.app/Contents/Developer"
      }
    }
  }
}

If the MCP client does not inherit your shell PATH, replace the command with the absolute path printed by command -v keyboard-ext-ax-mcp.

The server exposes one tool:

keyboard_snapshot(
  simulator_id: "<SIMULATOR_UDID>",
  extension_bundle_id: "com.example.keyboard.extension",
  raw: false
)

Example input:

{
  "simulator_id": "2D78332B-A3C3-4CEE-962B-99EF531FD201",
  "extension_bundle_id": "com.example.keyboard.extension"
}

The result is returned as structured MCP content. The MCP layer delegates directly to the same controller used by the CLI, so build caching, sessions, errors, and output are identical.

Quick start: CLI

With the client text field focused and the requested keyboard visible:

keyboard-ext-ax snapshot \
  --simulator <SIMULATOR_UDID> \
  --extension com.example.keyboard.extension

Add --output /tmp/keyboard.json to write the result to a file. Add --raw for the nested tree and XCTest diagnostics.

Scope and limitations

KeyboardExtAX currently supports:

  • macOS hosts;
  • iOS Simulator;
  • third-party keyboard extensions;
  • Xcode 26.5;
  • read-only accessibility snapshots.

It does not:

  • tap, swipe, or type;
  • launch or foreground the client app;
  • select or enable a keyboard for the user;
  • access physical iOS devices;
  • guarantee compatibility with widgets, Live Activities, or other extension types;
  • guarantee parser compatibility with untested Xcode versions.

The parser reads XCUIApplication.debugDescription. Its text format is not a documented compatibility contract, so each Xcode version must be validated before support is claimed.

Requirements

  • macOS
  • Xcode 26.5 with the desired iOS Simulator runtime installed
  • Python 3.10 or newer
  • A keyboard app and extension already installed in the target simulator
  • The keyboard enabled in Settings → General → Keyboard → Keyboards
  • A foreground client app with a focused text field

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Grade history

  • 2026-09-19restoreB → Ascore 92

KeyboardExtAX: common questions

Is KeyboardExtAX MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the KeyboardExtAX safety report
How do I install KeyboardExtAX?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does KeyboardExtAX need an API key?
No secret keys are declared. It reads 2 settings from the environment.
Is KeyboardExtAX maintained?
The last commit was 42 days ago (2026-09-23). The latest release is v0.1.2.
How does KeyboardExtAX compare with other MCP servers?
safety score 92/100 (higher than 95% of 48,255 servers); tools 1 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.