Read The Manual (Tool Docs)
rtfmAccess comprehensive documentation for any XC-MCP tool on demand. Look up specific tools by name or browse by category to get full parameters, examples, and related tools, enabling efficient and informed usage.
Instructions
rtfm
š Read The Manual - Progressive disclosure documentation system for all XC-MCP tools.
Overview
The rtfm tool provides access to comprehensive documentation for any of the discrete tools in this MCP server. This implements progressive disclosure: run the server with --mini to reduce every tool description to a one-liner, then call rtfm for full parameters, examples and related tools on demand.
Version History:
v1.x: 51 individual tools; v1.3.2 introduced rtfm
v2.0-v3.x: 28-30 tools behind operation-enum routers
v4.x: routers dissolved; discrete tools with per-tool annotations and outputSchema
Why rtfm?
Problem Solved: Tool documentation was originally stored in .md files within the src/ directory, which wouldn't be available in the published npm package (only dist/ is included in package.json "files" field).
Solution: Documentation is now embedded as TypeScript constants in each tool file, bundled into the compiled JavaScript, and accessible via this rtfm tool. This ensures documentation is always available, whether in development or in the published npm package.
Parameters
toolName (optional): Name of specific tool to get documentation for
Examples: "xcodebuild-build", "simctl-boot", "idb-ui-tap", "cache-get-stats"
Case-sensitive, must match exact tool registration name
categoryName (optional): Browse tools in a specific category
Examples: "build", "simulator", "app", "idb", "cache", "system"
Omit both parameters to see all categories
Examples
// Get documentation for a specific tool
rtfm({ toolName: "simctl-boot" })
// Removed router names still fuzzy-match to their replacements
rtfm({ toolName: "simctl-device" })
// Browse all tools in the cache category
rtfm({ categoryName: "cache" })
// View all categories (no parameters)
rtfm({})Migration to v4.0 (routers removed)
v2/v3 consolidated routers were dissolved back into discrete tools. Annotations and
outputSchema are per-tool, so each operation is now its own tool. Drop the operation field and
call the matching tool name ā operation-specific parameters are unchanged:
simctl-device(operation) ā
simctl-boot,simctl-shutdown,simctl-create,simctl-delete,simctl-erase,simctl-clone,simctl-renamesimctl-app(operation) ā
simctl-install,simctl-uninstall,simctl-launch,simctl-terminateidb-app(operation) ā
idb-install,idb-uninstall,idb-launch,idb-terminatecache(operation) ā
cache-get-stats,cache-get-config,cache-set-config,cache-clearpersistence(operation) ā
persistence-enable,persistence-disable,persistence-status
idb-targets keeps its operation enum (list/describe/focus/connect/disconnect). Passing a removed
router name to this tool returns fuzzy suggestions for its replacements.
Response Format
Success Response
Returns full markdown documentation including:
Tool description and purpose
Advantages over direct CLI usage
Parameter specifications with types and descriptions
Usage examples
Related tools
Common patterns and best practices
Tool Not Found Response
If toolName doesn't match any registered tool:
Error message with the attempted tool name
Suggestions based on partial matches (up to 5)
Complete list of all available tools
Example:
No documentation found for tool: "simctl-boo"
Did you mean one of these?
- simctl-boot
- simctl-shutdown
Available tools (28 total):
- xcodebuild-*
- simctl-*
- idb-*
- cache
- persistence
- rtfmAvailable Tool Categories (v2.0)
Xcodebuild Tools (7)
xcodebuild-version, xcodebuild-list, xcodebuild-showsdks
xcodebuild-build, xcodebuild-clean, xcodebuild-test
xcodebuild-get-details
Simctl Lifecycle Tools
simctl-list, simctl-get-details, simctl-boot, simctl-shutdown, simctl-create, simctl-delete, simctl-erase, simctl-clone, simctl-rename
simctl-suggest, simctl-health-check
Simctl App Management Tools
simctl-install, simctl-uninstall, simctl-launch, simctl-terminate
simctl-get-app-container, simctl-container, simctl-openurl
Simctl I/O & Testing Tools (7)
simctl-io, simctl-addmedia, simctl-privacy, simctl-push
simctl-pbcopy, simctl-status-bar, screenshot
IDB Tools
idb-targets (list/describe/focus/connect/disconnect)
idb-ui-tap, idb-ui-input, idb-ui-gesture, idb-ui-describe, idb-ui-find-element, idb-list-apps
idb-install, idb-uninstall, idb-launch, idb-terminate
Cache Management Tools (4)
cache-get-stats, cache-get-config, cache-set-config, cache-clear
Persistence Tools (3)
persistence-enable, persistence-disable, persistence-status
Documentation Tool (1)
rtfm (this tool!)
Implementation Details
Documentation Storage
Each tool file exports a TOOL_NAME_DOCS constant containing its full documentation in markdown format:
// Example from src/tools/simctl/boot.ts
export const SIMCTL_BOOT_DOCS = `
# simctl-boot
...
`;Central Registry
All documentation constants are imported and mapped in src/tools/docs-registry.ts:
export const TOOL_DOCS: Record<string, string> = {
'simctl-boot': SIMCTL_BOOT_DOCS,
'xcodebuild-build': XCODEBUILD_BUILD_DOCS,
// ... 49 more tools
};Progressive Disclosure Pattern
Tool list shows concise descriptions (~300-400 tokens)
Each description ends with: "š Use rtfm with toolName: '{name}' for full documentation."
Full documentation accessed only when explicitly requested via rtfm
Prevents token overflow while maintaining comprehensive documentation access
Benefits
ā Self-contained: No external file dependencies ā NPM package ready: Documentation bundled in compiled JavaScript ā Token efficient: Progressive disclosure keeps default views concise ā Always available: Works in development and production ā Type-safe: TypeScript constants with proper typing ā Searchable: Fuzzy matching with suggestions for typos ā Comprehensive: Full documentation including examples and parameters
Common Use Cases
Explore available tools:
// Intentionally use invalid tool name to see full list
rtfm({ toolName: "help" })Learn specific tool usage:
rtfm({ toolName: "simctl-boot" })Understand tool parameters:
rtfm({ toolName: "xcodebuild-build" })Find related tools:
// Search by category prefix
rtfm({ toolName: "simctl" }) // Shows simctl-* suggestionsRelated Tools
cache-get-stats: Monitor cache performance and usage
Notes
Tool names are case-sensitive and must match exact registration names
Fuzzy matching provides suggestions for close matches
Documentation format is consistent markdown across all tools
Each tool's documentation is independently maintained in its source file
The TOOL_DOCS registry is automatically updated when tools are added/removed
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | No | ||
| categoryName | No |