Xplo8E/rpcclient-mcp
MCP server for iOS automation over rpcclient
Platform-specific configuration:
{
"mcpServers": {
"rpcclient-mcp": {
"command": "npx",
"args": [
"-y",
"rpcclient-mcp"
]
}
}
}Add the config above to .claude/settings.json under the mcpServers key.
MCP server for rpcclient targets iOS over stdio transport.
python3 -m venv .venv
source .venv/bin/activate
pip install rpcclient-mcp
which rpcclient-mcprpcclient==6.11.1 is a package dependency, so it installs automatically with this MCP.
If you want to force local rpcclient source instead of PyPI:
export RPCCLIENT_PYTHONPATH=/absolute/path/to/rpc-project/src/rpcclientclaude mcp add --transport stdio rpcclient-mcp -- /absolute/path/to/venv/bin/rpcclient-mcpcodex mcp add rpcclient-mcp -- /absolute/path/to/venv/bin/rpcclient-mcpgemini mcp add --transport stdio rpcclient-mcp /absolute/path/to/venv/bin/rpcclient-mcpAdd to ~/.codex/config.toml (or your active Codex config):
[mcp_servers.rpcclient-mcp]
command = "/absolute/path/to/venv/bin/rpcclient-mcp"
[mcp_servers.rpcclient-mcp.env]
RPCCLIENT_PYTHONPATH = "/absolute/path/to/rpc-project/src/rpcclient" # optionalRestart your client after config changes.
ping()
rpc_connect(host="127.0.0.1", port=5910)
rpc_get_screen_context(session_id="...")
rpc_disconnect(session_id="...")# health
ping()
# connection lifecycle
rpc_connect(host="127.0.0.1", port=5910, timeout=3.0)
rpc_disconnect(session_id)
rpc_reconnect(session_id)
# session inspection
rpc_list_sessions()
rpc_session_info(session_id)Use these to establish, inspect, and recover sessions. rpc_reconnect is the transport recovery path and invalidates old handles.
# discovery
rpc_capabilities(session_id, include_private=False)
rpc_call(session_id, path, args=None, kwargs=None, store_result=True)
# handle lifecycle
rpc_list_handles(session_id)
rpc_release_handle(sessionLoading reviews...