inspect_assemblyLABSCO SUMMARY
Version-specific answers about .NET APIs, read off the metadata.
The failure this addresses is narrow and familiar: an agent writes a method that does not exist, or exists with a different signature in the version you actually reference, and the build error arrives a minute later. Reading the assembly turns that into a lookup — and the same reader covers packages you have not installed yet, so a dependency can be inspected before it is added.
What it is
A .NET inspection server that answers API questions from the assemblies themselves. It reads public types, members and XML documentation out of a DLL or a NuGet package, so an agent can check a signature before writing the call that would not have compiled.
What you get
- Assembly reading down to the member —
inspect_assemblyfor every public type with its attributes and XML docs,list_namespacesfor the shape,get_type_infofor one type - NuGet exploration without leaving the session:
search_nuget_packages,get_nuget_package_info,get_nuget_package_versions,inspect_nuget_package,inspect_nuget_package_type - Supply-chain and packaging checks —
get_nuget_vulnerabilitiesfor known advisories,inspect_nupkg_contentsandextract_nupkg_filefor what is actually inside the package,list_nuget_sourcesandclear_nuget_cachefor the local feed - Native interop laid out explicitly:
inspect_native_dependenciesfinds DllImport, LibraryImport and COM types in an assembly - Project-level diagnosis —
analyze_csproj,analyze_solution,analyze_config_file,analyze_packages_config,analyze_file_based_app, andexplain_build_errorfor compiler errors get_system_infoandget_dotnet_inforeport the OS, hardware and the .NET installations actually present
Requirements
The .NET 8.0 SDK or later, and nothing else — no account, no key, and no network beyond the NuGet feeds you already use. Published on NuGet as HandMirrorMcp; from source it is git clone, dotnet build, and a client entry that runs dotnet with --project pointed at the HandMirrorMcp directory, or the built executable directly. Assembly inspection runs on Mono.Cecil and package operations on NuGet.Protocol.
Setup effort
Build from source — git clone https://github.com/rkttu/HandMirrorMcp.git
USE CASES
Checking a class before writing code against it
Pull the type out of the package you reference and read its real members, rather than the members a model remembers.
Working out why the compiler is complaining
Get the error explained, then inspect the package to see which methods the type actually exposes in this version.
Vetting a dependency before you add it
List the published versions, check for known vulnerabilities, and look inside the package file itself.
Finding the native surface an assembly depends on
Enumerate the P/Invoke declarations and COM types in the binary before you port or sandbox it.
22 tools
Listed in project docs. Your client may show a different list.
list_namespacesget_type_infosearch_nuget_packagesget_nuget_package_infoget_nuget_package_versionsinspect_nuget_packageinspect_nuget_package_typelist_nuget_sourcesclear_nuget_cacheget_nuget_vulnerabilitiesinspect_nupkg_contentsextract_nupkg_fileinspect_native_dependenciesanalyze_csprojanalyze_solutionexplain_build_erroranalyze_file_based_appanalyze_config_fileanalyze_packages_configget_system_infoget_dotnet_infoBEFORE YOU INSTALL
What to know first
Tools you get
22 tools named in the project's documentation. search_nuget_types, find_package_by_type, inspect_nuget_native_libs and inspect_nuget_native_exports appear in a test playbook but are not tools.
Requires
- .NET 8.0 SDK
- MCP-compatible client (e.g., Claude Desktop, VS Code with Copilot)
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
Build from Source
git clone https://github.com/rkttu/HandMirrorMcp.git
cd HandMirrorMcp
dotnet buildMCP Clients
Claude Desktop
{
"mcpServers": {
"handmirror": {
"command": "dotnet",
"args": [
"run",
"--project",
"<YOUR_PATH_TO_HAND_MIRROR_MCP>"
]
}
}
}VS Code
{
"servers": {
"handmirror": {
"command": "dotnet",
"args": [
"run",
"--project",
"<YOUR_PATH_TO_HAND_MIRROR_MCP>"
]
}
}
}