Token导航 LogoToken导航TokenDH.com
Dotnet Sherlock MCP logo
开发工具未说明官方级别未说明来源级核验

Dotnet Sherlock MCP

MCP Server

Sherlock MCP for .NET是一个全面的模型上下文协议(MCP)服务器,为.NET程序集提供深度内省功能,使语言学习模型(LLM)能够精确分析和理解.NET代码。

工具数

31

提示词数

0

GitHub Stars

4

资源数

0
代码分析.NET开发C#Claude代码生成Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jcucci

提供方

jcucci

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

夏洛克MCP。网

夏洛克MCP。网 是一个全面的模型上下文协议(MCP)服务器,为提供深度自检功能。NET程序集。它使语言学习模型(LLMs)能够分析和理解您的语言。NET代码,为复杂的开发场景提供准确和上下文感知的响应。

对于希望利用LLM功能进行以下操作的开发人员来说,此工具至关重要:

  • 深度代码库分析 -理解复杂。NET体系结构和依赖关系
  • 精确的类型信息 -获取有关类型、成员及其签名的详细元数据
  • 自动化文档 -提取和利用XML文档和属性
  • 定制工具 -构建与交互的复杂工具。NET程序集
  • 代码生成 -基于现有类型结构创建准确的代码

主要特点

  • 综合MCP服务器:为提供31多种专用工具。NET程序集分析
  • 高级装配自检:基于深度反思的类型、成员和元数据分析
  • 富会员分析:方法、属性、字段、事件和构造函数的详细检查
  • 智能过滤和分页:按名称/属性进行高级过滤,对大型数据集进行高效分页
  • XML文档集成:自动提取摘要、参数、返回和备注
  • 性能优化:缓存、流媒体和内存高效处理
  • 稳定的JSON API:具有版本控制和结构化错误代码的一致信封
  • .NET 9.0本机:建立在最新的基础上。NET平台,具有现代C#功能
  • 项目集成:解决方案和项目文件分析,并解决依赖关系

安装

从NuGet安装全局工具(添加 sherlock-mcp 到您的路径):

dotnet tool install -g Sherlock.MCP.Server

或者,在开发过程中,您可以在本地运行服务器:

dotnet run --project src/server/Sherlock.MCP.Server.csproj

配置您的MCP客户端

Sherlock作为标准MCP服务器运行,通过stdio进行通信。

  • 光标:设置→ MCP/定制工具→ 添加工具→ 命令: sherlock-mcp
  • Claude Desktop/其他MCP客户端:添加一个指向 sherlock-mcp 命令。JSON条目示例(有关确切的文件位置/格式,请参阅客户的文档):
{
  "servers": {
    "sherlock": {
      "command": "sherlock-mcp"
    }
  }
}

不需要任何论据。服务器在启动时自动注册所有工具。

自动配置。NET项目

在使用时自动使用Sherlock。NET代码,添加以下配置:

克劳德代码(Claude.md)

将此添加到您的项目 CLAUDE.md 文件:

## .NET Assembly Analysis

This project uses Sherlock MCP for .NET assembly analysis. When analyzing .NET types, methods, or assemblies:

1. Use sherlock-mcp tools instead of guessing about .NET APIs
2. For type analysis: `GetTypeInfo`, `GetTypeMethods`, `GetTypeProperties`
3. For assembly overview: `AnalyzeAssembly` or `GetTypesFromAssembly`
4. For project structure: `AnalyzeProject`, `AnalyzeSolution`
5. Assembly paths are typically: `./bin/Debug/net9.0/ProjectName.dll`

Always include assembly path, prefer full type names, and use pagination for large results.

光标(.cursorules)

将此添加到您的项目 .cursorrules 文件:

