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

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

0 this week 79 Trust /100

Last scanned (9 minutes ago)

Scores higher than 62% of NuGet servers

Category Developer Tools

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
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Build provenance not yet verified. View diagnostics → Unverified
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 30 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 12704 tokens (~270/item across 47 items; 47 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 Management64
  • Stability check failed: the tool surface changed between 2.14.0 and 2.15.0: 0 tool removals, 27 breaking changes, 10 additions. See how to fix → Fail
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
  • Structured output schemas are declared (32% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 47 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 48 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
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.

  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 61.

  • 14 Oct 26 +39
    • Stability: unverified → fail ▼ security
    • Injection markers: unverified → pass ▲ security
    • Schema quality: 197 → 270 ▼ functional
    • Tool coverage: unverified → 100 ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Package version: 2.14.0 → 2.15.0 functional
  • 12 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 8 Oct 26 −59
    • Stability: pass → unverified ▼ security
    • Malware scan: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 2.14.0 → 2.15.0 functional
  • 4 Oct 26 0
    • Stability: 0.97 → pass security
  • 3 Oct 26 +1

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

  • 2 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 1 Oct 26 67
    • Malware scan: pass → unverified ▼ security
    • Schema quality: 179 → 197 ▼ functional
    • First check of Tool coverage: 30 functional
    • Package version: 2.13.0 → 2.14.0 functional
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 5 Nov 2026 · Analysed nuget/Sherlock.MCP.Server@2.15.0

Provenance Inconclusive

We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.

Result Inconclusive
Ecosystem nuget
Reason Signature present, unverified

Signer

Signed as Repository signature, names nuget.org
Subject CN=NuGet.org Repository by Microsoft,O=NuGet.org Repository by Microsoft,L=Redmond,ST=Washington,C=US
Issuer CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US
Valid from 23 Feb 2024
Valid until 18 May 2027
Service index https://api.nuget.org/v3/index.json
Owners jcucci

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

Registry declarations For information only

What the registry and the package's own manifest say about this version. The publisher or the registry writes these, nothing here is verified, and none of it affects the score.

Repository https://github.com/jcucci/dotnet-sherlock-mcp
Repository type git
Commit 7e441a6a140b4a04868a004c8840b736de75fca8
Project URL https://github.com/jcucci/dotnet-sherlock-mcp
MCP tools · 47 exposed · ~11,911 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
get_types_from_assembly ~351

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 get_type_info for a single type instead. Returns totalTypeCount for pagination planning; use maxItems=25 for very large assemblies.

NameTypeReqDescription
additionalAssembliesarray|null–Optional 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…
assemblyHandlestring|null–Handle returned by open_assembly; pass instead of assemblyPath. The additionalAssemblies it was opened with are used as dependency folders, exactly as if passed here, so resource_link blocks are omit…
assemblyPathstring|null–Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle.
continuationTokenstring|null–Continuation token for paging
maxItemsinteger|null–Maximum number of types to return (default: 50)
noCacheboolean–Bypass cache for this request
projectionstring–Response 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|null–Items to skip (paging)
NameTypeReqDescription
dataobject|nullyes–
hintsarray|null––
kindstringyes–
versionstringyes–

No examples provided.

get_xml_docs_for_member ~155

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
assemblyHandlestring|null–Handle returned by open_assembly; pass instead of assemblyPath
assemblyPathstring|null–Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle.
caseSensitiveboolean–Case sensitive matching (default: false)
memberNamestringyesMember name (simple; if overloaded, first match used)
noCacheboolean–Bypass cache for this request
typeNamestringyesType name. Prefer full name

No output schema declared.

No examples provided.

get_xml_docs_for_type ~134

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

NameTypeReqDescription
assemblyHandlestring|null–Handle returned by open_assembly; pass instead of assemblyPath
assemblyPathstring|null–Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle.
caseSensitiveboolean–Case sensitive matching (default: false)
noCacheboolean–Bypass cache for this request
typeNamestringyesType name. Prefer full name

No output schema declared.

No examples provided.

open_assembly ~128

Opens an assembly and returns a short handle (asm_…) to pass as assemblyHandle instead of assemblyPath on later calls. The handle also carries additionalAssemblies, survives server restarts, and is pinned to the current build: after a rebuild, calls fail with StaleAssemblyHandle until you open it again. Reopening the same build returns the same handle.

NameTypeReqDescription
additionalAssembliesarray|null–Optional additional assembly paths that later calls with this handle should include in their search scope
assemblyPathstringyesPath to the .NET assembly file (.dll or .exe)
NameTypeReqDescription
dataobject|nullyes–
hintsarray|null––
kindstringyes–
versionstringyes–

No examples provided.

resolve_package_references ~108

Resolves NuGet package references to local assembly paths from NuGet cache. Use packageName filter to find specific packages. Returns paths for assembly analysis. Versions come from the MSBuild-evaluated project, including central package management. Probes the cache for declared versions only; use get_package_graph for the exact restored (including transitive) versions.

NameTypeReqDescription
packageNamestring|null–Optional package name to filter
projectFilePathstringyesPath to the project file

No output schema declared.

No examples provided.

search_members ~290

Searches an assembly for members whose name contains a fragment, without needing to know the declaring type first. Answers the inverse of get_type_members (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
assemblyHandlestring|null–Handle returned by open_assembly; pass instead of assemblyPath
assemblyPathstring|null–Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle.
caseSensitiveboolean–Case sensitive name matching (default: false)
continuationTokenstring|null–Continuation token for paging
includeNonPublicboolean–Include non-public members and types (default: false)
maxItemsinteger|null–Maximum items to return (default: 50)
memberKindsstring|null–Member 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.
noCacheboolean–Bypass cache for this request
skipinteger|null–Items to skip (paging)
NameTypeReqDescription
dataobject|nullyes–
hintsarray|null––
kindstringyes–
versionstringyes–

No examples provided.

update_runtime_options ~303

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

NameTypeReqDescription
addSearchRootsarray|null–Add search roots (absolute paths)
addSourceFetchHostsarray|null–Add hosts get_member_source may fetch Source Link files from, e.g. 'git.example.com' or '*.example.com'
cacheTtlSecondsinteger|null–Cache TTL in seconds
defaultMaxItemsinteger|null–Default page size (maxItems)
includeNonPublicByDefaultboolean|null–Include non-public members by default
maxAssemblyHandlesinteger|null–Maximum assembly handles kept in the on-disk handle registry
maxCachedResponsesinteger|null–Maximum cached tool responses kept in memory
maxLoadedAssembliesinteger|null–Maximum assemblies kept loaded in the inspection cache
projectEvaluationstring|null–Project analysis: 'auto' (evaluate with the installed .NET SDK's MSBuild, falling back to XML parsing) or 'off' (XML parsing only)
removeSearchRootsarray|null–Remove search roots (absolute paths)
removeSourceFetchHostsarray|null–Remove hosts from sourceFetchHosts
sourceFetchstring|null–Source Link fetching for get_member_source: 'off', 'known-hosts' (only sourceFetchHosts) or 'any'

No output schema declared.

No examples provided.

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.15.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.15.0 --yes
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 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 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 47 tools: analyze_assembly, analyze_method, analyze_project, analyze_solution, analyze_type, and 42 more. Their descriptions and schemas cost roughly 11,911 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 5 November 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.