io.github.jcucci/dotnet-sherlock-mcp
NUGET · SHERLOCK.MCP.SERVER
.NET assembly introspection MCP server with advanced reflection and type analysis capabilities
Available components
Last scanned (23 hours ago)
Scores higher than 62% of NuGet servers
Category Developer Tools
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 29 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
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 −15
- 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
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 4 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 |
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 →
analyze_assembly Analyze Assembly ~160
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 get_type_info for specific types.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| continuationToken | string|null | – | Continuation token for paging |
| maxItems | integer|null | – | Maximum number of types to return (default: 50) |
| noCache | boolean | – | Bypass cache for this request |
| skip | integer|null | – | Items to skip (paging) |
No output schema declared.
No examples provided.
analyze_method Analyze Method ~151
Gets detailed info about a specific method including all overloads, parameters, attributes, and return types. Use after finding the method via get_type_members or search_members. Lightweight response.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| methodName | string | yes | Name of the method to analyze |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type 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 Analyze Project ~115
Evaluates a project file (.csproj/.vbproj/.fsproj) with the installed .NET SDK's MSBuild, honouring Directory.Build.props, central package management and conditions, and returns target frameworks, package refs, project refs and output paths. Falls back to XML parsing when no SDK is available; evaluation.mode says which was used. Use get_project_output_paths to find compiled assemblies.
| Name | Type | Req | Description |
|---|---|---|---|
| noCache | boolean | – | Bypass cache for this request |
| projectFilePath | string | yes | Path to the project file |
No output schema declared.
No examples provided.
analyze_solution Analyze Solution ~67
Parses a .sln file and lists all contained projects with paths. Use as entry point to discover project structure before analyze_project. Lightweight response.
| Name | Type | Req | Description |
|---|---|---|---|
| noCache | boolean | – | Bypass cache for this request |
| solutionFilePath | string | yes | Path to the .sln file |
No output schema declared.
No examples provided.
analyze_type Analyze Type ~268
Deprecated: use get_type_info for type metadata plus get_type_members with projection='full' for members. Gets type metadata with paginated members (constructors, methods, properties, fields). Returns member totals for pagination planning. Use include* flags to filter member categories.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| continuationToken | string|null | – | Continuation token for paging |
| includeConstructors | boolean | – | Include constructors in results (default: true) |
| includeFields | boolean | – | Include fields in results (default: true) |
| includeMethods | boolean | – | Include methods in results (default: true) |
| includeProperties | boolean | – | Include properties in results (default: true) |
| maxItems | integer|null | – | Maximum number of members to return per category (default: 25) |
| noCache | boolean | – | Bypass cache for this request |
| skip | integer|null | – | Items to skip (paging) |
| typeName | string | yes | Type name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted |
No output schema declared.
No examples provided.
compare_api_surface Compare API Surface ~406
Diffs the public API of two versions of an assembly (left = old, right = new) and flags breaking changes: removed types/members, changed return/parameter types, reduced accessibility, sealed/abstract/static changes, removed base types or interfaces, abstract members added to interfaces or inheritable classes, and more. Each side is an assembly path, an asm_ handle from open_assembly, or a NuGet package as 'Package.Id@1.2.3' resolved from the local NuGet cache (omit the version for the highest cached one). Returns counts plus the breaking changes by default; projection='full' lists every added/removed/changed type and member with left/right signatures and reasons. Use when upgrading a package or reviewing a release for compatibility.
| Name | Type | Req | Description |
|---|---|---|---|
| breakingOnly | boolean | – | With projection='full', list only breaking changes (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| left | string | yes | Old side: assembly path, asm_ handle, or 'Package.Id@version' from the NuGet cache |
| maxItems | integer|null | – | Maximum changes per page (default: 100) |
| namespaceFilter | string|null | – | Only compare types in this namespace or its sub-namespaces (case-insensitive) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): counts plus breaking changes as { change, scope, type, memberKind, member, breaking, signature, reason }. 'full': every change, adding leftSignature,… |
| right | string | yes | New side: assembly path, asm_ handle, or 'Package.Id@version' from the NuGet cache |
| tfm | string|null | – | Target framework for NuGet sides (e.g. 'net8.0'). Default: the best target framework both packages ship |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
decompile_member Decompile Member ~341
Decompiles a single member (method, property, field, event or constructor) to C# source, showing its body - what signature-level tools can't. Returns every overload of the name unless parameterTypes narrows it. Source is paged by line: follow continuationToken while truncated is true. Prefer this over decompile_type.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional dependency assembly paths; their folders are searched when resolving referenced types (added to the handle's) |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token from a previous page |
| includeNonPublic | boolean | – | Include non-public members (default: true) |
| maxLines | integer | – | Maximum source lines per page (default: 400, max: 5000) |
| memberName | string | yes | Member name. Use '.ctor' for instance constructors or '.cctor' for the static constructor. |
| noCache | boolean | – | Bypass cache for this request |
| parameterTypes | string|null | – | Comma-separated parameter types selecting one overload, e.g. 'string,int' or 'System.String,System.Int32'. Empty string selects the parameterless overload. Omit to return every overload. |
| typeName | string | yes | Type that declares the member. Prefer the full name; use Outer+Inner for nested types. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
decompile_type Decompile Type ~228
Decompiles a whole type to C# source. Output can be large, so it is paged by line: follow continuationToken while truncated is true. Prefer decompile_member when you only need one member's body.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional dependency assembly paths; their folders are searched when resolving referenced types (added to the handle's) |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| continuationToken | string|null | – | Continuation token from a previous page |
| maxLines | integer | – | Maximum source lines per page (default: 400, max: 5000) |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type to decompile. Prefer the full name; use Outer+Inner for nested types. |
No output schema declared.
No examples provided.
find_assembly_by_class_name Find Assembly by Class Name ~143
Recursively searches workingDirectory for .dll/.exe files that declare a public type matching className, skipping obj/, ref/, refint/, node_modules/, packages/, TestResults/ and dot-directories. Matches are ranked bin/ first, then newest, then shortest path; returns the best match as foundAssembly plus other candidates. Use when you know the class but not the assembly path.
| Name | Type | Req | Description |
|---|---|---|---|
| className | string | yes | The class name to search for: simple (e.g., 'MyClass'), full ('My.Namespace.MyClass') or nested ('Outer+Inner'). |
| workingDirectory | string | yes | The root directory to start the search from. |
No output schema declared.
No examples provided.
find_assembly_by_file_name Find Assembly by File Name ~132
Recursively searches workingDirectory for an assembly file name, skipping obj/, ref/, refint/, node_modules/, packages/, TestResults/ and dot-directories. Matches are ranked bin/ first, then newest, then shortest path; returns the best match as foundAssembly plus other candidates. Use when you know the assembly name but not its full path.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyFileName | string | yes | The file name of the assembly to search for (e.g., 'MyProject.dll'). Wildcards (*, ?) are allowed. |
| workingDirectory | string | yes | The root directory to start the search from. |
No output schema declared.
No examples provided.
find_assembly_by_nuget_package Find Assembly by NuGet Package ~207
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 the highest version when omitted. When tfm is omitted and the package ships several, clients that support elicitation are asked which one to use; otherwise the best TFM is picked. The response lists availableVersions and availableTfms.
| Name | Type | Req | Description |
|---|---|---|---|
| packageId | string | yes | The NuGet package id (case-insensitive, e.g., 'Newtonsoft.Json'). |
| tfm | string|null | – | Optional target framework moniker (e.g., 'net9.0'). If omitted, the client is asked to choose when several are available, or the best available TFM is picked. |
| version | string|null | – | Optional 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 Find deps.json Dependencies ~75
Parses deps.json from build output to list all runtime dependencies including transitive refs. Useful for understanding full dependency graph.
| Name | Type | Req | Description |
|---|---|---|---|
| configuration | string | – | Build configuration, default 'Debug' |
| noCache | boolean | – | Bypass cache for this request |
| projectFilePath | string | yes | Path to the project file |
No output schema declared.
No examples provided.
find_ef_entities Find EF Entities ~319
Finds Entity Framework Core entities: the DbSet<T> properties (declared or inherited) of every DbContext subclass across one or more assemblies. Entities configured only in OnModelCreating are not listed. Returns a lean summary ({ context, property, entity }) by default; projection='full' adds assemblyPath.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| contextType | string|null | – | Only this DbContext type (simple or full name) |
| continuationToken | string|null | – | Continuation token for paging |
| entityType | string|null | – | Only this entity type (simple or full name) |
| includeNonPublic | boolean | – | Include non-public DbContext types (default: false) |
| maxItems | integer|null | – | Maximum items to return (default: 50) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { context, property, entity }. 'full': adds assemblyPath. |
| skip | integer|null | – | Items to skip (paging) |
No output schema declared.
No examples provided.
find_endpoints Find Endpoints ~403
Finds ASP.NET Core HTTP endpoints across one or more assemblies: MVC/API controller actions (attribute routes combined from [Route]/[Http*] with [controller]/[action] substituted) and minimal APIs (Map{Get,Post,Put,Delete,Patch,Methods,Group,Fallback} calls read from IL). Minimal-API routes and handlers come from string literals and method references next to the call, so routes held in variables or fields are reported as null. Returns a lean summary ({ kind, httpMethods, route, handler }) by default; projection='full' adds assemblyPath, handlerType, handlerMethod and registeredIn.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| continuationToken | string|null | – | Continuation token for paging |
| httpMethod | string|null | – | Only endpoints that accept this HTTP method (e.g. 'GET'); endpoints without an explicit method always match |
| includeNonPublic | boolean | – | Include non-public controllers (default: false). Minimal-API calls are read from every method body regardless. |
| maxItems | integer|null | – | Maximum items to return (default: 50) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { kind, httpMethods, route, handler }. 'full': adds assemblyPath, handlerType, handlerMethod, registeredIn. |
| routeContains | string|null | – | Only endpoints whose route template contains this text (case-insensitive) |
| skip | integer|null | – | Items to skip (paging) |
No output schema declared.
No examples provided.
find_extension_methods_for Find Extension Methods For ~343
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>').
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| includeNonPublic | boolean | – | Include non-public methods and types (default: false) |
| maxItems | integer|null | – | Maximum items to return (default: 50) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { declaringType, methodName, signature }. 'full': adds assemblyPath, extendedType. |
| skip | integer|null | – | Items to skip (paging) |
| typeName | string | yes | Type to find extension methods for. Simple name, full name, or open-generic form accepted (e.g., 'IEnumerable<>'). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
find_handlers Find Handlers ~348
Finds MediatR-style handlers across one or more assemblies: concrete types implementing IRequestHandler<,>/IRequestHandler<>, INotificationHandler<>, IStreamRequestHandler<,> or IPipelineBehavior<,> from the MediatR or Mediator namespaces. Returns a lean summary ({ kind, handler, message, response }) by default; projection='full' adds assemblyPath and interface.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| includeNonPublic | boolean | – | Include non-public handler types (default: false) |
| kind | string|null | – | Only this handler kind: 'request', 'notification', 'stream' or 'behavior' |
| maxItems | integer|null | – | Maximum items to return (default: 50) |
| messageType | string|null | – | Only handlers of this request/notification type (simple or full name) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { kind, handler, message, response }. 'full': adds assemblyPath, interface. |
| skip | integer|null | – | Items to skip (paging) |
No output schema declared.
No examples provided.
find_implementations_of Find Implementations Of ~359
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').
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| includeNonPublic | boolean | – | Include non-public types (default: false) |
| maxItems | integer|null | – | Maximum items to return (default: 50) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { typeFullName, kind }. 'full': adds assemblyPath, matchedInterfaces[], baseTypeChain[]. |
| skip | integer|null | – | Items to skip (paging) |
| typeName | string | yes | Type 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
find_methods_returning Find Methods Returning ~322
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>').
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| includeNonPublic | boolean | – | Include non-public methods and types (default: false) |
| maxItems | integer|null | – | Maximum items to return (default: 50) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { declaringType, methodName, signature }. 'full': adds assemblyPath, returnType, isStatic. |
| skip | integer|null | – | Items to skip (paging) |
| typeName | string | yes | Return type to search for. Simple name, full name, or open-generic form accepted. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
find_references_to Find References To ~406
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.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| analysisDepth | string | – | Analysis depth. 'signatures' (default): type usage in signatures and member declarations. 'il': additionally scan method bodies for inbound callers (referenceKind 'ilCall'/'ilFieldRead'/'ilFieldWrite… |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| includeNonPublic | boolean | – | Include non-public members and types (default: false) |
| maxItems | integer|null | – | Maximum items to return (default: 25) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { declaringType, memberKind, memberName, referenceKind }. 'full': adds assemblyPath, signature, dedupeKey. |
| skip | integer|null | – | Items to skip (paging) |
| typeName | string | yes | Type to search references to. Simple name, full name, or open-generic form accepted. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
find_service_registrations Find Service Registrations ~412
Finds Microsoft.Extensions.DependencyInjection registrations by reading IL for calls to Add{Singleton,Scoped,Transient}, TryAdd*, AddKeyed*, AddHostedService and ServiceDescriptor factories, across one or more assemblies. Service/implementation types come from generic arguments or typeof(...) operands; factory and instance registrations report implementation=null. Every method body is scanned (registrations usually live in non-public Program code). Returns a lean summary ({ lifetime, service, implementation, registeredIn }) by default; projection='full' adds assemblyPath, registrationMethod, registrationKind, isTryAdd and isKeyed.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the primary .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| implementationType | string|null | – | Only registrations with this implementation type (simple or full name) |
| lifetime | string|null | – | Only registrations with this lifetime: 'singleton', 'scoped' or 'transient' |
| maxItems | integer|null | – | Maximum items to return (default: 50) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { lifetime, service, implementation, registeredIn }. 'full': adds assemblyPath, registrationMethod, registrationKind, isTryAdd, isKeyed. |
| serviceType | string|null | – | Only registrations of this service type (simple or full name; open generic accepted, e.g. 'IRepository') |
| skip | integer|null | – | Items to skip (paging) |
No output schema declared.
No examples provided.
get_all_type_members Get All Type Members ~212
Deprecated: use get_type_members with projection='full' (filter with kinds / nameContains). Gets ALL members (methods, properties, fields, events, constructors) in one call. WARNING: Can produce very large responses for complex types.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| includeInstance | boolean | – | Include instance members (default: true) |
| includeNonPublic | boolean | – | Include non-public members (default: false) |
| includePublic | boolean | – | Include public members (default: true) |
| includeStatic | boolean | – | Include static members (default: true) |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type 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 Get Assembly Info ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Detail level: 'summary' (default, lean) or 'full' (adds all assembly attributes) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
get_generic_type_info Get Generic Type Info ~115
Gets generic type parameters, constraints, and variance for generic types. Only useful for types where IsGenericType=true. Lightweight response.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type name to analyze. Prefer full name |
No output schema declared.
No examples provided.
get_member_attributes Get Member Attributes ~179
Gets custom attributes for a specific member (method, property, field, event, constructor). Returns attribute types and values. Use after identifying the member via get_type_members or search_members.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive matching (default: false) |
| memberKind | string | yes | Member kind: method|property|field|event|constructor |
| memberName | string | yes | Member name (for methods, the simple name; first match used) |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type name. Prefer full name |
No output schema declared.
No examples provided.
get_member_source Get Member Source ~397
Returns a member's original source code (with comments and real names) from the assembly's portable PDB: source embedded in the PDB, the local file it was built from, or the Source Link URL (fetched from known source hosts only). Falls back to decompiled C# per overload when no source is available; origin says which (sourcelink, embedded, local, decompiled, or mixed) and note says why a fallback happened. Returns every overload unless parameterTypes narrows it. Paged by line: follow continuationToken while truncated is true. Prefer this over decompile_member.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional dependency assembly paths; their folders are searched when resolving referenced types (added to the handle's) |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token from a previous page |
| includeNonPublic | boolean | – | Include non-public members (default: true) |
| maxLines | integer | – | Maximum source lines per page (default: 400, max: 5000) |
| memberName | string | yes | Member name. Use '.ctor' for instance constructors or '.cctor' for the static constructor. |
| noCache | boolean | – | Bypass cache for this request |
| parameterTypes | string|null | – | Comma-separated parameter types selecting one overload, e.g. 'string,int' or 'System.String,System.Int32'. Empty string selects the parameterless overload. Omit to return every overload. |
| typeName | string | yes | Type that declares the member. Prefer the full name; use Outer+Inner for nested types. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
get_method_calls Get Method Calls ~457
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. format='mermaid' returns a Mermaid flowchart call graph instead, following same-assembly callees transitively up to depth levels (external calls are leaves).
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe) that declares the method. Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type-name matching (default: false) |
| depth | integer | – | Call-graph depth when format='mermaid' (default 1, max 5). Only methods defined in the same assembly are expanded. |
| format | string | – | Output format. 'json' (default): calls and field accesses per projection. 'mermaid': { diagram, nodeCount, edgeCount, truncated, note } where diagram is a Mermaid flowchart of the call graph. |
| includeNonPublic | boolean | – | Include non-public methods and the non-public declaring type (default: false) |
| maxNodes | integer | – | Maximum diagram nodes when format='mermaid' (default 50, max 200) |
| methodName | string | yes | Method name to analyze. Use '.ctor' for instance constructors or '.cctor' for the static constructor. All overloads with this name are aggregated. |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): distinct target names only. 'full': adds { target, kind, sourceMethod } per call and { target, access, sourceMethod } per field access. |
| typeName | string | yes | Type that declares the method. Simple name, full name, or open-generic form accepted. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
get_nested_types Get Nested Types ~113
Gets nested/inner types declared within a type. Use for types with inner classes, structs, or enums. Lightweight response.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type name to analyze. Prefer full name |
No output schema declared.
No examples provided.
get_package_graph Get Package Graph ~413
Reads the restored NuGet graph from obj/project.assets.json: the exact package versions the project compiles against (direct and transitive), for one target framework and optional runtime identifier. Pass projectPath (a project file, its directory, or the assets file) or an assemblyPath/assemblyHandle from the project's bin output. Summary lists { id, version, type, direct, dependencyCount }; projection='full' adds each package's dependency ranges and resolved compile assemblies. Run 'dotnet restore' first if the assets file is missing; resolve_package_references only probes the NuGet cache for declared versions.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Assembly in the project's build output; its project.assets.json is found next to the bin folder. Omit when passing projectPath. |
| continuationToken | string|null | – | Continuation token for paging |
| maxItems | integer|null | – | Maximum packages per page |
| noCache | boolean | – | Bypass cache for this request |
| packageIdContains | string|null | – | Only list packages whose id contains this text (case-insensitive) |
| projectPath | string|null | – | Project file (.csproj/.fsproj/.vbproj), its directory, or a project.assets.json. Omit when passing assemblyPath or assemblyHandle. |
| projection | string | – | Response shape. 'summary' (default, token-lean): { id, version, type, direct, dependencyCount }. 'full': adds dependencies { id: range } and compileAssemblies (resolved paths). |
| runtimeIdentifier | string|null | – | Runtime identifier (e.g. 'linux-x64') when the project restores RID-specific graphs. Default: the RID-less graph |
| targetFramework | string|null | – | Target framework alias (e.g. 'net8.0'). Default: the assembly's target framework, the only one restored, or the client is asked to choose |
No output schema declared.
No examples provided.
get_parameter_attributes Get Parameter Attributes ~158
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive matching (default: false) |
| methodName | string | yes | Method or constructor name |
| noCache | boolean | – | Bypass cache for this request |
| parameterIndex | integer | yes | Parameter index (0-based) |
| typeName | string | yes | Type name. Prefer full name |
No output schema declared.
No examples provided.
get_project_output_paths Get Project Output Paths ~110
Gets compiled assembly output directories for a project by configuration and target framework, evaluated with MSBuild (custom OutputPath, artifacts layout, Directory.Build.props) or parsed from XML when no SDK is available. Use to find DLL paths for assembly analysis tools. Lightweight response.
| Name | Type | Req | Description |
|---|---|---|---|
| configuration | string|null | – | Build configuration (e.g., Debug/Release). Optional |
| noCache | boolean | – | Bypass cache for this request |
| projectFilePath | string | yes | Path to the project file |
No output schema declared.
No examples provided.
get_runtime_options Get Runtime Options ~34
Gets current runtime configuration (default page sizes, cache TTL, search roots). Use to understand current settings before update_runtime_options.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_type_attributes Get Type Attributes ~115
Gets custom attributes declared on a type (e.g., [Serializable], [Obsolete]). Returns attribute types and values. Lightweight response.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type name to analyze. Prefer full name |
No output schema declared.
No examples provided.
get_type_constructors Get Type Constructors ~346
Deprecated: use get_type_members with kinds=constructor. Gets constructors from a type with filtering and pagination. Returns parameter info and access modifiers. Most types have few constructors - use maxItems=30.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| hasAttributeContains | string|null | – | Filter by attribute type contains (optional) |
| includeInstance | boolean | – | Include instance members (default: true) |
| includeNonPublic | boolean | – | Include non-public members (default: false) |
| includePublic | boolean | – | Include public members (default: true) |
| includeStatic | boolean | – | Include static members (default: true) |
| maxItems | integer|null | – | Maximum items to return (overrides take) |
| nameContains | string|null | – | Filter by name contains (optional) |
| noCache | boolean | – | Bypass cache for this request |
| skip | integer|null | – | Items to skip (paging) |
| sortBy | string | – | Sort by: name|access (default: name) |
| sortOrder | string | – | Sort order: asc|desc (default: asc) |
| take | integer|null | – | Items to take (paging) |
| typeName | string | yes | Type 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 Get Type Events ~342
Deprecated: use get_type_members with kinds=event. Gets events from a type with filtering and pagination. Returns event handler types and add/remove accessor info. Most types have few events.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| hasAttributeContains | string|null | – | Filter by attribute type contains (optional) |
| includeInstance | boolean | – | Include instance members (default: true) |
| includeNonPublic | boolean | – | Include non-public members (default: false) |
| includePublic | boolean | – | Include public members (default: true) |
| includeStatic | boolean | – | Include static members (default: true) |
| maxItems | integer|null | – | Maximum items to return (overrides take) |
| nameContains | string|null | – | Filter by name contains (optional) |
| noCache | boolean | – | Bypass cache for this request |
| skip | integer|null | – | Items to skip (paging) |
| sortBy | string | – | Sort by: name|access (default: name) |
| sortOrder | string | – | Sort order: asc|desc (default: asc) |
| take | integer|null | – | Items to take (paging) |
| typeName | string | yes | Type 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 Get Type Fields ~350
Deprecated: use get_type_members with kinds=field. 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+).
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| hasAttributeContains | string|null | – | Filter by attribute type contains (optional) |
| includeInstance | boolean | – | Include instance members (default: true) |
| includeNonPublic | boolean | – | Include non-public members (default: false) |
| includePublic | boolean | – | Include public members (default: true) |
| includeStatic | boolean | – | Include static members (default: true) |
| maxItems | integer|null | – | Maximum items to return (overrides take) |
| nameContains | string|null | – | Filter by name contains (optional) |
| noCache | boolean | – | Bypass cache for this request |
| skip | integer|null | – | Items to skip (paging) |
| sortBy | string | – | Sort by: name|access (default: name) |
| sortOrder | string | – | Sort order: asc|desc (default: asc) |
| take | integer|null | – | Items to take (paging) |
| typeName | string | yes | Type 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 Get Type Hierarchy ~263
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 find_implementations_of. format='mermaid' returns a Mermaid classDiagram instead of JSON fields.
| Name | Type | Req | Description |
|---|---|---|---|
| additionalAssemblies | array|null | – | Optional additional assembly paths to include in the search scope |
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath (it also supplies the additionalAssemblies it was opened with) |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| format | string | – | Output format. 'json' (default): hierarchy fields. 'mermaid': { typeName, diagram, nodeCount, edgeCount, truncated, note } where diagram is a Mermaid classDiagram. |
| maxNodes | integer | – | Maximum diagram nodes when format='mermaid' (default 50, max 200) |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type name to analyze. Prefer full name |
No output schema declared.
No examples provided.
get_type_info Get Type Info ~132
Gets detailed metadata for a single type including accessibility, inheritance, interfaces, and member counts. Lightweight response - use as entry point before exploring members with get_type_members.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| noCache | boolean | – | Bypass cache for this request |
| typeName | string | yes | Type name to analyze. Prefer full name (e.g., 'System.Collections.Generic.List`1') |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
get_type_members Get Type Members ~542
Lists the members of a type - methods, properties, fields, events and constructors - with filtering and pagination. Narrow with kinds (csv: method|property|field|event|constructor), nameContains and hasAttributeContains. Returns a lean summary ({ kind, name, signature }) by default; the C# signature already carries types, parameters and modifiers. Pass projection='full' for structured parameters[], attributes and modifier flags per kind (replaces get_all_type_members / analyze_type). Members are grouped by kind (constructors, properties, fields, events, methods) and sorted within each kind. Use get_type_info for type-level metadata and analyze_method for one method's overloads.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| hasAttributeContains | string|null | – | Filter by attribute type contains (optional) |
| includeInstance | boolean | – | Include instance members (default: true) |
| includeNonPublic | boolean | – | Include non-public members (default: false) |
| includePublic | boolean | – | Include public members (default: true) |
| includeStatic | boolean | – | Include static members (default: true) |
| kinds | string|null | – | Member kinds to include, csv from: method|property|field|event|constructor. Default: all kinds. |
| maxItems | integer|null | – | Maximum items to return (overrides take) |
| nameContains | string|null | – | Filter by name contains (optional; constructors match on signature) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { kind, name, signature } only. 'full': adds the structured fields for each kind (parameters[], attributes, types, modifier booleans) - use only for m… |
| skip | integer|null | – | Items to skip (paging) |
| sortBy | string | – | Sort within each kind by: name|access (default: name) |
| sortOrder | string | – | Sort order: asc|desc (default: asc) |
| take | integer|null | – | Items to take (paging) |
| typeName | string | yes | Type name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
get_type_methods Get Type Methods ~482
Deprecated: use get_type_members with kinds=method. 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 analyze_method for one method. Large types may have 100+ methods - use nameContains filter or maxItems=25 for efficiency.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| hasAttributeContains | string|null | – | Filter by attribute type contains (optional) |
| includeInstance | boolean | – | Include instance members (default: true) |
| includeNonPublic | boolean | – | Include non-public members (default: false) |
| includePublic | boolean | – | Include public members (default: true) |
| includeStatic | boolean | – | Include static members (default: true) |
| maxItems | integer|null | – | Maximum items to return (overrides take) |
| nameContains | string|null | – | Filter by name contains (optional) |
| noCache | boolean | – | Bypass cache for this request |
| projection | string | – | Response shape. 'summary' (default, token-lean): { name, signature } only - the C# signature already carries return type, parameters, and modifiers. 'full': adds parameters[], attributes, returnType,… |
| skip | integer|null | – | Items to skip (paging) |
| sortBy | string | – | Sort by: name|access (default: name) |
| sortOrder | string | – | Sort order: asc|desc (default: asc) |
| take | integer|null | – | Items to take (paging) |
| typeName | string | yes | Type name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| hints | array|null | – | – |
| kind | string | yes | – |
| version | string | yes | – |
No examples provided.
get_type_properties Get Type Properties ~339
Deprecated: use get_type_members with kinds=property. Gets properties from a type with filtering and pagination. Returns getter/setter info, indexers, and access modifiers.
| Name | Type | Req | Description |
|---|---|---|---|
| assemblyHandle | string|null | – | Handle returned by open_assembly; pass instead of assemblyPath |
| assemblyPath | string|null | – | Path to the .NET assembly file (.dll or .exe). Omit when passing assemblyHandle. |
| caseSensitive | boolean | – | Case sensitive type/member matching (default: false) |
| continuationToken | string|null | – | Continuation token for paging |
| hasAttributeContains | string|null | – | Filter by attribute type contains (optional) |
| includeInstance | boolean | – | Include instance members (default: true) |
| includeNonPublic | boolean | – | Include non-public members (default: false) |
| includePublic | boolean | – | Include public members (default: true) |
| includeStatic | boolean | – | Include static members (default: true) |
| maxItems | integer|null | – | Maximum items to return (overrides take) |
| nameContains | string|null | – | Filter by name contains (optional) |
| noCache | boolean | – | Bypass cache for this request |
| skip | integer|null | – | Items to skip (paging) |
| sortBy | string | – | Sort by: name|access (default: name) |
| sortOrder | string | – | Sort order: asc|desc (default: asc) |
| take | integer|null | – | Items to take (paging) |
| typeName | string | yes | Type name to analyze. Prefer full name (e.g., 'System.String'); simple names are also accepted |
No output schema declared.
No examples provided.
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
claude mcp add jcucci-dotnet-sherlock-mcp -- dnx Sherlock.MCP.Server@2.15.0 --yes
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 4 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 4 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.