Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCO_SERVERSNoComma-separated subset of servers to enable for the gateway.
X64DBG_PATHNoPath to x64dbg.exe.
X64DBG_PIPENoNamed pipe path for x64dbg. Default is '\\.\pipe\x64dbg_ai_agent'.\\.\pipe\x64dbg_ai_agent
GROQ_API_KEYNoAPI key for Groq. Only needed when using --llm groq.
IDA_MCP_HOSTNoIDA HTTP host. Default is 'localhost'.localhost
IDA_MCP_PORTNoIDA HTTP port. Default is '2022'.2022
WINDBG_MCP_CDBNoPath to cdb.exe (WinDbg command line debugger). Default is 'C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe'.
MCO_SESSIONS_DBNoSQLite database path for session recording.
ANTHROPIC_API_KEYNoAPI key for Claude. Only needed when using --llm claude.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
mco_gateway_statusA

Show status of all MCO sub-servers: running/stopped, PID, tool count, uptime.

mco_restart_serverA

Restart a crashed MCO sub-server by name (windbg / ida / x64dbg / orchestrator / sessions).

mco_list_serversA

List all configured MCO sub-servers with description and tool counts.

windbg_helpA

Show a quick orientation cheatsheet for this MCP: typical workflow, key concepts, address forms, and timeout semantics. Call this first if you are unsure how to drive the debugger.

windbg_start_executableA

Launch a Windows executable under cdb. The target starts SUSPENDED at the initial breakpoint — use windbg_continue to run it.

windbg_attachA

Attach cdb to a running process by PID. The process is paused on attach.

windbg_open_dumpA

Open a Windows crash dump (.dmp) for post-mortem analysis. Combine with windbg_analyze_crash.

windbg_stopA

Quit the cdb session and release the target.

windbg_statusA

Show whether a session is active, current target, RIP, nearest symbol, current process and thread.

windbg_io_statusA

Show MCP-side debugger I/O state: active cdb PID, buffered output lines, async command, and async age.

windbg_break_inA

Break into a running target (Ctrl+Break). Use this when the program is executing and you need to pause it.

windbg_run_commandA

Run an arbitrary cdb/WinDbg command verbatim. Optional regex filter keeps only matching lines; max_lines caps noisy output.

windbg_run_command_asyncA

Send a raw cdb command and return immediately without waiting for a prompt and without break-in. Use windbg_wait_for_event/read_output afterward.

windbg_continueA

Resume execution (cdb 'g'). Returns when the target hits a breakpoint, exception, or exits. On timeout the server auto-breaks the target so you can recover.

windbg_continue_asyncA

Resume execution with cdb 'g' and return immediately. Does not install a timeout and never sends break-in by itself.

windbg_goA

Recommended safe continue: send cdb 'g', then wait for event/output without ever sending break-in on timeout.

windbg_wait_for_eventA

Wait for output/prompt from an async command without sending break-in on timeout. Use after windbg_continue_async.

windbg_wait_exception_profileA

Wait for exception/crash output using a preset filter profile (default/tg/asan). Does not send break-in on timeout.

windbg_read_outputA

Drain currently buffered cdb output without blocking and without sending break-in.

windbg_step_inA

Single-step one instruction, stepping INTO calls (cdb 't').

windbg_step_overA

Single-step one instruction, stepping OVER calls (cdb 'p').

windbg_step_outA

Run until the current function returns (cdb 'gu').

windbg_run_toA

Run until execution reaches a given address or symbol (cdb 'g ').

windbg_set_breakpointC

Set a software breakpoint at an address or symbol. Optional cdb-expression condition.

windbg_set_conditional_bpA

Build and set a conditional cdb breakpoint safely, including optional .printf logging and false-branch gc.

windbg_bp_templateA

Set a breakpoint from an AI-friendly template: log this/args, log expression, stop on signed-negative, pointer range, or stack log.

