1. Conduid
  2. Blockchain
  3. DotnetSourceMcp
MCP server · Blockchain

DotnetSourceMcp

MCP server (stdio) for resolving .NET symbols to exact source code locations. Use with Claude, Copilot, or any MCP-compatible AI agent. Covers BCL, ASP.NET Core, Microsoft.Extensions.*, and NuGet packages with Source Link.

Unclaimed blockchain
34Low

Scored 5 months ago · breakdown

About DotnetSourceMcp

DotnetSourceMcp is an MCP server published by nilsalex in the Blockchain category: mCP server (stdio) for resolving .NET symbols to exact source code locations. Use with Claude, Copilot, or any MCP-compatible AI agent. Covers BCL, ASP.NET Core, Microsoft.Extensions.*, and NuGet packages with Source Link.

Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/nilsalex/dotnet-source-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about DotnetSourceMcp

Powered by Claude · Grounded in docs

I know everything about DotnetSourceMcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

dotnet-source-mcp

An MCP server that gives LLM agents precise, evidence-grounded access to .NET library source code.

Instead of having an agent improvise with reflection helpers or heuristic GitHub browsing, it calls a single tool and gets back exact source links, commit SHAs, and code snippets.

Install

dotnet tool install --global DotnetSourceMcp

Agent configuration

Claude Code

claude mcp add --transport stdio dotnet-source-mcp -- dotnet-source-mcp

Or add to .mcp.json in your project root (check into version control for team use):

{
  "mcpServers": {
    "dotnet-source-mcp": {
      "command": "dotnet-source-mcp",
      "args": [],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

OpenCode

Add to opencode.json:

{
  "mcp": {
    "dotnet-source-mcp": {
      "type": "local",
      "command": ["dotnet-source-mcp"],
      "environment": {
        "GITHUB_TOKEN": "{env:GITHUB_TOKEN}"
      }
    }
  }
}

GitHub Copilot / VS Code

Add to .vscode/mcp.json:

{
  "servers": {
    "dotnet-source-mcp": {
      "type": "stdio",
      "command": "dotnet-source-mcp",
      "args": [],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

GitHub Copilot cloud agent

Add the MCP configuration in your repository settings (Settings → Copilot → Cloud agent):

{
  "mcpServers": {
    "dotnet-source-mcp": {
      "type": "local",
      "command": "dotnet-source-mcp",
      "args": [],
      "tools": ["resolve_dotnet_source", "explain_dotnet_implementation"]
    }
  }
}

The .NET tool must be installed on the runner. Add .github/workflows/copilot-setup-steps.yml:

on:
  workflow_dispatch:
permissions:
  contents: read
jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: "10.0.x"
      - run: dotnet tool install --global DotnetSourceMcp

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "dotnet-source-mcp": {
      "command": "dotnet-source-mcp",
      "args": [],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

Generic (any MCP client)

{
  "mcpServers": {
    "dotnet-source-mcp": {
      "command": "dotnet-source-mcp",
      "args": [],
      "env": {
        "GITHUB_TOKEN": "ghp_...",
        "RESOLVER_LOG_LEVEL": "Warning"
      }
    }
  }
}

Find the tool path for manual config:

which dotnet-source-mcp

What it covers

  • BCL (System.Private.CoreLib)
  • ASP.NET Core
  • Microsoft.Extensions.*
  • Any Microsoft library indexed on source.dot.net
  • Public API entries on learn.microsoft.com/dotnet/api
  • NuGet packages with Source Link (provide packageId + packageVersion)

MCP tools

resolve_dotnet_source

Resolves a .NET symbol to its source location.

{
  "symbol": "System.Text.Json.JsonSerializer.Serialize",
  "packageId": "System.Text.Json",
  "packageVersion": "8.0.5",
  "targetFramework": "net10.0"
}

Returns: source links, GitHub permalink with commit SHA, code snippet, confidence (High/Medium/Low), diagnostics.

explain_dotnet_implementation

Answers a question about an implementation, grounded in retrieved source snippets.

{
  "symbol": "System.Collections.Generic.Dictionary",
  "question": "How is the internal hash table resized?"
}

Returns: answer text, evidence (source links + snippets), confidence, caveats.

Configuration

Variable Default Description
GITHUB_TOKEN (none) GitHub PAT — without it you get 60 requests/hr
RESOLVER_LOG_LEVEL Warning Trace, Debug, Information, Warning, Error
RESOLVER_MAX_SNIPPET_LINES 80 Global default snippet length
RESOLVER_CACHE_DIR {temp}/dotnet-source-resolver-cache NuGet package download cache

Development

Building

dotnet build

Running from source

dotnet run --project src/DotnetSourceResolver.McpServer

Or publish a self-contained binary:

dotnet publish src/DotnetSourceResolver.McpServer -c Release -r linux-x64 --self-contained true -o ./publish
./publish/DotnetSourceResolver.McpServer

CLI (for debugging)

# Resolve a symbol
dotnet run --project src/DotnetSourceResolver.Cli -- resolve \
  --symbol "System.Text.StringBuilder" \
  --tfm net10.0

# With full options
dotnet run --project src/DotnetSourceResolver.Cli -- resolve \
  --symbol "System.Collections.Generic.Dictionary" \
  --package "System.Private.CoreLib" \
  --tfm net10.0 \
  --max-lines 60

# Omit snippets (faster, just source links)
dotnet run --project src/DotnetSourceResolver.Cli -- resolve \
  --symbol "System.Text.Json.JsonSerializer" \
  --no-snippets

Testing

# Fast unit tests (no network)
dotnet test --filter "Category!=Live"

# Live integration tests (requires network)
RESOLVER_RUN_LIVE_TESTS=true dotnet test --filter "Category=Live"

Architecture

MCP Client / IDE
      │ stdio (JSON-RPC)
DotnetSourceResolver.McpServer
      │ direct call
DotnetSourceResolver.Core
      ├── SourceDotNetAdapter   → source.dot.net search + file pages
      ├── DocsSourceLinkAdapter → learn.microsoft.com source links
      ├── NuGetAdapter          → .nuspec + embedded PDB Source Link extraction
      └── GitHubAdapter         → raw file fetch + snippet extraction

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About DotnetSourceMcp

How do I install DotnetSourceMcp?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is DotnetSourceMcp safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is DotnetSourceMcp still maintained?

Yes — the last commit was 5 months ago. The repository has 0 stars and 0 forks.