GraphQL — 112 Operations for AI Agents

GraphQL schemas are API contracts clients build against: types, queries, mutations, resolvers' public face. act101 navigates the schema structurally, so agents answer "what can I query?" from the contract itself, precisely.

This page is the canonical reference an AI coding agent uses to refactor, query, and analyze GraphQL code through the act MCP server. 112 operations available: 38 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
38Refactor
42Analysis
14Verify

Worked GraphQL examples

act101 reads GraphQL documents through the selection-set and type-definition structure the tree-sitter grammar exposes, so an edit targets a specific selection rather than a raw text position. The single worked example below is the verbatim output of the command shown, run against the file shown. GraphQL support is under active validation and this page advertises only what that validation has confirmed; the remaining operations are omitted deliberately rather than shown untested.

Extract a selection set into a named fragment

input.graphql repeats user(id: 1)'s three-field selection inline; a named fragment would let other queries spread it.

$ act refactor-lang extract_fragment --file user.graphql --params '{"fragment_name":"UserFields","start_column":5,"end_line":5,"end_column":11,"start_line":3}'

Before

query GetUser {
  user(id: 1) {
    id
    name
    email
  }
}

After

fragment UserFields on User {
  id
  name
  email
}
query GetUser {
  user(id: 1) {
    ...UserFields
  }
}

The three inline fields become fragment UserFields on User { ... } above the query, and the original selection reads ...UserFields — the query's shape is unchanged.

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
extract-fragment Extract inline selection set into a named fragment
extract-query-variables Turn every literal argument of the operation at a line into a 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)]
generate-client-query-hook Generate a client-side query hook (Apollo Client, URQL)
generate-enum-type Prepend a new enum type definition to the file
generate-enum-value Append a new enum value to the enum at a line
generate-field-in-type Append a new field to the object type at a line
generate-field-resolver-map Generate a resolver map object for a type (JavaScript/TypeScript)
generate-field-type-guard Generate a TypeScript type guard for a union/interface type
generate-fragment Prepend a new fragment definition to the file
generate-fragment-types Generate TypeScript types from fragments
generate-input-field Append a new input field to the input type at a line
generate-input-type Prepend a new input type definition to the file
generate-mutation-hook Generate a client-side mutation hook
generate-mutation-operation Generate a mutation operation skeleton
generate-object-type Prepend a new object type definition to the file
generate-query-operation Generate a query operation skeleton for a type
generate-resolver-stub Append a JavaScript resolver stub for a field to the file
generate-schema-file Generate a schema.graphql file with all definitions
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), column (u32), preview (bool), receipt (bool)]. line alone resolves the symbol's one declaration on that line (refused when the line declares none or several of the name); line + column pinpoints its name
inline-fragment-spread Inline the fragment spread at line/column
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)]
merge-selections Merge duplicate sibling field selections throughout the file
move-field Move a field definition from one object type to another
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)]
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-fragment Remove every fragment definition the file never spreads
remove-unused-variable Remove a query variable that is not used
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)]. line alone resolves the symbol's one declaration on that line (refused when the line declares none or several of the name); line + column pinpoints its name
rename-argument Rename the field or directive argument at line/column and its call sites
rename-enum-value Rename the enum value at line/column and its literal uses
rename-field Rename every name in the file spelled like the field name at line/column
rename-fragment Rename a fragment: its definition and this file's spreads; refuses when other files use it
rename-type Rename every name in the file spelled like the type name at line/column
rename-variable Rename a $variable within the operation at line/column
reorganize-schema-fields Put the non-null fields of one object type first
split-selection Split the first operation's first field into two operations

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

← Godot ResourceGroovy →