Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Corvus

NUGET · CORVUSRE

Reverse engineering and security analysis of .NET and native binaries: decompile, compare, patch.

Available components

+4 this week 77 Trust /100

Last scanned (3 hours ago)

Scores higher than 59% of NuGet servers

Category Developer Tools

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security88
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Install-script risk not yet assessed.Unverified
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Build provenance not yet verified. View diagnostics → Unverified
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 28245 tokens (~170/item across 166 items; 165 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management67
  • Stability check failed: the tool surface changed between 2.3.0 and 2.11.0: 4 tool removals, 0 breaking changes, 13 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 167 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Tool coverage: 81% → 100% ▲ functional
    • Package version: 2.10.0 → 2.11.0 functional
  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 61 to 64.

  • 3 Nov 26 +1
    • Package version: 2.7.3 → 2.10.0 functional
  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 51.

  • 29 Oct 26 +1
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 2.7.2 → 2.7.3 functional
  • 28 Oct 26 +15
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 2.7.0 → 2.7.2 functional
    • Package version: 2.7.0 → 2.7.1 functional
  • 27 Oct 26 −14
    • Malware scan: pass → unverified ▼ security
    • Stability: 0.37 → fail ▼ security
    • Schema quality: 182 → 163 ▲ functional
    • Package version: 2.6.0 → 2.7.0 functional
  • 25 Oct 26 0
    • Tool safety: pass → unverified ▼ security
    • Stability: 0.30 → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Licence: MIT → Apache-2.0 functional
    • Package version: 2.5.1 → 2.6.0 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed nuget/CorvusRE@2.11.0

Provenance Inconclusive

We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.

Result Inconclusive
Ecosystem nuget
Reason Package not fetched

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 165 exposed · ~27,723 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_members_csharp ~102

Add C# members to a class or struct; private members are accessible. No field or property initializers. [Long-running.]

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
codestringyesC# member declarations.
dryRunboolean–true previews; false applies.
typestringyesNs.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

add_search_directory ~32

Add a folder where unloaded referenced assemblies are resolved; subfolders excluded.

NameTypeReqDescription
directorystringyesDirectory path.
NameTypeReqDescription
searchDirectoriesarray––
suggestedarray––

No examples provided.

add_types_csharp ~80

Add C# types (with namespace) to an assembly; they see its internal types; patch_method_csharp can call them. [Long-running.]

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
codestringyesC# source declaring the new types.
dryRunboolean–true previews; false applies.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

analyze_js ~205

Read a JavaScript bundle, Hermes or Ark bytecode statically: modules, source map, endpoints, secrets and data flow.

NameTypeReqDescription
columninteger–See line.
limitinteger–Rows: flow 50, react 200.
lineinteger–position (original source), flow: 1-based generated line.
maxTokensinteger–Page size in tokens.
offsetinteger–Char offset; flow, origins: flow index.
pathstringyesA .js, Hermes or Ark file or package.
querystring–Module id; search filter; function #id|name; flow: name, quoted literal, sinks, sink:KIND, module:ID; beautify: a=b, a@line:col=b, auto; react/jsx: name.
sourcestring–source: path or index; diff: old bundle.
viewstring–View.
NameTypeReqDescription
diffobject––
endpointsarray––
flowobject––
functionsarray––
hermesobject––
modulesarray––
positionobject––
runtimeobject––
secretsarray––
summaryobject––
totalinteger––
viewstring––

No examples provided.

analyze_native_function ~212

Everything known about one native function, in sections: identity, signature, frame, callers, callees, data, flow, annotations; constants, params and pseudocode on request. [Long-running.]

NameTypeReqDescription
addressstringyesIn the function; up to 16 comma-separated (a dossier each): Hex VA/RVA (rva:/va:/off:), export, module!import, function.
componentboolean–Several addresses: one component view (internal calls, shared data, interface).
enginestring–Pseudocode engine (default auto).
imagestringyesImage id, name, path.
maxItemsinteger–Facts per section (1-500).
maxTokensinteger–Page size in tokens.
offsetinteger–Character offset (nextOffset).
pseudocodeboolean–Add the pseudocode section.
sectionsstring–Comma-separated sections (default all but constants, params, pseudocode).
NameTypeReqDescription
addressstring––
batcharray––
componentobject––
endstring––
imagestring––
namestring––
nextarray––
sectionsarray––
sizeinteger––

No examples provided.

apply_edits ~133

Replay an export_edits script, with each edit's outcome. Another build needs targetBuild=other. [Long-running.]

NameTypeReqDescription
assemblystring–Target assembly; omit for the one named in the script.
continueOnErrorboolean–Apply the edits that succeed; default: roll all back on the first failure.
dryRunboolean–true: apply every edit, report, roll back; false keeps them.
pathstringyesThe .json edit script.
targetBuildstring–same: the script build only; other: another build, symbols by name.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––
itemsarray––
pushedToarray––

No examples provided.

apply_metadata_names ~106

Name the functions and data of an AOT binary as Ns_Type__Method from its dummy assemblies, script.json and stringliteral.json. User and PDB names win; names are saved per file hash and reapplied on load. [Long-running.]

NameTypeReqDescription
assemblystring–Dummy assemblies to use; omit for every loaded one with metadata.
clearboolean–Remove the metadata names and saved copy instead.
imagestringyesImage id, name, path.
NameTypeReqDescription
appliedboolean––
assembliesstring––
functionsinteger––
imagestring––
labelsinteger––
metadataSlotsinteger––
methodInfoSlotsinteger––
missesinteger––
removedinteger––
savedboolean––
sharedFunctionsinteger––
stringsinteger––
suffixedinteger––
userNamesKeptinteger––

No examples provided.

bucket_minidumps ~257

Group a folder of minidumps by crash signature (exception code, faulting function, top frames), by name so rebases do not split a bucket. [Long-running.]

NameTypeReqDescription
budgetSecondsinteger–Seconds parsing new dumps (1-3000).
folderstringyesFolder of .dmp or core files.
imageDirectoriesstring–Program binary folders, ;-separated.
limitinteger–Max rows.
managedstring–auto: managed signatures through a local DAC; off: native only.
maxDumpsinteger–Most dumps bucketed, newest first.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
patternstring–File patterns, ;-separated (default *.dmp;*.mdmp;*.core;core.*).
recursiveboolean–Search subfolders.
skipModulesstring–More frames to skip, ;-separated: module or module!function, * wildcards.
splitByVersionboolean–Add the faulting module version to the signature.
topFramesinteger–Signature frames after the faulting one.
NameTypeReqDescription
dumpsobject––
failedarray––
folderstring––
itemsarray––
notesarray––

No examples provided.

comment_native ~242

Comment a native address; undoable and pushed to the engines. append adds a line; empty clears. items: many in one push. [Long-running.]

NameTypeReqDescription
addressstring–Hex VA/RVA (rva:/va:/off:), export, module!import, function.
appendboolean–Add text as a new line of the comment; a line it has is skipped.
dryRunboolean–true previews; false applies.
enginestring–Engine to push to now (default: the one with this image open, else next use).
imagestringyesImage id, name, path.
itemsstring–Lines address = text, or JSON [{address, text, scope?, append?}].
repeatLineboolean–With append: add the line even if the comment has it.
scopestring–line: repeatable, shown where referenced; auto (default): function at its start, else line and pseudocode.
stopOnErrorboolean–Stop at the first failing item.
textstring–Comment text; empty clears.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––
itemsarray––
pushedToarray––

No examples provided.

compare_assemblies ~268

Compare two builds of an assembly: renamed, moved, changed, added and removed types and members, and capabilities added or removed. oldResult / newResult compare two kept results instead. [Long-running.]

NameTypeReqDescription
changesarray–Kinds to list (unknown: unpaired for lack of evidence); default all but address.
includeCompilerGeneratedboolean–Also compiler-generated types and members (closures, state machines).
limitinteger–Changes per page.
maxTokensinteger–Page size in tokens.
namespacestring–Only types whose old or new full name starts with this.
newAssemblystring–New build: id, name or path.
newResultstring–The new side, from the same tool.
offsetinteger–Rows to skip.
oldAssemblystring–Old build: id, name or path.
oldResultstring–Instead: a kept result (r-...), last:N (recent call) or bundle entry (file.json#r-...).
tokenMapboolean–Keep the whole old-to-new token map as a result (tokenMapResultId).
typeCountsOnlyboolean–Count added and removed types, not listed.
NameTypeReqDescription
ambiguousMembersinteger––
changesarray––
evidenceobject––
hiddenCompilerGeneratedinteger––
itemsarray––
matchedTypesinteger––
memberChangesarray––
memberMatchesarray––
newobject––
newSkippedBodiesinteger––
oldobject––
oldSkippedBodiesinteger––
oldTypesinteger––
tokenMapEntriesinteger––
tokenMapResultIdstring––
typeChangesarray––

No examples provided.

compare_folders ~216

Compare two folders, zip-family archives or files: modified, added, removed and moved entries, binary versions, text diffs and package findings. oldResult / newResult compare two kept results instead. [Long-running.]

NameTypeReqDescription
caseSensitiveboolean–Default: false on Windows and macOS.
changestring–Entries listed.
excludearray–Path globs to skip.
limitinteger–Entries per page.
maxEntriesinteger–Per side; past it, incomplete.
newPathstring–New folder, archive or file.
newResultstring–The new side, from the same tool.
noDiffsboolean–Leave out text diffs.
offsetinteger–Rows to skip.
oldPathstring–Old folder, archive or file.
oldResultstring–Instead: a kept result (r-...), last:N (recent call) or bundle entry (file.json#r-...).
NameTypeReqDescription
caseSensitiveboolean––
changesarray––
countsobject––
entriesarray––
evidenceobject––
hashBasisstring––
newobject––
notesarray––
oldobject––
viewstring––

No examples provided.

compare_native_images ~266

Match functions of two native builds (x86, x64, ARM64): pairs, changed, unmatched, ambiguous, capabilities. [Long-running.]

NameTypeReqDescription
codeOnlyboolean–Match by code, not names.
enginestring–ida or ghidra: compare oldImage's file with that engine's memory.
limitinteger–Max rows.
maxComparisonsinteger–Fuzzy comparison cap, 1-1e9.
maxTokensinteger–Page size in tokens.
minScorenumber–Least fuzzy score (0-1).
newImagestring–New build: image id or path.
newResultstring–The new side, from the same tool.
offsetinteger–Rows to skip.
oldImagestring–Old build: image id or path.
oldResultstring–Instead: a kept result (r-...), last:N (recent call) or bundle entry (file.json#r-...).
tierinteger–Only tier 1 (name, bytes) .. 5 (fuzzy); 0 all.
viewstring–changed: code differs; ambiguous: candidates; wasm: interface.
NameTypeReqDescription
ambiguousinteger––
changedinteger––
changesarray––
evidenceobject––
identicalinteger––
itemsarray––
matchedinteger––
newFunctionsinteger––
newImagestring––
newVersionstring––
notesarray––
oldFunctionsinteger––
oldImagestring––
oldVersionstring––
tiersarray––
unmatchedNewinteger––
unmatchedOldinteger––
viewstring––

No examples provided.

convert_number ~115

Convert numbers exactly: signed and unsigned decimal, hex, binary, octal, LE and BE bytes with their ASCII, and the bits as float or double.

NameTypeReqDescription
numbersarrayyesDecimal, 0x or h-suffixed hex, 0b, 0o, C suffixes, 'ABCD' (C char constant) or "text" (memory order).
sizeinteger–Width in bytes: 1, 2, 4 or 8 (default: smallest that fits).
NameTypeReqDescription
itemsarray––

No examples provided.

declare_native_types ~241

Declare C types in the engine, replacing same-named ones; an engine error saves nothing. typeName edits one enum, struct or union; delete and rename take any named type. Kept in annotations. [Long-running.]

NameTypeReqDescription
declarationsstring–C declarations; named types must exist or be declared too.
deletestring–A type to delete.
enginestring–Default auto.
fieldsstring–Struct or union: name: type; name@0x10: type; @0x10: type (or lines); name: removes; +name@0x10: type inserts.
imagestringyesImage id, name, path.
membersstring–Enum: NAME=value, ... (hex or decimal; or lines); NAME= removes.
nameGapsboolean–Struct: name unnamed gaps gap_OFFSET.
renamestring–Old=New; kept edits naming it follow.
resizestring–Struct: new size (hex or decimal); goes alone.
typeNamestring–Enum, struct or union to edit.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

decompile_java ~258

Java source of a class or method via JADX (CORVUS_JAVA_DECOMPILER, JDK 17+), or a jar or .class via Vineflower (engine=vineflower, CORVUS_JAVA_DECOMPILER2). simplified=true replaces each decoder call with a known value by its string literal. Without either: disassemble_dex. [Long-running.]

NameTypeReqDescription
enginestring–jadx (default) or vineflower (class files only).
javaOnlyboolean–Partial Java where JADX fails; default: smali there.
mappingstring–R8/ProGuard mapping.txt: shows and accepts original names; kept per package.
maxTokensinteger–Page size in tokens.
offsetinteger–Character offset (nextOffset).
pathstringyesAn .apk, .aab or split set, a .dex, a jar or a .class.
simplifiedboolean–Show string decoder calls as their decoded literals; a header counts unknown calls.
symbolstringyesClass (pkg.C, Lpkg/C;) or method (Lpkg/C;->m(I)V, pkg.C::m, pkg.C::m(int)).
NameTypeReqDescription
codestring––
nextOffsetinteger––
offsetinteger––
totalCharsinteger––

No examples provided.

decompile_member ~165

Decompile a member or a whole type to C#; every overload unless a parameter list picks one. Code the decompiler fails on shows as IL.

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
kindstring–Restrict to this kind (default any).
maxTokensinteger–Page size in tokens.
memberstringyesNs.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token.
offsetinteger–Character offset (nextOffset).
provenanceboolean–Start with build-pinning comments: SHA-256, MVID, tokens, IL hashes.
simplifiedboolean–Show the code as simplify_methods would leave it, assembly unchanged.
NameTypeReqDescription
bodiesarray––
codestring––
languagestring––
methodsarray––
nextOffsetinteger––
offsetinteger––
symbolsarray––
totalCharsinteger––

No examples provided.

decompile_native ~319

C pseudocode of a native function from IDA or Ghidra, with the names, comments and types made here; address= on x64 adds the method behind slot-indexed virtual calls. The first call analyzes the image; functions= decompiles several per request. [Long-running.]

NameTypeReqDescription
addressstring–Hex VA/RVA (rva:/va:/off:), export, module!import, function.
addressesboolean–Prefix lines with their source address.
callersOfstring–Instead of address: decompile this function's callers (engine references).
enginestring–Default auto; all: each installed engine in turn.
functionsarray–Instead of address: several addresses or names.
imagestringyesImage id, name, path.
maxFunctionsinteger–With functions: most decompiled (1-200); the rest follow.
maxTokensinteger–Page size in tokens.
offsetinteger–Character offset; with functions/callersOf the first input (nextInput).
perFunctionSecondsinteger–With functions: seconds per function (1-600).
refsboolean–With address: a footer of the globals, functions, strings and imports used.
timeoutSecondsinteger–Seconds per engine request (1-600); Ghidra retries once with 4x.
viewstring–c, or pcode (Ghidra high p-code per block).
NameTypeReqDescription
codestring––
enginestring––
engineNotestring––
failedinteger––
imagestring––
inputsinteger––
itemsarray––
nextInputinteger––
nextOffsetinteger––
offsetinteger––
skippedinteger––
succeededinteger––
totalCharsinteger––

No examples provided.

define_native ~194

Redefine an address in the engine as code, a function, data or undefined, up to end or along the flow. data and undefine drop a global's user type. Kept in annotations. [Long-running.]

NameTypeReqDescription
addressstringyesHex VA/RVA (rva:/va:/off:), export, module!import, function.
endstring–Exclusive end address (same forms as address).
enginestring–Default auto.
imagestringyesImage id, name, path.
kindstringyesfunction with end moves a function end; flow (Ghidra): type branch, call, call_return or return, else clears.
typestring–kind=data: byte, word, dword, qword, float, double, string, string16 (UTF-16), a C type; dword[8] arrays.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

diff_edits ~80

Unified diff of the decompiled C# of each member the edits (or one) touched.

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
maxTokensinteger–Page size in tokens.
numberinteger–Only this edit (list_edits number).
offsetinteger–Character offset (nextOffset).
NameTypeReqDescription
codestring––
nextOffsetinteger––
offsetinteger––
totalCharsinteger––

No examples provided.

diff_function ~282

Diff one function between two builds: aligned instruction rows, or a unified pseudocode diff with view=pseudocode. oldResult / newResult diff kept code. [Long-running.]

NameTypeReqDescription
addressstring–In the function: Hex VA/RVA (rva:/va:/off:), export, module!import, function.
addressesarray–Instead of address: up to 20 functions, one summary each.
codeOnlyboolean–Match by code, not names.
contextinteger–Unchanged rows around each change (0-50).
enginestring–view=pseudocode: the engine.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
newImagestring–New build: image id or path.
newResultstring–Same tool; or one result plus the other image and address.
offsetinteger–Rows to skip.
oldImagestring–Old build: image id or path.
oldResultstring–Instead: old code as a kept result (r-...), last:N (recent call) or bundle entry (file.json#r-...).
sidestring–Which build the address is in.
viewstring–pseudocode needs an engine.
NameTypeReqDescription
addedinteger––
basisstring––
candidatesarray––
changedinteger––
evidenceobject––
functionsarray––
itemsarray––
newAddressstring––
newFunctionstring––
newImagestring––
notesarray––
oldAddressstring––
oldFunctionstring––
oldImagestring––
removedinteger––
sameinteger––
scorenumber––
summarystring––
tierinteger––
viewstring––

No examples provided.

disassemble ~200

MASM disassembly of the function at an address, with references named and call arguments recovered; outside a function, maxInstructions from the address. Names the method behind slot-indexed virtual calls on x64 and AArch64 images. [Long-running.]

NameTypeReqDescription
addressstringyesHex VA/RVA (rva:/va:/off:), export, module!import, function.
collapsestring–runtime: fold lazy-init, write-barrier and static-base code to one comment line. Default none.
enginestring–auto (default): IDA or Ghidra if analyzed, else ours.
fromAddressboolean–maxInstructions from the address, not the containing function.
imagestringyesImage id, name, path.
maxInstructionsinteger–Max instructions.
maxTokensinteger–Page size in tokens.
offsetinteger–Character offset (nextOffset).
NameTypeReqDescription
addressstring––
codestring––
enginestring––
functionstring––
imagestring––
nextOffsetinteger––
offsetinteger––
totalCharsinteger––

No examples provided.

disassemble_dex ~169

Smali of a DEX method or class; format=annotated adds code offsets, simplified the string each decoder call returns. A jar or .class: the javap -c -p listing.

NameTypeReqDescription
formatstring–Output layout; default smali.
mappingstring–R8/ProGuard mapping.txt: shows and accepts original names; kept per package.
maxTokensinteger–Page size in tokens.
offsetinteger–Character offset (nextOffset).
pathstringyesAn Android package, .dex, jar or .class.
symbolstringyesMethod (Lpkg/C;->m(I)V, pkg.C::m, pkg.C::m(int)) or class (pkg.C, Lpkg/C;).
NameTypeReqDescription
codestring––
nextOffsetinteger––
offsetinteger––
totalCharsinteger––

No examples provided.

dump_heap ~180

List the .NET GC heap of a dump or session: per-type counts and sizes, or matching objects (first 100000 paged). Needs heap memory in the dump, else heap_not_captured. [Long-running.]

NameTypeReqDescription
dumpstringyesA .dmp path, open_minidump's id or a session id (live-1): its program, read while it runs.
limitinteger–Max rows.
maxObjectsinteger–Max objects walked.
maxTokensinteger–Page size in tokens.
minSizeinteger–Min object size in bytes.
modestring–stats (per type) or objects (one row each).
offsetinteger–Rows to skip.
typestring–Type full name, * ? wildcards; default all.
NameTypeReqDescription
dumpstring––
itemsarray––
matchedBytesinteger––
modestring––
notesarray––
typestring––
walkedinteger––

No examples provided.

dump_object ~123

Read one .NET object of a dump or session: type, size, fields, a string's or boxed value, or array elements.

NameTypeReqDescription
addressstringyesHex address of the object.
depthinteger–Reference levels expanded (up to 3).
dumpstringyesA .dmp path, open_minidump's id or a session id (live-1): its program, read while it runs.
maxArrayItemsinteger–Max array elements.
maxFieldsinteger–Max fields, nested included.
NameTypeReqDescription
addressstring––
assemblystring––
buildCheckstring––
dumpstring––
fieldsarray––
lengthinteger––
notesarray––
sizeinteger––
tokenstring––
truncatedboolean––
typestring––
valuestring––

No examples provided.

dump_stack ~206

Walk the call stack of a dump thread, naming frames from loaded images, PDBs or exports. .NET frames add token, IL offset and C# statement.

NameTypeReqDescription
dumpstringyesA .dmp path or open_minidump's id.
dumpTimeContextboolean–Faulting thread: its context at dump time, not the exception's (.ecxr).
imageDirectoriesstring–Program binary folders (';'-separated), kept for the dump, plus its own.
limitinteger–Max rows.
managedstring–auto: .NET frames via the DAC; off: native only.
maxFramesinteger–Max frames walked (up to 1024).
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
threadstring–Thread id, '#index', name or 'exception' (default: faulting, else first).
NameTypeReqDescription
architecturestring––
contextstring––
dumpstring––
itemsarray––
managedstring––
notesarray––
registersstring––
scannedFramesinteger––
stopstring––
threadIdinteger––
threadNamestring––

No examples provided.

emulate_native ~387

Emulate native code from an address: return value, registers and written strings. resume= continues a run a budget stopped, saved best-effort under the data folder. [Long-running.]

NameTypeReqDescription
addressstringyesHex VA/RVA (rva:/va:/off:), export, module!import, function.
argsstring–Per calling convention: integer, address or pointer to 'text', u'text', buf:N (zeros) or hex:41A0.
candidatesstring–Argument sets, ;-separated, each as args; one timeoutSeconds covers all.
enginestring–auto: Ghidra, else ours; ours: x86/x64/ARM64 integer code; speakeasy: a whole program.
imagestringyesImage id, name, path.
maxInstructionsinteger–Instruction budget (1-50000000).
memorystring–ADDR=VALUE: 'text', u'text', hex:.., zero:N, u32:5, ptr:..; outside the image va:0x10000000.
readstring–Shown after the run: ADDR or register, space or :, length (rcx 64).
registersstring–rcx=0x10, rdx='key' (values as args).
resumestring–Run id from Next, also after a restart; address is ignored.
stopAtstring–Addresses to stop at.
stubsstring–Calls not run: name=value (GetTickCount=5, kernel32!Sleep=0; *=0 calls outside the image).
timeoutSecondsinteger–Time budget, s (1-300).
traceinteger–Last instructions listed (0-2000).
NameTypeReqDescription
apiCallsarray––
callCountinteger––
callsarray––
candidatesarray––
enginestring––
filesWrittenarray––
imagestring––
instructionsinteger––
nullPageWritesobject––
readsarray––
regionSetstring––
registersarray––
returnRegisterstring––
returnValuestring––
stopstring––
stoppedAtstring––
tracearray––
writtenarray––

No examples provided.

export_edits ~71

Save an assembly's edits as a JSON script bound to its build (SHA-256, MVID) for apply_edits.

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
outputPathstringyesOutput .json path.
overwriteboolean–Overwrite outputPath.
NameTypeReqDescription
editsinteger––
identitystring––
mvidstring––
outputPathstring––
sha256string––

No examples provided.

export_engine_database ~130

Write the engine database of a native image, with the names, comments and types made here, to open in IDA (.i64) or Ghidra (.gzf); written whole or not at all. [Long-running.]

NameTypeReqDescription
enginestring–Default: the engine of the extension, else IDA.
imagestringyesImage id, name, path.
outputPathstringyesThe .i64 (IDA), .gzf, or Ghidra types alone as .h or .gdt.
overwriteboolean–Overwrite outputPath.
NameTypeReqDescription
bytesinteger––
enginestring––
imagestring––
notestring––
pathstring––

No examples provided.

export_method_symbols ~122

Export dummy-assembly metadata as IDA Python and Ghidra scripts that create, name and comment every function, a C header of struct layouts and a script.json. [Long-running.]

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
baseNamestring–Base name of the generated files.
formatsstring–Comma-separated: ida, ghidra, header, json or all.
outputDirectorystringyesOutput directory.
overwriteboolean–Replace same-named files.
NameTypeReqDescription
filesarray––
functionsinteger––
structsinteger––

No examples provided.

export_native_annotations ~98

Write the image's names, comments and user types as IDAPython, a Ghidra script, JSON or a C header. objc-header writes the Objective-C and Swift declarations of a Mach-O. [Long-running.]

NameTypeReqDescription
formatstring–Default json.
imagestringyesImage id, name, path.
outputPathstringyesOutput file path.
overwriteboolean–Overwrite outputPath.
NameTypeReqDescription
bytesinteger––
commentsinteger––
formatstring––
importedinteger––
namesinteger––
outputPathstring––
pseudoCommentsinteger––
sha256string––
typesinteger––

No examples provided.

export_native_patches ~102

Write the image's byte patches as an IDAPython script, an IDA .dif, IPS or a JSON set for migrate_native_patches. Relocation edits and the PE checksum are included.

NameTypeReqDescription
formatstring–Default json; ips takes offsets below 16 MB.
imagestringyesImage id, name, path.
outputPathstringyesOutput file path.
overwriteboolean–Overwrite outputPath.
NameTypeReqDescription
bytesinteger––
changedBytesinteger––
checksumUpdatedboolean––
formatstring––
imagestring––
notesarray––
originalSha256string––
outputPathstring––
patchesinteger––
recordsinteger––
relocationEditsinteger––

No examples provided.

export_project ~91

Decompile an assembly into a C# project on disk; an .apk or .aab gives a Gradle project. Written whole or not at all; a repeat joins a running export. [Long-running.]

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
outputDirectorystringyesEmpty or new output directory.
overwriteboolean–Replace a previous export in outputDirectory.
NameTypeReqDescription
appliedboolean––
failedTypesarray––
filesinteger––
outputDirectorystring––
projectFilestring––
renamedFilesarray––
replacedboolean––
sourcestring––

No examples provided.

extract_embedded ~202

Embedded content of an assembly, container or native PE (resources, byte arrays, literals, inner PEs), decoded (hex, base64, compression, XOR) to an image, archive or text with its encoding chain; save=true writes them.

NameTypeReqDescription
assemblystring–A loaded assembly; this or path.
includeMediaboolean–Also list and save images (else counted).
limitinteger–Max rows.
loadboolean–Load .NET assemblies found (implies save).
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
outputDirectorystring–Empty directory or an earlier extraction; default: temp.
pathstring–An assembly or container file, read without loading.
saveboolean–Write the items to disk.
xorTextboolean–Also try 1-16 byte XOR keys (slower).
NameTypeReqDescription
assemblystring––
itemsarray––
outputDirectorystring––

No examples provided.

Install

How do I install the Corvus MCP server?

Corvus runs locally as a NuGet package, launched with dnx CorvusRE@2.11.0 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

nuget · CorvusRE

# add to Claude Code
claude mcp add albasha0x0-corvus -- dnx CorvusRE@2.11.0 --yes
Common questions

What is the Corvus MCP server?

Corvus is an MCP server listed in the public MCP registry as io.github.Albasha0x0/corvus. Reverse engineering and security analysis of .NET and native binaries: decompile, compare, patch. This page covers its NuGet package (CorvusRE).

Is the Corvus MCP server safe to use?

Corvus scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Corvus MCP server expose?

Corvus exposes 165 tools: get_engine_status, export_edits, list_types, resolve_call_targets, search_constants, and 160 more. Their descriptions and schemas cost roughly 27,723 tokens of context every time the server is loaded.

Is the Corvus MCP server still maintained?

Corvus is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Corvus MCP server under?

Corvus declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.