# .NET Analysis Rules
When working with .NET code, assemblies, or types:
- Use sherlock-mcp tools for accurate type/member information
- Assembly paths: ./bin/Debug/net9.0/*.dll or ./bin/Release/net9.0/*.dll
- For unknown types: GetTypesFromAssembly -> GetTypeInfo -> GetTypeMethods/Properties
- For code analysis: AnalyzeAssembly for overview, GetTypeInfo for details
- Use pagination (maxItems=50) for large results to avoid token limits

全局配置

对于全系统使用,请添加到您的全局Claude Code设置或Cursor配置中:

For .NET development: Use sherlock-mcp tools when analyzing assemblies, types, methods, or project structure. Prefer these over guessing .NET API details.

如何提示

下面是简洁的提示片段,您可以将其粘贴到聊天中,以快速提高效率。调整本地DLL的路径。

一般设置

You have access to an MCP server named "sherlock" that can analyze .NET assemblies. Prefer these tools for .NET questions and include short reasoning for which tool you chose. Ask me for the assembly path if missing.

枚举类型的成员

Analyze: /absolute/path/to/MyLib/bin/Debug/net9.0/MyLib.dll
Type: MyNamespace.MyType
List methods, including non-public, filter name contains "Async", include attributes, return JSON.

获取成员的XML文档

Use GetXmlDocsForMember on /abs/path/MyLib.dll, type MyNamespace.MyType, member TryParse. Summarize the summary + params.

查找类型并钻入

List types from /abs/path/MyLib.dll; then get type info for the first result and list its nested types.

调整分页和过滤器

Use GetTypeMethods on /abs/path/MyLib.dll, type MyNamespace.MyType, sortBy name, sortOrder asc, skip 0, take 25, hasAttributeContains Obsolete.

工具概述

装配发现与分析

  • AnalyzeAssembly:完整的程序集概述,包括公共类型和元数据
  • FindAssemblyByClassName:查找包含特定类名的程序集
  • FindAssemblyByFileName:在通用生成路径中按文件名查找程序集

类型内省

  • GetTypesFromAssembly:列出所有带有元数据的公共类型(分页)
  • AnalyzeType:对所有成员进行全面的类型分析
  • GetTypeInfo:详细的类型元数据(可访问性、泛型、嵌套类型)
  • GetTypeHierarchy:继承链和接口实现
  • GetGenericTypeInfo:通用参数、自变量和方差信息
  • GetTypeAttributes:在类型上声明的自定义属性
  • GetNestedTypes:嵌套类型声明

成员分析(可过滤和分页)

  • GetAllTypeMembers:所有类别的所有成员
  • GetTypeMethods:方法签名、重载和元数据
  • GetTypeProperties:属性详细信息,包括getter/setter和索引器
  • GetTypeFields:字段信息,包括常量和只读字段
  • GetTypeEvents:具有处理程序类型的事件声明
  • GetTypeConstructors:构造函数签名和参数
  • AnalyzeMethod:具有重载和属性的深度方法分析

反向查询

  • FindImplementationsOf:实现接口或从基类派生的类型
  • FindMethodsReturning:返回类型与给定类型匹配的方法(支持开放泛型匹配)
  • FindReferencesTo:更广泛地涵盖参数、字段、属性、事件和泛型参数

属性和元数据

  • GetMemberAttributes:特定成员的属性
  • GetParameterAttributes:参数级属性信息

XML文档

  • GetXmlDocsForType:提取类型级XML文档
  • GetXmlDocsForMember:特定成员的文件(摘要/参数/返回/备注)

项目与解决方案分析

  • AnalyzeSolution:解析.sln文件并枚举项目
  • AnalyzeProject:项目元数据、引用和生成配置
  • GetProjectOutputPaths:解析不同配置的输出目录
  • ResolvePackageReferences:将NuGet包映射到缓存的程序集
  • FindDepsJsonDependencies:解析deps.json以获取运行时依赖关系

配置和运行时

  • GetRuntimeOptions:当前服务器配置和默认值
  • UpdateRuntimeOptions:修改分页、缓存和搜索行为

高级过滤和分页

所有成员分析工具都支持全面的过滤和分页:

筛选选项:

  • caseSensitive (bool):区分大小写的类型/成员匹配
  • nameContains (string):按成员名称子字符串筛选
  • hasAttributeContains (string):按属性类型子字符串筛选
  • includePublic / includeNonPublic (bool):可见性过滤
  • includeStatic / includeInstance (bool):成员类型过滤

分页:

  • skip / take (int):标准偏移分页
  • maxItems (int):每个请求的最大结果
  • continuationToken (string):大型数据集的基于令牌的分页
  • sortBy / sortOrder (string):按asc/desc顺序按名称/访问进行排序

类型分辨率:

  • 支持全名(Namespace.Type),简单名称(Type),以及嵌套类型(Outer+Inner)
  • 病例敏感性由以下因素控制 caseSensitive 参数
  • 模糊类型名称的自动回退解决方案

响应架构

所有工具都返回一个稳定的JSON信封:

{ "kind": "type.list|member.methods|...", "version": "1.0.0", "data": { /* result */ } }

错误使用一致的形状:

{ "kind": "error", "version": "1.0.0", "code": "AssemblyNotFound|TypeNotFound|InvalidArgument|InternalError", "message": "...", "details": { } }

Common error codes include `AssemblyNotFound`, `TypeNotFound`, `MemberNotFound`, `InvalidArgument`, and `InternalError`.

贡献

欢迎捐款。此回购包括 .editorconfig 使用现代C#首选项(文件作用域名称空间、表达式体成员、4空间缩进)。

提交消息格式

此项目使用 约定式提交 用于自动生成变更日志。所有提交必须遵循以下格式:

type(scope): description

有效类型:

  • feat -新功能
  • fix -bug修复
  • docs -仅文档更改
  • style -代码样式更改(格式、分号等)
  • refactor -既不修复错误也不添加功能的代码更改
  • perf -性能改进
  • test -添加或更正测试
  • build -构建系统或依赖关系的更改
  • ci -更改CI配置
  • chore -其他不修改src或测试文件的更改
  • revert -还原之前的提交

示例:

git commit -m "feat(tools): add new assembly analysis tool"
git commit -m "fix: resolve null reference in type loader"
git commit -m "docs(readme): update installation instructions"

开发设置

# Restore .NET tools (versionize, husky)
dotnet tool restore

# Install git hooks for commit validation
dotnet husky install

指南

  • 保持变化小而集中;为新行为添加单元测试。
  • 添加工具时,请遵循响应信封和错误代码惯例。
  • dotnet builddotnet test 在打开PR之前,先在本地进行操作。

创建发布

维护人员可以使用以下方式创建版本:

# Restore tools if not already done
dotnet tool restore

# Preview what will change
dotnet versionize --dry-run

# Create release (bumps version, updates changelog, creates git tag)
dotnet versionize

# Push changes and tag to trigger release workflow
git push --follow-tags

发布工作流将自动:

  1. 构建和测试项目
  2. 创建带有更改日志注释的GitHub版本
  3. 发布NuGet包
  4. 更新 server.json 使用新版本

MCP注册表

mcp名称:io.github.jcucci/dotnet-sherlock-mcp

许可证

夏洛克MCP。NET根据 MIT许可证.

目录标签

目录标签

代码分析.NET开发C#Claude代码生成本地部署元数据提取XML文档

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

31

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明tokenlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP