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

Omnisharp MCP

MCP Server

OmniSharp MCP服务器为Claude Code CLI提供C#语言智能支持,实现完整的IDE功能。

工具数

12

提示词数

0

GitHub Stars

3

资源数

0
代码分析C#ClaudeClaude

安装说明

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

作者 / 组织

omer2307

提供方

omer2307

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

OmniSharp MCP服务器

一个模型上下文协议(MCP)服务器,通过封装OmniSharp语言服务器为Claude Code CLI提供C#语言智能。

它的作用

此MCP服务器为Claude Code提供了完整的C#IDE功能:

  • 查找符号 -按名称搜索类、方法、属性
  • 转到定义 -跳转到定义符号的位置
  • 查找引用 -查找代码库中符号的所有用法
  • 查找实现 -查找实现接口的类
  • 获取类型信息 -获取类型信息和文档
  • 获取诊断 -获取编译器错误和警告
  • 代码补全 -获取自动完成建议
  • 签名帮助 -获取方法参数提示
  • 重命名预览 -预览重命名会改变什么
  • 已分解的源代码 -视图已反编译。NET框架代码

先决条件

安装

1.克隆和构建

git clone https://github.com/your-repo/omnisharp-mcp.git
cd omnisharp-mcp
dotnet publish src/OmniSharpMCP/OmniSharpMCP.csproj -c Release -o publish

2.配置克劳德代码

创建MCP服务器并将其添加到您的Claude Code配置中。

每个项目需要什么

A.创建 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "csharp": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["/path/to/omnisharp-mcp/publish/OmniSharpMCP.dll"],
      "env": {
        "OMNISHARP_SOLUTION": "/path/to/your/project.sln"
      }
    }
  }
}

B.编辑.claude/mcp.json文件的args和env值。

我项目中编辑的mcp.json文件示例:

{
  "mcpServers": {
    "csharp": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["/Users/omersomekhbeachbum/dev/omnisharp-mcp/publish/OmniSharpMCP.dll"],
      "env": {
        "OMNISHARP_SOLUTION": "/Users/omersomekhbeachbum/dev/rummystars-client/rummystars-client.sln"
      }
    }
  }
}

3.启用MCP服务器

创建(如果尚未创建)和编辑 ~/.claude/settings.local.json:

{
  "enabledMcpjsonServers": ["csharp"],
  "enableAllProjectMcpServers": true
}

4.重新启动克劳德代码

只要所有claude实例都关闭,mcp就可以启动。

再次启动claude:

claude

验证服务器是否已连接:

/mcp

你应该看看 csharp 在已连接的服务器列表中。

允许claude使用omnisharp mcp工具

这是开箱即用的!这里不需要额外的配置。 每当claude实例运行时,他都有所有的工具,你不需要为他指定要使用的工具。根据提示,claude实例将决定哪些工具最适合他,以获得想要的结果。

首次运行

首次运行时,MCP服务器将:

  1. 立即启动(以便Claude Code可以连接)
  2. 下载OmniSharp HTTP服务器(约50MB)至 ~/.omnisharp-mcp/omnisharp/
  3. 启动OmniSharp并在后台加载您的解决方案

注: OmniSharp加载您的解决方案时,第一次启动需要2-3分钟。在此期间,工具将返回错误。如果OmniSharp已经在运行,后续的初创公司会更快。

预热OmniSharp(可选)

为了避免等待OmniSharp加载,您可以预先启动它:

./warmup-omnisharp.sh

此脚本:

  • 启动OmniSharp(如果尚未运行)
  • 等待满载
  • 使其保持运行,以实现即时工具可用性

macOS登录时自动启动

创建 ~/Library/LaunchAgents/com.omnisharp.mcp.plist:


    Label
    com.omnisharp.mcp
    ProgramArguments
    
        /usr/local/share/dotnet/dotnet
        /Users/YOUR_USERNAME/.omnisharp-mcp/omnisharp/OmniSharp.dll
        -s
        /path/to/your/project.sln
        -p
        2050
    
    EnvironmentVariables
    
        DOTNET_ROLL_FORWARD
        LatestMajor
    
    RunAtLoad
    
    KeepAlive
    
    StandardOutPath
    /tmp/omnisharp.log
    StandardErrorPath
    /tmp/omnisharp.log

加载它:

launchctl load ~/Library/LaunchAgents/com.omnisharp.mcp.plist

可用工具

连接后,Claude Code可以访问这些工具:

工具说明
find_symbols按名称模式搜索符号
go_to_definition导航到符号定义
find_references查找对某个符号的所有引用
find_implementations查找接口实现
get_type_info获取类型和文档信息
get_diagnostics获取文件的编译器错误/警告
get_completions获取代码完成建议
get_signature_help获取方法签名帮助
get_file_members获取文件的大纲
get_workspace_info获取解决方案/项目信息
preview_rename预览重命名更改
get_decompiled_source获取反编译的元数据源

建筑

Claude Code CLI
      |
      | (stdio - JSON-RPC)
      v
OmniSharp MCP Server (this project)
      |
      | (HTTP - REST API)
      v
OmniSharp HTTP Server (port 2050)
      |
      | (Roslyn)
      v
Your C# Solution

MCP服务器充当网桥:

  • 通过stdio接收Claude Code的工具调用
  • 将它们转换为对OmniSharp的HTTP请求
  • 将格式化的响应返回给Claude

配置

环境变量

变量描述默认值
OMNISHARP_SOLUTION通往您的道路 .sln 文件必填
OMNISHARP_PORTOmniSharp HTTP端口2050
OMNISHARP_PATH自定义OmniSharp DLL路径自动下载

命令行参数

dotnet OmniSharpMCP.dll --solution /path/to/solution.sln --port 2050

故障排除

MCP服务器连接失败

  1. 检查 /mcp 在Claude Code中查看服务器状态
  2. 验证中的路径 mcp.json 是正确的
  3. 确保 settings.local.json"csharp"enabledMcpjsonServers

工具返回错误

OmniSharp可能仍在加载。检查状态:

curl -X POST http://localhost:2050/checkreadystatus -d '{}'

如果它回来了 {"Ready":false},等待OmniSharp完成加载。

OmniSharp无法启动

检查日志:

tail -f /tmp/omnisharp.log

常见问题:

  • 未找到解决方案文件
  • 未安装.NET SDK
  • 2050港已在使用中

符号搜索返回空

OmniSharp需要时间进行索引。大型解决方案(如Unity项目)可能需要2-3分钟。

重置OmniSharp

# Kill existing processes
pkill -f "omnisharp/OmniSharp.dll"

# Delete downloaded OmniSharp (will re-download on next start)
rm -rf ~/.omnisharp-mcp/omnisharp

发展

从源头构建

cd omnisharp-mcp
dotnet build src/OmniSharpMCP/OmniSharpMCP.csproj

本地运行

OMNISHARP_SOLUTION="/path/to/solution.sln" dotnet run --project src/OmniSharpMCP/OmniSharpMCP.csproj

直接测试OmniSharp

# Find symbols
curl -X POST http://localhost:2050/findsymbols \
  -H "Content-Type: application/json" \
  -d '{"Filter": "MyClass"}'

# Check ready status
curl -X POST http://localhost:2050/checkreadystatus -d '{}'

许可证

麻省理工学院

目录标签

目录标签

代码分析C#ClaudeC#开发本地部署语言服务器IDE功能工具集成

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP