Accessibility snapshots and tap coordinates for active third-party iOS keyboards in Simulator.
MCPpedia last refreshed this data
io.github.Nikitosina/keyboard-ext-ax is an MCP server that accessibility snapshots and tap coordinates for active third-party iOS keyboards in Simulator. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 82/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"KeyboardExtAX": {
"env": {
"DEVELOPER_DIR": "/Applications/Xcode.app/Contents/Developer"
},
"command": "keyboard-ext-ax-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Accessibility snapshots and tap coordinates for active third-party iOS keyboards in Simulator.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked keyboard-ext-ax against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in maps
AI tools for EasyEDA Pro schematics, PCB placement and routing, SPICE simulation, and DRC.
MCP server for MikroTik routers: firewall, NAT, routing, DHCP, DNS, WireGuard and more via SSH.
Enables AI assistants to control REAPER for mixing, mastering, MIDI and music production.
OSRM MCP — routing via the public demo server
MCP Security Weekly
Get CVE alerts and security updates for io.github.Nikitosina/keyboard-ext-ax and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.

Fast, read-only accessibility snapshots of active third-party iOS keyboard extensions in Simulator.
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:
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.
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.
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.
KeyboardExtAX currently supports:
It does not:
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.
If multiple Xcode installa