Skip to main content

Modules

Module tools let you browse loaded assemblies, explore types and their members, and search across the codebase — all without needing source code.

When to Use

Use module tools to understand the structure of the debugged application at the metadata level. These tools work with both running and paused sessions because they only read assembly metadata.

Typical flow: modules_listmodules_search (find types) → types_get (browse a module) → members_get (inspect a type)

Tools

modules_list

List all loaded modules (assemblies) in the debugged process.

Requires: Active session (running or paused)

When to use: See what assemblies are loaded, check if your assembly has debug symbols, or filter to find application assemblies vs. framework assemblies.

Parameters:

NameTypeRequiredDescription
include_systembooleanNoInclude system assemblies like mscorlib (default: true)
name_filterstringNoFilter modules by name pattern (supports * wildcard)

Example:

{
"include_system": false,
"name_filter": "MyApp*"
}

Response:

{
"success": true,
"modules": [
{
"name": "MyApp",
"path": "/app/MyApp.dll",
"version": "1.0.0.0",
"hasSymbols": true,
"isOptimized": false,
"isDynamic": false,
"moduleId": "550e8400-e29b-41d4-a716-446655440000"
},
{
"name": "MyApp.Core",
"path": "/app/MyApp.Core.dll",
"version": "1.0.0.0",
"hasSymbols": true,
"isOptimized": false,
"isDynamic": false,
"moduleId": "550e8400-e29b-41d4-a716-446655440001"
}
],
"count": 2
}

Real-world use case: An AI agent wants to understand what libraries an application uses. It calls modules_list with include_system: false to see only application and third-party assemblies, then checks which ones have debug symbols available.


Search for types and methods across all loaded modules.

Requires: Active session (running or paused)

When to use: Find a type or method by name when you don't know which module it's in. Supports wildcard patterns.

Parameters:

NameTypeRequiredDescription
patternstringYesSearch pattern (supports * wildcard)
search_typestringNotypes, methods, or both (default: both)
module_filterstringNoLimit to specific module (supports * wildcard)
case_sensitivebooleanNoCase-sensitive matching (default: false)
max_resultsintegerNoMax results (max: 100, default: 50)

Example:

{
"pattern": "*Customer*",
"search_type": "both",
"module_filter": "MyApp*",
"max_results": 50
}

Response:

{
"success": true,
"query": "*Customer*",
"types": [
{
"fullName": "MyApp.Models.Customer",
"name": "Customer",
"namespace": "MyApp.Models",
"kind": "class",
"visibility": "public",
"moduleName": "MyApp"
},
{
"fullName": "MyApp.Services.CustomerService",
"name": "CustomerService",
"namespace": "MyApp.Services",
"kind": "class",
"visibility": "public",
"moduleName": "MyApp"
}
],
"methods": [
{
"declaringType": "MyApp.Services.CustomerService",
"moduleName": "MyApp",
"method": {
"name": "GetCustomer",
"signature": "Customer GetCustomer(int id)",
"returnType": "Customer",
"visibility": "public",
"isStatic": false
}
}
],
"totalMatches": 3,
"returnedMatches": 3,
"truncated": false
}

types_get

Get types defined in a module, organized by namespace.

Requires: Active session (running or paused)

When to use: Browse the types in a specific module. Filter by namespace, kind (class/interface/struct/enum), or visibility.

Parameters:

NameTypeRequiredDescription
module_namestringYesModule name to browse
namespace_filterstringNoFilter by namespace pattern (supports * wildcard)
kindstringNoFilter: class, interface, struct, enum, delegate
visibilitystringNoFilter: public, internal, private, protected
max_resultsintegerNoMax types to return (default: 100)
continuation_tokenstringNoToken for pagination

Example:

{
"module_name": "MyApp",
"namespace_filter": "MyApp.Services*",
"kind": "class",
"visibility": "public"
}

Response:

{
"success": true,
"moduleName": "MyApp",
"types": [
{
"fullName": "MyApp.Services.UserService",
"name": "UserService",
"namespace": "MyApp.Services",
"kind": "class",
"visibility": "public",
"isAbstract": false,
"baseType": "System.Object",
"interfaces": ["MyApp.Services.IUserService"],
"moduleName": "MyApp"
}
],
"namespaces": [
{ "name": "MyApp.Services", "typeCount": 2 }
],
"totalTypes": 2,
"hasMore": false
}

members_get

Get members (methods, properties, fields, events) of a type.

Requires: Active session (running or paused)

When to use: Understand the API surface of a type — what methods it has, what properties, whether they're public or private, static or instance.

Parameters:

NameTypeRequiredDescription
type_namestringYesFull type name (e.g., MyApp.Models.Customer)
module_namestringNoModule containing the type (helps resolve ambiguity)
include_inheritedbooleanNoInclude inherited members (default: false)
member_kindsstringNoComma-separated: methods, properties, fields, events
visibilitystringNoFilter: public, internal, private, protected
include_staticbooleanNoInclude static members (default: true)
include_instancebooleanNoInclude instance members (default: true)

Example:

{
"type_name": "MyApp.Models.Customer",
"include_inherited": true,
"member_kinds": "methods,properties",
"visibility": "public"
}

Response:

{
"success": true,
"typeName": "MyApp.Models.Customer",
"methods": [
{
"name": "GetFullName",
"signature": "string GetFullName()",
"returnType": "string",
"parameters": [],
"visibility": "public",
"isStatic": false,
"declaringType": "MyApp.Models.Customer"
},
{
"name": "UpdateEmail",
"signature": "void UpdateEmail(string email)",
"returnType": "void",
"parameters": [
{ "name": "email", "type": "string", "isOptional": false }
],
"visibility": "public",
"isStatic": false,
"declaringType": "MyApp.Models.Customer"
}
],
"properties": [
{
"name": "Id",
"type": "int",
"visibility": "public",
"hasGetter": true,
"hasSetter": true,
"declaringType": "MyApp.Models.Customer"
}
]
}

Real-world use case: An AI agent finds a type via modules_search but doesn't have source code. It uses members_get to list all methods and properties, understanding the type's API before deciding where to set breakpoints.