UnspoolCode

MCP tool server

All 37 tools, grouped by what they do.

UnspoolCode's MCP server gives a coding agent purpose-built tools instead of raw file access — read tools to explore the graph, plan and batch tools to run a migration, a review queue for every translation, and write tools for graph edits, all gated behind dry-run previews and hash checks. Connect Claude or any MCP client and it calls these directly.

01Read

Explore the graph

Orient in an unfamiliar project, look up symbols, and trace calls without reading raw source.

project_stats

Project-wide counts (files, modules, functions, variables, edges) and the most-connected modules — call this first when orienting in an unfamiliar project.

list_modules

Every module in the project as [module, kind] rows, for discovering forms or modules by name.

list_files

Enumerate parseable source files under a directory before creating a project, or preview project size.

symbol_lookup

Find where a symbol is declared by name, optionally narrowed to one module.

references

Find every place a symbol is used — module, procedure, line, and usage kind.

call_path

Check whether and how one procedure can reach another, with the full hop chain.

impact_analysis

Answer "what breaks if I change X?" — every procedure that transitively depends on a symbol, sorted by depth.

module_summary

Overview of one module — its procedures, what it depends on, what depends on it, and its dead-code count.

context_pack

A token-budgeted bundle of source and summary context around a focus symbol or module, assembled in one call instead of many small lookups.

source_excerpt

Exact source lines from a module between a start and end line, typically after locating a spot via symbol_lookup or references.

get_nodes

Raw filtered node query by label, module, name, or visibility, for cases the higher-level lookup tools don’t cover.

get_edges

Raw filtered edge query by relationship, source module, or target module.

find_in_files

Text or regex search across the whole project.

scip_run

Force a fresh SCIP index run for a project instead of waiting on the batch pipeline to trigger one.

02Manage

Projects & plans

Load a codebase, and draft or fetch the migration plan built from its dependency order.

list_projects

Every project this backend knows about, with id, name, and source directory — check before creating a duplicate.

create_project

Load a new project from a local directory: enumerates parseable files, parses them, and resolves the graph in one call.

get_project

Fetch one project’s record by id.

draft_plan

Draft or re-draft a migration plan for a project — computes units and dependency order.

get_plan

Fetch a project’s current saved migration plan — units, ordering, and dependencies.

save_plan

Hand-save an edited migration plan, e.g. after reordering units or breaking a dependency cycle.

03Execute

Batch migration

Run the plan: snapshot, translate, shim, verify, mark, done — one unit at a time, resumable after a restart.

batch_start

Start, or resume, a project’s migration batch.

batch_pause

Pause a running batch after its current in-flight unit finishes.

batch_status

Overall batch state plus a per-unit outcome breakdown.

advance_unit

Manually advance one migration unit by a single step in its snapshot → translate → shim → verify → mark → done pipeline.

unit_state

One migration unit’s current step, and its verify result once it’s past verification.

status_overlay

A module-name → migration-status map for a project, for coloring or annotating a UI view.

04Review

Translation queue

Every translated procedure sits in a review queue — approve it, reject it, or override it yourself before it ships.

list_translations

List cached procedure translations, optionally filtered — e.g. to find everything still pending approval.

list_pending_translations

Low-confidence procedures still awaiting a translation answer, each with its original source, the raw mechanical output, and the flags the transpiler raised.

proc_source

Read the exact original source of one procedure, typically before answering a pending translation.

submit_translation

Submit your own translation for a pending item. Doesn’t approve it — that’s a separate step.

approve_translations

Approve or reject a batch of cached translations — approval is required before a unit can pass verify.

05Write

Graph edits & output

Every tool here is destructive. Each one supports a dry-run preview, and direct writes are hash-checked against the last-read source to catch anything stale.

get_scope_advice

See current Public → Private scope-narrowing recommendations for a project.

apply_scope_advice

Apply the Public → Private scope narrowing surfaced by get_scope_advice.

remove_dead_code

Remove, or stub, dead-code procedures and variables. dryRun returns a diff without writing.

replace_in_files

Bulk find/replace across a project.

write_proc_source

Overwrite one procedure’s source directly.

write_module_output

Write every approved translation for a module to an output file — a bounded write that only flushes already-approved entries, never arbitrary text.

Early access

Let your agent call these directly.

UnspoolCode is real, working software, currently pre-GA. Join the waitlist and we'll reach out when early access opens — no commitment, no spam.