windbg_set_data_breakpointA

Set a hardware data breakpoint (cdb 'ba'). Triggers on read/write/execute access.

windbg_watch_memoryA

Set a hardware data breakpoint that logs IP, watched value, optional stack, then continues. Avoids hand-written ba/.printf escaping.

windbg_list_breakpointsA

List all configured breakpoints (cdb 'bl').

windbg_save_breakpointsA

Persist current breakpoints using cdb .bpcmds into .windbg_mcp_breakpoints/.cmd.

windbg_load_breakpointsA

Restore a previously saved breakpoint set. Optionally clears existing breakpoints first.

windbg_clear_breakpointA

Delete one or all breakpoints (cdb 'bc').

windbg_disable_breakpointA

Disable a breakpoint without deleting it (cdb 'bd').

windbg_enable_breakpointA

Re-enable a previously disabled breakpoint (cdb 'be').

windbg_registersA

Read the CPU registers. Output is parsed into a clean key=value table plus the raw cdb output.

windbg_set_registerB

Modify a CPU register, e.g. name='rax', value='0x42'.

windbg_evaluateA

Evaluate a cdb expression (cdb '?'). Useful for arithmetic, symbol lookup, and casting.

windbg_call_stackA

Show the call stack of the current thread.

windbg_stack_find_threadA

Search all thread stacks for a regex/module/SP/address and optionally switch to the matching thread.

windbg_shadow_stackA

Dump the CET hardware shadow stack using dps @ssp. Useful when HW-enforced stack protection is enabled.

windbg_shadow_stack_compareA

Dump normal stack and shadow stack side by side for quick return-address divergence checks.

windbg_shadow_stack_returnA

Resolve one shadow stack return slot: dps slot, nearest symbol, and disassembly at poi(slot).

windbg_run_to_shadow_returnB

Run to poi(@ssp+index*8). Async by default so long waits do not force break-in.

windbg_disassembleA

Disassemble code forward. By default shows N instructions at an address; with function=true disassembles the whole function (cdb 'uf').

windbg_disassemble_backA

Disassemble N instructions BEFORE an address (cdb 'ub'). Useful for seeing what led to the current IP.

windbg_read_memoryA

Read memory in a chosen format (byte/word/dword/qword/ascii/unicode/pointer).

windbg_write_memoryA

Write memory in a chosen format (byte/word/dword/qword/ascii/unicode).

windbg_search_memoryA

Search a memory range for a byte/string/dword/qword pattern.

windbg_list_modulesA

List loaded modules. Optional name filter (cdb 'lm m ').

windbg_module_infoA

Show detailed info for one module (paths, version, symbols).

windbg_list_threadsA

List all threads in the current process.

windbg_switch_threadA

Switch debugger context to a specific thread index.

windbg_switch_thread_by_tidA

Switch debugger context by OS thread id using cdb ~~[tid]s. Accepts values like '43110', '0x43110', or 'pid.tid'.

windbg_list_processesA

List processes in the current debugger session (cdb '|').

windbg_find_symbolsA

Search symbols by pattern across modules (cdb 'x'). Pattern: 'mod!func'.

windbg_address_to_symbolB

Find the nearest symbol to an address (cdb 'ln').

windbg_localsA

Show local variables of the current frame (requires private symbols).

windbg_source_linesA

Show source code lines around an address (requires source path).

windbg_analyze_crashA

Run !analyze on the current state. Best after windbg_open_dump or on an unhandled exception.

windbg_pebA

Dump the Process Environment Block of the current process (cdb '!peb').

windbg_tebA

Dump the Thread Environment Block of the current thread (cdb '!teb').

windbg_heapB

Run !heap with optional arguments (e.g. '-s' for summary, '-p -a ' to inspect a block).

windbg_handleA

Run !handle to inspect kernel handles in the target. Empty args lists all handles.

windbg_addressB

