jcucci avatar

Dotnet Sherlock Mcp

jcucci/dotnet-sherlock-mcp

This server gives Claude deep reflection capabilities over .NET assemblies. It exposes 31+ tools for type introspection, member analysis, and dependency resolution. You can enumerate methods and properties with filtering and pagination, extract XML documentation, trace type hierarchies, find implementations of interfaces, and parse project files and deps.json. It's built for scenarios where you need accurate type information rather than hallucinated API signatures: analyzing unfamiliar codebases, generating code against existing types, or building tooling that needs precise metadata about constructors, generics, and attributes. Runs as a global dotnet tool over stdio and includes smart caching for performance.

GitHub stars
10
tools
32
transport
STDIO
env vars
2
last updated
Oct 5, 2026

Tools

32 tools

Public tool metadata for what this MCP can expose to an agent.

OpenAssemblyReturns a short `asm_…` handle to pass as `assemblyHandle` instead of `assemblyPath` on any tool that takes an assembly.

Returns a short `asm_…` handle to pass as `assemblyHandle` instead of `assemblyPath` on any tool that takes an assembly.

No parameter schema in public metadata yet.

AnalyzeAssemblyComplete assembly overview with public types and metadata

Complete assembly overview with public types and metadata

No parameter schema in public metadata yet.

GetAssemblyInfoAssembly-level metadata — identity/version, target framework, and referenced assemblies (`projection=full` adds all assembly attributes)

Assembly-level metadata — identity/version, target framework, and referenced assemblies (`projection=full` adds all assembly attributes)

No parameter schema in public metadata yet.

FindAssemblyByClassNameLocate assemblies declaring a public type by simple, full or nested name

Locate assemblies declaring a public type by simple, full or nested name

No parameter schema in public metadata yet.

FindAssemblyByFileNameFind assemblies by file name under a root directory, with the same exclusions and ranking

Find assemblies by file name under a root directory, with the same exclusions and ranking

No parameter schema in public metadata yet.

FindAssemblyByNugetPackageResolve a DLL from the local NuGet cache by package id (optional `version`/`tfm`)

Resolve a DLL from the local NuGet cache by package id (optional `version`/`tfm`)

No parameter schema in public metadata yet.

GetTypesFromAssemblyList all public types with metadata (paginated)

List all public types with metadata (paginated)

No parameter schema in public metadata yet.

AnalyzeTypeType metadata plus all members; use `GetTypeInfo` + `GetTypeMembers projection=full`

Type metadata plus all members; use `GetTypeInfo` + `GetTypeMembers projection=full`

No parameter schema in public metadata yet.

GetTypeInfoDetailed type metadata (accessibility, generics, nested types)

Detailed type metadata (accessibility, generics, nested types)

No parameter schema in public metadata yet.

GetTypeHierarchyInheritance chain and interface implementations; `format='mermaid'` returns a Mermaid `classDiagram`

Inheritance chain and interface implementations; `format='mermaid'` returns a Mermaid `classDiagram`

No parameter schema in public metadata yet.

GetGenericTypeInfoGeneric parameters, arguments, and variance information

Generic parameters, arguments, and variance information

No parameter schema in public metadata yet.

GetTypeAttributesCustom attributes declared on types

Custom attributes declared on types

No parameter schema in public metadata yet.

GetNestedTypesNested type declarations

Nested type declarations

No parameter schema in public metadata yet.

GetTypeMembersMethods, properties, fields, events and constructors of a type in one paginated list

Methods, properties, fields, events and constructors of a type in one paginated list

No parameter schema in public metadata yet.

AnalyzeMethodDeep method analysis with overloads and attributes

Deep method analysis with overloads and attributes

No parameter schema in public metadata yet.

GetTypeMethodsDeprecated; use GetTypeMembers with kinds

Deprecated; use GetTypeMembers with kinds

No parameter schema in public metadata yet.

GetTypePropertiesDeprecated; use GetTypeMembers with kinds

Deprecated; use GetTypeMembers with kinds

No parameter schema in public metadata yet.

GetTypeFieldsDeprecated; use GetTypeMembers with kinds

Deprecated; use GetTypeMembers with kinds

No parameter schema in public metadata yet.

GetTypeEventsDeprecated; use GetTypeMembers with kinds

Deprecated; use GetTypeMembers with kinds

No parameter schema in public metadata yet.

GetTypeConstructorsDeprecated; use GetTypeMembers with kinds

Deprecated; use GetTypeMembers with kinds

No parameter schema in public metadata yet.

GetAllTypeMembersDeprecated; use GetTypeMembers projection=full

