Labsco
MCP SERVER

Dotnet Sherlock MCP

by jcucci

Reflect over .NET assemblies from an assistant — 36 tools for types, members, XML docs, inheritance, reverse lookups and IL-level call analysis.

Code Intelligence & Repository Indexing
Summary
35 of the 36 tools only read metadata, and they say so in the annotations.

Every tool advertises a title plus `readOnlyHint`, `destructiveHint`, `openWorldHint` and `idempotentHint`, so a client can see at a glance what it is dealing with instead of guessing. `tools/list` is cacheable with an advertised TTL and a deterministic order, which matters when you are carrying 36 tool definitions. It speaks protocol revision 2026-07-28 and negotiates down for older clients.

What it is

An MCP server that introspects compiled .NET assemblies so a model can answer questions about your code from metadata rather than guesswork: exact signatures, real inheritance chains, the attributes actually applied, and what a method calls at the IL level.

What you get
  • Assemblies found and analysed — `AnalyzeAssembly`, `GetAssemblyInfo`, `FindAssemblyByClassName`, `FindAssemblyByFileName`, `FindAssemblyByNugetPackage` which resolves a DLL from the local NuGet cache by package id
  • Type introspection — `GetTypesFromAssembly`, `AnalyzeType`, `GetTypeInfo`, `GetTypeHierarchy`, `GetGenericTypeInfo`, `GetTypeAttributes`, `GetNestedTypes`
  • Members filtered and paginated — `GetAllTypeMembers`, `GetTypeMethods`, `GetTypeProperties`, `GetTypeFields`, `GetTypeEvents`, `GetTypeConstructors`, `AnalyzeMethod`
  • A member searched by name fragment across a whole assembly when you do not know its declaring type — `SearchMembers`, filterable by `memberKinds`
  • Reverse lookups — `FindImplementationsOf`, `FindMethodsReturning`, `FindExtensionMethodsFor`, `FindReferencesTo`, with open-generic matching supported
  • IL analysis — `GetMethodCalls` reads a method's body to list what it calls and which fields it touches, the question signature-level tools cannot answer
  • XML documentation extracted for types and members — `GetXmlDocsForType`, `GetXmlDocsForMember`; solutions and projects parsed — `AnalyzeSolution`, `AnalyzeProject`, `GetProjectOutputPaths`
  • Tool names in `snake_case` for clients — `GetTypeMethods` is called as `get_type_methods`
Requirements

Install the global tool with `dotnet tool install -g Sherlock.MCP.Server`, which adds `sherlock-mcp` to your PATH, then point the client at the `sherlock-mcp` command over stdio — no arguments needed, the server self-registers its tools. Version 2.13.0. During development you can run it from source with `dotnet run --project src/server/Sherlock.MCP.Server.csproj`.

Setup effort

One command — dotnet tool install -g Sherlock.MCP.Server