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.

io.github.jcucci/dotnet-sherlock-mcp

NUGET · SHERLOCK.MCP.SERVER · SCANNED SEP 20

.NET assembly introspection MCP server with advanced reflection and type analysis capabilities

−1 this week 83 Trust /100
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 Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability71
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6461 tokens (~179/item across 36 items; 36 tools + 0 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 Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 36 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 37 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
Install

How do I install the io.github.jcucci/dotnet-sherlock-mcp server?

io.github.jcucci/dotnet-sherlock-mcp runs locally as a NuGet package, launched with dnx Sherlock.MCP.Server@2.13.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 · Sherlock.MCP.Server

# add to Claude Code
claude mcp add jcucci-dotnet-sherlock-mcp -- dnx Sherlock.MCP.Server@2.13.0 --yes
// .cursor/mcp.json
{
  "mcpServers": {
    "jcucci-dotnet-sherlock-mcp": {
      "command": "dnx",
      "args": [
        "Sherlock.MCP.Server@2.13.0",
        "--yes"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "jcucci-dotnet-sherlock-mcp": {
      "command": "dnx",
      "args": [
        "Sherlock.MCP.Server@2.13.0",
        "--yes"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add jcucci-dotnet-sherlock-mcp -- dnx Sherlock.MCP.Server@2.13.0 --yes
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jcucci-dotnet-sherlock-mcp": {
      "type": "local",
      "command": [
        "dnx",
        "Sherlock.MCP.Server@2.13.0",
        "--yes"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  jcucci-dotnet-sherlock-mcp:
    command: "dnx"
    args: ["Sherlock.MCP.Server@2.13.0", "--yes"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "jcucci-dotnet-sherlock-mcp": {
      "Transport": "stdio",
      "Command": "dnx",
      "Arguments": [
        "Sherlock.MCP.Server@2.13.0",
        "--yes"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "jcucci-dotnet-sherlock-mcp": {
      "command": "dnx",
      "args": [
        "Sherlock.MCP.Server@2.13.0",
        "--yes"
      ]
    }
  }
}
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.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 −3
    • Stability: pass → 0.77 functional
  • 13 Sept 26 +1
    • Stability: 0.97 → pass security
  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 7 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 6 Sept 26 +1
    • Stability: 0.97 → pass security
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 20 Sept 2026 · Analysed nuget/Sherlock.MCP.Server@2.13.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem nuget
Reason Signature present, unreadable

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 · 36 exposed · ~6,197 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
analyze_assembly ~117

Lists all public types in an assembly with metadata summary. Returns totalTypeCount for pagination planning. Use maxItems=25 for large assemblies (100+ types). Follow with GetTypeInfo for specific types.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
continuationTokenstring|nullContinuation token for paging
maxItemsinteger|nullMaximum number of types to return (default: 50)
skipinteger|nullItems to skip (paging)

No output schema declared.

No examples provided.

analyze_method ~104

Gets detailed info about a specific method including all overloads, parameters, attributes, and return types. Use after finding method via GetTypeMethods. Lightweight response.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
methodNamestringyesName of the method to analyze
typeNamestringyesType name containing the method. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

analyze_project ~60

Parses a project file (.csproj/.vbproj/.fsproj) returning target framework, package refs, project refs, and output paths. Use GetProjectOutputPaths to find compiled assemblies.

NameTypeReqDescription
projectFilePathstringyesPath to the project file

No output schema declared.

No examples provided.

analyze_solution ~53

Parses a .sln file and lists all contained projects with paths. Use as entry point to discover project structure before AnalyzeProject. Lightweight response.

NameTypeReqDescription
solutionFilePathstringyesPath to the .sln file

No output schema declared.

No examples provided.

analyze_type ~214

Gets type metadata with paginated members (constructors, methods, properties, fields). Returns member totals for pagination planning. Use include* flags to filter member categories. Consider GetTypeMethods etc. for targeted queries.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
continuationTokenstring|nullContinuation token for paging
includeConstructorsbooleanInclude constructors in results (default: true)
includeFieldsbooleanInclude fields in results (default: true)
includeMethodsbooleanInclude methods in results (default: true)
includePropertiesbooleanInclude properties in results (default: true)
maxItemsinteger|nullMaximum number of members to return per category (default: 25)
skipinteger|nullItems to skip (paging)
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

find_assembly_by_class_name ~88

Finds assembly path by searching for a class name in bin/Debug, bin/Release folders. Use when you know the class but not the assembly path. Returns path for use with other tools.

NameTypeReqDescription
classNamestringyesThe class name to search for (e.g., 'MyClass').
workingDirectorystringyesThe root directory to start the search from.

No output schema declared.

No examples provided.

find_assembly_by_file_name ~82

Finds assembly path by DLL filename search. Use when you know the assembly name but not full path. Returns path for use with other tools.

NameTypeReqDescription
assemblyFileNamestringyesThe file name of the assembly to search for (e.g., 'MyProject.dll').
workingDirectorystringyesThe root directory to start the search from.

No output schema declared.

No examples provided.

find_assembly_by_nuget_package ~157

Finds an assembly in the local NuGet cache by package id. Probes ~/.nuget/packages (or NUGET_PACKAGES env var). Use when you know the package id/version but not the DLL path. Picks highest version and best TFM when omitted.

NameTypeReqDescription
packageIdstringyesThe NuGet package id (case-insensitive, e.g., 'Newtonsoft.Json').
tfmstring|nullOptional target framework moniker (e.g., 'net9.0'). If omitted, the best available TFM is picked.
versionstring|nullOptional package version (e.g., '13.0.3'). If omitted, the highest available version is picked.

No output schema declared.

No examples provided.

find_deps_json_dependencies ~61

Parses deps.json from build output to list all runtime dependencies including transitive refs. Useful for understanding full dependency graph.

NameTypeReqDescription
configurationstringBuild configuration, default 'Debug'
projectFilePathstringyesPath to the project file

No output schema declared.

No examples provided.

find_extension_methods_for ~302

Finds extension methods that extend the given type, across one or more assemblies. Scans static classes for methods whose first ('this') parameter matches the target type. Returns a lean summary ({ declaringType, methodName, signature }) by default. Pass projection='full' for assemblyPath and extendedType. Open-generic match supported (e.g., 'IEnumerable<>' matches extensions on 'IEnumerable<T>').

NameTypeReqDescription
additionalAssembliesarray|nullOptional additional assembly paths to include in the search scope
assemblyPathstringyesPath to the primary .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type-name matching (default: false)
continuationTokenstring|nullContinuation token for paging
includeNonPublicbooleanInclude non-public methods and types (default: false)
maxItemsinteger|nullMaximum items to return (default: 50)
noCachebooleanBypass cache for this request
projectionstringResponse shape. 'summary' (default, token-lean): { declaringType, methodName, signature }. 'full': adds assemblyPath, extendedType.
skipinteger|nullItems to skip (paging)
typeNamestringyesType to find extension methods for. Simple name, full name, or open-generic form accepted (e.g., 'IEnumerable<>').

No output schema declared.

No examples provided.

find_implementations_of ~318

Finds types that implement an interface or derive from a base type, across one or more assemblies. Returns a lean summary ({ typeFullName, kind }) by default. Pass projection='full' for matchedInterfaces[] and baseTypeChain[]. Matches by simple name, full name, or open-generic form (e.g., 'IEnumerable', 'IEnumerable<T>', 'IEnumerable<>', 'IEnumerable`1').

NameTypeReqDescription
additionalAssembliesarray|nullOptional additional assembly paths to include in the search scope
assemblyPathstringyesPath to the primary .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type-name matching (default: false)
continuationTokenstring|nullContinuation token for paging
includeNonPublicbooleanInclude non-public types (default: false)
maxItemsinteger|nullMaximum items to return (default: 50)
noCachebooleanBypass cache for this request
projectionstringResponse shape. 'summary' (default, token-lean): { typeFullName, kind }. 'full': adds assemblyPath, matchedInterfaces[], baseTypeChain[].
skipinteger|nullItems to skip (paging)
typeNamestringyesType name to find implementers of. Interface name (e.g., 'IDisposable') or base class name (e.g., 'Stream'). Simple name, full name, or generic variants accepted.

No output schema declared.

No examples provided.

find_methods_returning ~281

Finds methods whose return type matches the given type, across one or more assemblies. Returns a lean summary ({ declaringType, methodName, signature }) by default. Pass projection='full' for assemblyPath, returnType, isStatic. Open-generic match supported (e.g., 'Snapshot<>' matches methods returning 'Snapshot<int>').

NameTypeReqDescription
additionalAssembliesarray|nullOptional additional assembly paths to include in the search scope
assemblyPathstringyesPath to the primary .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type-name matching (default: false)
continuationTokenstring|nullContinuation token for paging
includeNonPublicbooleanInclude non-public methods and types (default: false)
maxItemsinteger|nullMaximum items to return (default: 50)
noCachebooleanBypass cache for this request
projectionstringResponse shape. 'summary' (default, token-lean): { declaringType, methodName, signature }. 'full': adds assemblyPath, returnType, isStatic.
skipinteger|nullItems to skip (paging)
typeNamestringyesReturn type to search for. Simple name, full name, or open-generic form accepted.

No output schema declared.

No examples provided.

find_references_to ~365

Finds all references to a type across one or more assemblies: base types, implemented interfaces, method returns/parameters, field/property/event types (recurses into generic arguments). With analysisDepth='il', also scans method bodies for inbound callers ('who calls into this type?'). Bounded sweep with hardCap to protect against runaway scans; check truncated=true. Returns lean summary by default; projection='full' adds assemblyPath, signature, dedupeKey.

NameTypeReqDescription
additionalAssembliesarray|nullOptional additional assembly paths to include in the search scope
analysisDepthstringAnalysis depth. 'signatures' (default): type usage in signatures and member declarations. 'il': additionally scan method bodies for inbound callers (referenceKind 'ilCall'/'ilFieldRead'/'ilFieldWrite…
assemblyPathstringyesPath to the primary .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type-name matching (default: false)
continuationTokenstring|nullContinuation token for paging
includeNonPublicbooleanInclude non-public members and types (default: false)
maxItemsinteger|nullMaximum items to return (default: 25)
noCachebooleanBypass cache for this request
projectionstringResponse shape. 'summary' (default, token-lean): { declaringType, memberKind, memberName, referenceKind }. 'full': adds assemblyPath, signature, dedupeKey.
skipinteger|nullItems to skip (paging)
typeNamestringyesType to search references to. Simple name, full name, or open-generic form accepted.

No output schema declared.

No examples provided.

get_all_type_members ~185

Gets ALL members (methods, properties, fields, events, constructors) in one call. WARNING: Can produce very large responses for complex types. Consider using specific member tools (GetTypeMethods, GetTypeProperties) with filtering first for better efficiency.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
includeInstancebooleanInclude instance members (default: true)
includeNonPublicbooleanInclude non-public members (default: false)
includePublicbooleanInclude public members (default: true)
includeStaticbooleanInclude static members (default: true)
noCachebooleanBypass cache for this request
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

get_assembly_info ~95

Gets assembly-level metadata: identity/version, target framework, and referenced assemblies. Lightweight orientation tool — call before deep type analysis. Use projection='full' for all assembly-level attributes structurally.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
projectionstringDetail level: 'summary' (default, lean) or 'full' (adds all assembly attributes)

No output schema declared.

No examples provided.

get_generic_type_info ~72

Gets generic type parameters, constraints, and variance for generic types. Only useful for types where IsGenericType=true. Lightweight response.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
typeNamestringyesType name to analyze. Prefer full name

No output schema declared.

No examples provided.

get_member_attributes ~136

Gets custom attributes for a specific member (method, property, field, event, constructor). Returns attribute types and values. Use after identifying the member via GetTypeMethods or similar tools.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive matching (default: false)
memberKindstringyesMember kind: method|property|field|event|constructor
memberNamestringyesMember name (for methods, the simple name; first match used)
typeNamestringyesType name. Prefer full name

No output schema declared.

No examples provided.

get_method_calls ~285

Analyzes a method's IL body to list what it calls and which fields it touches (the 'what does this method call?' question that signature-level tools can't answer). Aggregates across all overloads of the method name. Returns a lean summary by default (distinct target names); projection='full' adds per-call kind (call/callvirt/newobj/ldftn) and the source overload signature.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe) that declares the method
caseSensitivebooleanCase sensitive type-name matching (default: false)
includeNonPublicbooleanInclude non-public methods and the non-public declaring type (default: false)
methodNamestringyesMethod name to analyze. Use '.ctor' for instance constructors or '.cctor' for the static constructor. All overloads with this name are aggregated.
noCachebooleanBypass cache for this request
projectionstringResponse shape. 'summary' (default, token-lean): distinct target names only. 'full': adds { target, kind, sourceMethod } per call and { target, access, sourceMethod } per field access.
typeNamestringyesType that declares the method. Simple name, full name, or open-generic form accepted.

No output schema declared.

No examples provided.

get_nested_types ~70

Gets nested/inner types declared within a type. Use for types with inner classes, structs, or enums. Lightweight response.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
typeNamestringyesType name to analyze. Prefer full name

No output schema declared.

No examples provided.

get_parameter_attributes ~115

Gets custom attributes for a specific parameter of a method or constructor. Use when you need to inspect parameter-level attributes like [FromBody], [Required], etc.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive matching (default: false)
methodNamestringyesMethod or constructor name
parameterIndexintegeryesParameter index (0-based)
typeNamestringyesType name. Prefer full name

No output schema declared.

No examples provided.

get_project_output_paths ~67

Gets compiled assembly output paths for a project by configuration. Use to find DLL paths for assembly analysis tools. Lightweight response.

NameTypeReqDescription
configurationstring|nullBuild configuration (e.g., Debug/Release). Optional
projectFilePathstringyesPath to the project file

No output schema declared.

No examples provided.

get_runtime_options ~34

Gets current runtime configuration (default page sizes, cache TTL, search roots). Use to understand current settings before UpdateRuntimeOptions.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_type_attributes ~72

Gets custom attributes declared on a type (e.g., [Serializable], [Obsolete]). Returns attribute types and values. Lightweight response.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
typeNamestringyesType name to analyze. Prefer full name

No output schema declared.

No examples provided.

get_type_constructors ~306

Gets constructors from a type with filtering and pagination. Returns parameter info and access modifiers. Most types have few constructors - use maxItems=30.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type/member matching (default: false)
continuationTokenstring|nullContinuation token for paging
hasAttributeContainsstring|nullFilter by attribute type contains (optional)
includeInstancebooleanInclude instance members (default: true)
includeNonPublicbooleanInclude non-public members (default: false)
includePublicbooleanInclude public members (default: true)
includeStaticbooleanInclude static members (default: true)
maxItemsinteger|nullMaximum items to return (overrides take)
nameContainsstring|nullFilter by name contains (optional)
noCachebooleanBypass cache for this request
skipinteger|nullItems to skip (paging)
sortBystringSort by: name|access (default: name)
sortOrderstringSort order: asc|desc (default: asc)
takeinteger|nullItems to take (paging)
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

get_type_events ~302

Gets events from a type with filtering and pagination. Returns event handler types and add/remove accessor info. Most types have few events.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type/member matching (default: false)
continuationTokenstring|nullContinuation token for paging
hasAttributeContainsstring|nullFilter by attribute type contains (optional)
includeInstancebooleanInclude instance members (default: true)
includeNonPublicbooleanInclude non-public members (default: false)
includePublicbooleanInclude public members (default: true)
includeStaticbooleanInclude static members (default: true)
maxItemsinteger|nullMaximum items to return (overrides take)
nameContainsstring|nullFilter by name contains (optional)
noCachebooleanBypass cache for this request
skipinteger|nullItems to skip (paging)
sortBystringSort by: name|access (default: name)
sortOrderstringSort order: asc|desc (default: asc)
takeinteger|nullItems to take (paging)
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

get_type_fields ~310

Gets fields from a type with filtering and pagination. Returns const/readonly/volatile info and constant values. Fields are compact - can use larger maxItems (75+).

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type/member matching (default: false)
continuationTokenstring|nullContinuation token for paging
hasAttributeContainsstring|nullFilter by attribute type contains (optional)
includeInstancebooleanInclude instance members (default: true)
includeNonPublicbooleanInclude non-public members (default: false)
includePublicbooleanInclude public members (default: true)
includeStaticbooleanInclude static members (default: true)
maxItemsinteger|nullMaximum items to return (overrides take)
nameContainsstring|nullFilter by name contains (optional)
noCachebooleanBypass cache for this request
skipinteger|nullItems to skip (paging)
sortBystringSort by: name|access (default: name)
sortOrderstringSort order: asc|desc (default: asc)
takeinteger|nullItems to take (paging)
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

get_type_hierarchy ~121

Gets full inheritance chain and implemented interfaces for a type. Use to understand type relationships and find inherited members. Lightweight response. By default derivedTypes is null with a note - pass additionalAssemblies to compute derived/implementing types via the same scan as FindImplementationsOf.

NameTypeReqDescription
additionalAssembliesarray|nullOptional additional assembly paths to include in the search scope
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
typeNamestringyesType name to analyze. Prefer full name

No output schema declared.

No examples provided.

get_type_info ~90

Gets detailed metadata for a single type including accessibility, inheritance, interfaces, and member counts. Lightweight response - use as entry point before exploring members with GetTypeMethods etc.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.Collections.Generic.List`1')

No output schema declared.

No examples provided.

get_type_methods ~442

Gets methods from a type with filtering and pagination. Returns a lean summary ({ name, signature }) by default - the signature already encodes return type, parameters, and modifiers in C# form. Pass projection='full' when you need structured fields (parameters[], attributes, returnType, isStatic/Virtual/Abstract/..., genericTypeParameters); prefer AnalyzeMethod for one method. Large types may have 100+ methods - use nameContains filter or maxItems=25 for efficiency.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type/member matching (default: false)
continuationTokenstring|nullContinuation token for paging
hasAttributeContainsstring|nullFilter by attribute type contains (optional)
includeInstancebooleanInclude instance members (default: true)
includeNonPublicbooleanInclude non-public members (default: false)
includePublicbooleanInclude public members (default: true)
includeStaticbooleanInclude static members (default: true)
maxItemsinteger|nullMaximum items to return (overrides take)
nameContainsstring|nullFilter by name contains (optional)
noCachebooleanBypass cache for this request
projectionstringResponse shape. 'summary' (default, token-lean): { name, signature } only - the C# signature already carries return type, parameters, and modifiers. 'full': adds parameters[], attributes, returnType,…
skipinteger|nullItems to skip (paging)
sortBystringSort by: name|access (default: name)
sortOrderstringSort order: asc|desc (default: asc)
takeinteger|nullItems to take (paging)
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

get_type_properties ~310

Gets properties from a type with filtering and pagination. Returns getter/setter info, indexers, and access modifiers. Prefer over GetAllTypeMembers when only properties needed.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive type/member matching (default: false)
continuationTokenstring|nullContinuation token for paging
hasAttributeContainsstring|nullFilter by attribute type contains (optional)
includeInstancebooleanInclude instance members (default: true)
includeNonPublicbooleanInclude non-public members (default: false)
includePublicbooleanInclude public members (default: true)
includeStaticbooleanInclude static members (default: true)
maxItemsinteger|nullMaximum items to return (overrides take)
nameContainsstring|nullFilter by name contains (optional)
noCachebooleanBypass cache for this request
skipinteger|nullItems to skip (paging)
sortBystringSort by: name|access (default: name)
sortOrderstringSort order: asc|desc (default: asc)
takeinteger|nullItems to take (paging)
typeNamestringyesType name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted

No output schema declared.

No examples provided.

get_types_from_assembly ~281

Lists public types from an assembly. Returns a lean summary ({ FullName, Namespace, Kind }) by default - use this to browse or search large assemblies. Pass projection='full' when you need attributes, inheritance, interfaces, generic params, and nested types; prefer GetTypeInfo for a single type instead. Returns totalTypeCount for pagination planning; use maxItems=25 for very large assemblies.

NameTypeReqDescription
additionalAssembliesarray|nullOptional paths to dependency assemblies (.dll) to help resolve types. Only needed when types fail to resolve and the assembly's dependencies are not next to it or in the NuGet cache - e.g. point at s…
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
continuationTokenstring|nullContinuation token for paging
maxItemsinteger|nullMaximum number of types to return (default: 50)
projectionstringResponse shape. 'summary' (default, token-lean): { FullName, Namespace, Kind } only - use for browsing/searching. 'full': adds attributes, base type, interfaces, generic params, nested types - use on…
skipinteger|nullItems to skip (paging)

No output schema declared.

No examples provided.

get_xml_docs_for_member ~112

Gets XML documentation (summary, params, returns, exceptions) for a member from adjacent .xml file. Requires XML docs to be generated during build. Lightweight response.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive matching (default: false)
memberNamestringyesMember name (simple; if overloaded, first match used)
typeNamestringyesType name. Prefer full name

No output schema declared.

No examples provided.

get_xml_docs_for_type ~91

Gets XML documentation (summary, remarks, examples) for a type from adjacent .xml file. Requires XML docs to be generated during build. Lightweight response.

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive matching (default: false)
typeNamestringyesType name. Prefer full name

No output schema declared.

No examples provided.

resolve_package_references ~68

Resolves NuGet package references to local assembly paths from NuGet cache. Use packageName filter to find specific packages. Returns paths for assembly analysis.

NameTypeReqDescription
packageNamestring|nullOptional package name to filter
projectFilePathstringyesPath to the project file

No output schema declared.

No examples provided.

search_members ~263

Searches an assembly for members whose name contains a fragment, without needing to know the declaring type first. Answers the inverse of GetTypeMethods/Properties (e.g., 'where is ParseConnectionString defined?'). Each hit is { declaringType, memberKind, name, signature }; the searched assemblyPath is echoed once at the top level. Filter by memberKinds (csv: method|property|field|event|type).

NameTypeReqDescription
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
caseSensitivebooleanCase sensitive name matching (default: false)
continuationTokenstring|nullContinuation token for paging
includeNonPublicbooleanInclude non-public members and types (default: false)
maxItemsinteger|nullMaximum items to return (default: 50)
memberKindsstring|nullMember kinds to include, csv from: method|property|field|event|type. Default: all kinds.
nameContainsstringyesSubstring to match against member names (required). Case-insensitive unless caseSensitive=true.
noCachebooleanBypass cache for this request
skipinteger|nullItems to skip (paging)

No output schema declared.

No examples provided.

update_runtime_options ~168

Updates runtime configuration. Reduce defaultMaxItems for smaller responses, increase cacheTtlSeconds for better performance. Omit fields to keep current values.

NameTypeReqDescription
addSearchRootsarray|nullAdd search roots (absolute paths)
cacheTtlSecondsinteger|nullCache TTL in seconds
defaultMaxItemsinteger|nullDefault page size (maxItems)
enableStreamingboolean|nullEnable server-side streaming
includeNonPublicByDefaultboolean|nullInclude non-public members by default
maxCachedResponsesinteger|nullMaximum cached tool responses kept in memory
maxLoadedAssembliesinteger|nullMaximum assemblies kept loaded in the inspection cache
removeSearchRootsarray|nullRemove search roots (absolute paths)

No output schema declared.

No examples provided.

Common questions

What is the io.github.jcucci/dotnet-sherlock-mcp server?

io.github.jcucci/dotnet-sherlock-mcp is listed in the public MCP registry as io.github.jcucci/dotnet-sherlock-mcp. .NET assembly introspection MCP server with advanced reflection and type analysis capabilities. This page covers its NuGet package (Sherlock.MCP.Server).

Is the io.github.jcucci/dotnet-sherlock-mcp server safe to use?

io.github.jcucci/dotnet-sherlock-mcp scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. 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 io.github.jcucci/dotnet-sherlock-mcp server expose?

io.github.jcucci/dotnet-sherlock-mcp exposes 36 tools: analyze_assembly, analyze_method, analyze_project, analyze_solution, analyze_type, and 31 more. Their descriptions and schemas cost roughly 6,197 tokens of context every time the server is loaded.

Is the io.github.jcucci/dotnet-sherlock-mcp server still maintained?

io.github.jcucci/dotnet-sherlock-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 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 io.github.jcucci/dotnet-sherlock-mcp server under?

io.github.jcucci/dotnet-sherlock-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.