Deprecated; use GetTypeMembers projection=full

No parameter schema in public metadata yet.

SearchMembersSearch a whole assembly for members whose name contains a fragment

Search a whole assembly for members whose name contains a fragment

No parameter schema in public metadata yet.

FindImplementationsOfTypes implementing an interface or deriving from a base class (open-generic match supported)

Types implementing an interface or deriving from a base class (open-generic match supported)

No parameter schema in public metadata yet.

FindMethodsReturningMethods whose return type matches a given type (open-generic match supported)

Methods whose return type matches a given type (open-generic match supported)

No parameter schema in public metadata yet.

FindExtensionMethodsForExtension methods that extend a given type (scans static classes by `this`-parameter)

Extension methods that extend a given type (scans static classes by `this`-parameter)

No parameter schema in public metadata yet.

FindReferencesToBroader sweep across parameters, fields, properties, events, and generic arguments

Broader sweep across parameters, fields, properties, events, and generic arguments

No parameter schema in public metadata yet.

FindEndpointsASP.NET Core endpoints from controller attribute routes and minimal API map calls

ASP.NET Core endpoints from controller attribute routes and minimal API map calls

No parameter schema in public metadata yet.

FindServiceRegistrationsMicrosoft.Extensions.DependencyInjection registrations read from IL calls

Microsoft.Extensions.DependencyInjection registrations read from IL calls

No parameter schema in public metadata yet.

FindEfEntitiesThe DbSet<T> properties of every DbContext subclass

The DbSet<T> properties of every DbContext subclass

No parameter schema in public metadata yet.

FindHandlersMediatR-style handlers for requests, notifications, streams and pipeline behaviors

MediatR-style handlers for requests, notifications, streams and pipeline behaviors

No parameter schema in public metadata yet.

GetMethodCallsRead a method's IL body to list what it calls and which fields it touches

Read a method's IL body to list what it calls and which fields it touches

No parameter schema in public metadata yet.

CompareApiSurfaceDiff the public API of two versions of an assembly

Diff the public API of two versions of an assembly

No parameter schema in public metadata yet.

Sponsors

Configuration

SHERLOCK_TOOL_PROFILEdefault: full

Tool profile to expose: 'full' (default, every tool) or 'core' (21 essential tools).

SHERLOCK_SOURCE_FETCHdefault: known-hosts

Where get_member_source may fetch Source Link files from: 'known-hosts' (default; GitHub, GitLab, Bitbucket and Azure DevOps), 'any' host, or 'off'.

Readme

Sherlock MCP for .NET

Sherlock MCP for .NET is a comprehensive Model Context Protocol (MCP) server that provides deep introspection capabilities for .NET assemblies. It enables Language Learning Models (LLMs) to analyze and understand your .NET code with precision, delivering accurate and context-aware responses for complex development scenarios.

This tool is essential for developers who want to harness LLM capabilities for:

  • Deep codebase analysis - Understanding complex .NET architectures and dependencies
  • Precise type information - Getting detailed metadata about types, members, and their signatures
  • Automated documentation - Extracting and utilizing XML documentation and attributes
  • Custom tooling - Building sophisticated tools that interact with .NET assemblies
  • Code generation - Creating accurate code based on existing type structures

Key Features


View the full README on GitHub

Details

Repository
github.com/jcucci/dotnet-sherlock-mcp
Category
Reverse Engineering
Package
Sherlock.MCP.Server
Transport
STDIO
Registry
MCP registry, active

Related Reverse Engineering MCP servers

View all
1dakera-ai avatarDakera Mcpdakera-ai/dakera-mcpAgent memory engine — 106 MCP tools, self-hosted, single Rust binary9stars
2new1direction avatarKorg Introspect Mcpnew1direction/korgWrap any korg:introspect@v1-aware binary as a Claude Code tool, honoring declared side-effects.3stars
3vernonstinebaker avatarWebDAV MCPvernonstinebaker/webdav-mcpZero-dependency WebDAV MCP server — single static binary, no Node.js or Python. 8 tools via stdio.3stars
4boska avatarVoxboska/voxNative macOS MCP server for voice I/O — Swift binary, SFSpeechRecognizer + ElevenLabs TTS.1stars
5stryk91 avatarLSP-MCP Bridgestryk91/lsp-mcp-rsUniversal MCP bridge to LSP servers. One binary, 6 languages, config-driven.1stars
6mukundakatta avatarJmespath Mcpmukundakatta/mcp-stackRun JMESPath queries against JSON. Pure JS, no native binary needed.0stars