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_statsProject-wide counts (files, modules, functions, variables, edges) and the most-connected modules — call this first when orienting in an unfamiliar project.
list_modulesEvery module in the project as [module, kind] rows, for discovering forms or modules by name.
list_filesEnumerate parseable source files under a directory before creating a project, or preview project size.
symbol_lookupFind where a symbol is declared by name, optionally narrowed to one module.
referencesFind every place a symbol is used — module, procedure, line, and usage kind.
call_pathCheck whether and how one procedure can reach another, with the full hop chain.
impact_analysisAnswer "what breaks if I change X?" — every procedure that transitively depends on a symbol, sorted by depth.
module_summaryOverview of one module — its procedures, what it depends on, what depends on it, and its dead-code count.
context_packA token-budgeted bundle of source and summary context around a focus symbol or module, assembled in one call instead of many small lookups.
source_excerptExact source lines from a module between a start and end line, typically after locating a spot via symbol_lookup or references.
get_nodesRaw filtered node query by label, module, name, or visibility, for cases the higher-level lookup tools don’t cover.
get_edgesRaw filtered edge query by relationship, source module, or target module.
find_in_filesText or regex search across the whole project.
scip_runForce 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_projectsEvery project this backend knows about, with id, name, and source directory — check before creating a duplicate.
create_projectLoad a new project from a local directory: enumerates parseable files, parses them, and resolves the graph in one call.
get_projectFetch one project’s record by id.
draft_planDraft or re-draft a migration plan for a project — computes units and dependency order.
get_planFetch a project’s current saved migration plan — units, ordering, and dependencies.
save_planHand-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_startStart, or resume, a project’s migration batch.
batch_pausePause a running batch after its current in-flight unit finishes.
batch_statusOverall batch state plus a per-unit outcome breakdown.
advance_unitManually advance one migration unit by a single step in its snapshot → translate → shim → verify → mark → done pipeline.
unit_stateOne migration unit’s current step, and its verify result once it’s past verification.
status_overlayA 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_translationsList cached procedure translations, optionally filtered — e.g. to find everything still pending approval.
list_pending_translationsLow-confidence procedures still awaiting a translation answer, each with its original source, the raw mechanical output, and the flags the transpiler raised.
proc_sourceRead the exact original source of one procedure, typically before answering a pending translation.
submit_translationSubmit your own translation for a pending item. Doesn’t approve it — that’s a separate step.
approve_translationsApprove 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_adviceSee current Public → Private scope-narrowing recommendations for a project.
apply_scope_adviceApply the Public → Private scope narrowing surfaced by get_scope_advice.
remove_dead_codeRemove, or stub, dead-code procedures and variables. dryRun returns a diff without writing.
replace_in_filesBulk find/replace across a project.
write_proc_sourceOverwrite one procedure’s source directly.
write_module_outputWrite 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.