Describe a virtual address with !address. Filters noisy 'Building memory map' progress lines and can cap output.

windbg_dtB

Dump a structure type with cdb 'dt'. Optionally apply to an address.

windbg_set_symbol_pathA

Set the symbol search path (cdb '.sympath') and reload symbols. Use 'srvc:\symhttps://msdl.microsoft.com/download/symbols' for the public store.

windbg_reload_symbolsA

Reload symbols (cdb '.reload'). Use force=true to discard cached symbols.

windbg_set_source_pathA

Set the source code search path (cdb '.srcpath').

windbg_crash_triageA

Full crash triage in one call: !analyze -v + registers + call stack + exception record + fault address context. Best first tool after hitting a crash.

windbg_heap_block_infoA

Inspect a specific heap block: size, flags, neighbors, memory before/after. Use with ASAN crash addresses to understand overflow context.

windbg_heap_neighborsA

Inspect a heap block plus bytes and pointer/symbol view before and after it.

windbg_object_contextA

One-call object/heap context: address eval, symbol, !address, !heap, qwords, bytes/pointers around, potential vtable, optional VRle::Span decode.

windbg_thread_stacksA

Show call stacks for ALL threads simultaneously (cdb '~* kP'). Essential for race condition / UAF analysis.

windbg_exception_chainA

Show full exception chain: last event + exception record + context + stack at exception + SEH chain.

windbg_find_vtableA

Check if an address contains a vtable pointer and resolve it to a symbol + disassembly. Useful for type confusion / UAF analysis.

windbg_find_vtable_ownerA

Find heap object candidates whose first qword equals a vtable pointer. With heap_start+heap_length searches that range; otherwise parses heap ranges from !address -f:Heap and searches each range.

windbg_decode_spansA

Decode VRle::Span entries from memory. Layout assumed: {x:i16, y:i16, len:u16, cov:u8, raw7:u8}.

windbg_asan_parseA

Parse ASAN crash context: exception record + context record + call stack at exception. Use when debugging ASAN-instrumented binaries.

ida_statusA

Check if IDA Pro is connected and get binary info. Always call first.

ida_infoA

Get detailed binary info: path, arch, image base, entry point, size.

ida_functionsA

List functions in the binary. Supports pagination and name filtering.

ida_segmentsA

List all binary segments (.text, .data, .rdata, etc.) with addresses and permissions.

ida_importsA

Get the import table, optionally filtered by DLL name.

ida_exportsA

Get the export table (for DLLs/EXEs with exports).

ida_stringsB

Find all strings in the binary. Useful for IOC extraction.

ida_namesA

List all named addresses (functions, globals, labels) with optional pattern filter.

ida_disassembleA

Disassemble instructions at an address. Use function=true for entire function.

ida_decompileB

Decompile function to pseudocode using Hex-Rays decompiler.

ida_analyze_functionA

Deep function analysis: calls, string refs, xrefs, decompile. Best starting point.

ida_xrefs_toA

Get all cross-references TO an address (who calls/references this).

ida_xrefs_fromA

Get all cross-references FROM an address (what this calls/references).

ida_renameB

Rename a function, label, or global variable at an address.

ida_commentC

Add a comment at an address. Kinds: regular, repeatable, anterior, posterior.

ida_set_typeB

Set the type signature for a function or variable (C declaration syntax).

ida_get_typeB

Get the type signature of a function or variable.

ida_read_bytesA

Read raw bytes at an address and show a hex+ASCII dump.

ida_searchC

Search the binary for a byte pattern or string. kind: bytes|string|unicode

ida_entry_pointsA

List binary entry points (start address + DLL exports if applicable).

ida_structA

Get struct definition from IDA's type library (name, members, offsets, sizes).

ida_make_functionA

Force-create a function at an address (useful for undefined code regions).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DdUdle/ctxdebug'

If you have feedback or need assistance with the MCP directory API, please join our Discord server