Objective-C — 138 Operations for AI Agents

This page is the canonical reference an AI coding agent uses to refactor, query, and analyze Objective-C code through the act MCP server. 138 operations available: 64 refactor, 18 query, 42 analysis, 14 verification. Each operation is callable from Claude Code, Cursor, Codex, OpenCode, or any MCP-compatible agent host. Click any operation for a stable anchor link suitable for citation.

18Query
64Refactor
42Analysis
14Verify

Query

18 query tools, the same on every supported language. Descriptions live in the shared reference: /docs/query-tools.

callers control_flow data_flow definition diagnostics effect_closure effect_summary fix_auto get_type graph import_organize interface mutations references repo_outline skeleton symbols symbols_batch

Refactor

Operation Description
add-braces Add braces to single-statement if/while/for blocks
add-default-case Add default case to switch statement
add-method-documentation Add documentation comment to method
add-method-implementation Add method body stub to @implementation
add-nil-check Add nil check before property or pointer access
add-nullability-annotation Add @nullable/@nonnull annotation
add-property-attribute Add nonatomic/retain/weak attribute to property
add-protocol-conformance Add protocol conformance to class
add-required-import Add required import statement
change-signature Modify function parameters, return, generics
consolidate-imports Consolidate multiple import statements
convert-for-to-foreach Convert for loop to fast enumeration (for-in)
convert-ivar-to-property Convert instance variable to @property
convert-loop-style Convert between loop styles
convert-string-literal Convert string literal format
encapsulate Make field private, generate getter/setter
extract-class Extract methods/fields to new class
extract-constant Extract value to named constant
extract-enum-member Extract enum member value into a named constant
extract-interface Create interface from class
extract-variable Extract a sub-expression into a new local variable
extract_function Extract a code selection into a new function — automatically infers parameters, return types, and inserts the call site. Use instead of manually cutting/pasting code. Works without LSP; LSP improves type inference. Params: file (string), new_name (string), start_line (u32), start_column (u32), end_line (u32), end_column (u32) [, preview (bool), receipt (bool)]
extract_variable Extract an expression into a named variable — inserts the declaration and replaces the expression with the variable name. Works without LSP. Params: file (string), new_name (string), start_line (u32), start_column (u32), end_line (u32), end_column (u32) [, preview (bool)]
flatten Merge category @implementation into main @implementation
generate-accessors Generate getter/setter methods for @properties
generate-async-method Generate method with completion handler
generate-builder Generate builder pattern
generate-class-stub Generate class interface and implementation skeleton
generate-constructor Generate an initWith… initializer from @properties
generate-convenience-init Generate convenience initializer
generate-delegate-methods Generate delegate method stubs
generate-description Generate description method
generate-equality-methods Generate isEqual:/hash methods
generate-equals Generate equals/eq comparison method
generate-factory-method Generate factory method
generate-from-json Generate JSON deserialization
generate-hash Generate hash/hashCode method
generate-impl Generate interface/trait impl stubs
generate-init-method Generate init method
generate-mapped-type Generate typedef pointer alias for a class
generate-property-getter Generate @property getter
generate-property-setter Generate @property setter
generate-protocol-stub Generate protocol implementation stubs
generate-stub-method Generate empty method stub
generate-test-class Generate test class
generate-to-json Generate JSON serialization
generate-to-string Generate string representation
generate-try-catch-block Generate @try/@catch/@finally exception handling
generate-type-guard Generate isKindOfClass type guard function
inline Inline a variable, function, or method — replace every usage with its definition body, then remove the original. The inverse of extract. Works without LSP (single-file); LSP enables cross-file inlining. Params: file (string), symbol (string) [, line (u32), preview (bool), receipt (bool)]
insert_body Replace a function's implementation body with new code. AST-validated — rejects if the result has parse errors, so you can't accidentally break syntax. Use instead of manual text editing for function rewrites. Params: file (string), symbol (string), code (string) [, commit (bool)]
introduce-field Convert local variable to class field
introduce-parameter Convert expression to function parameter
introduce-property Convert ivar to @property with appropriate attributes
move-method-to-category Move method to category
move-method-to-protocol Move method to protocol
move_symbol Move a function, class, or type to a different file and automatically update all imports across the codebase. Use instead of manually cut/paste + fixing imports. Works without LSP (single-file); LSP enables cross-file import updates. Params: file (string), symbol (string), destination (string) [, preview (bool), receipt (bool)]
pull-up Move member to parent class
push-down Move member to child class(es)
recipe_run Run a codemod recipe: declarative match → transform → optional verify across modeled grammars. Preview lists matches; apply writes with optional E7 receipts and all-or-nothing rollback. Returns a per-site report.
remove-unused-import Remove unused import statement
rename Rename a symbol and automatically update ALL references across the codebase. Safer and faster than find-and-replace — AST-aware, won't rename strings or comments. Works without LSP (single-file); LSP enables cross-file renames. Params: file (string), old_name (string), new_name (string) [, line (u32), column (u32), preview (bool), receipt (bool)]
wrap-at-try-catch Wrap code in @try/@catch block
wrap-in-function Wrap selected code in new method

Analysis

42 analysis tools, the same on every supported language. Descriptions live in the shared reference: /docs/analysis-tools.

analyze_api_diff analyze_chokepoints analyze_clones analyze_clusters analyze_cohesion analyze_conformance analyze_coupling analyze_cycle_risk analyze_cycles analyze_dead_code analyze_depth analyze_entry_points analyze_export analyze_extraction analyze_fan_balance analyze_features analyze_hotspots analyze_impact analyze_inconsistencies analyze_inheritance analyze_interface_bloat analyze_interfaces analyze_layers analyze_orphan_types analyze_patterns analyze_platform_deps analyze_readiness analyze_roles analyze_seams analyze_stability analyze_surface analyze_test_gaps analyze_thickness analyze_type_completeness churn_hotspots co_change_clusters coverage_overlay ownership_map profile_overlay simulate split_module trace_overlay

Verify

14 verify tools, the same on every supported language. Descriptions live in the shared reference: /docs/verification.

bisect_regression gate generate_test_harness scan secret_surface summarize_pr taint_flow unsafe_surface verify_behavioral_equivalence verify_contract_preserved verify_diff_semantics verify_port_parity verify_side_effects verify_test_impact

← NoirOCaml →