WebToolsMcp 1.0.0
dotnet tool install --global WebToolsMcp --version 1.0.0
dotnet new tool-manifest
dotnet tool install --local WebToolsMcp --version 1.0.0
#tool dotnet:?package=WebToolsMcp&version=1.0.0
nuke :add-package WebToolsMcp --version 1.0.0
WebToolsMcp
Pure .NET 10 MCP (Model Context Protocol) server giving LM Studio models internet access. No Node.js / NPM required.
Tools
web_search(query, maxResults)— DuckDuckGo web search (no API key needed). Skips ad results and reports DDG bot-detection blocks (HTTP 202/403) explicitly.fetch_url(url, startIndex, maxChars)— download a page and return readable plain text, withstartIndexpagination for long pages.
Security
fetch_url has an SSRF guard: it refuses URLs (and redirect hops — redirects are
followed manually, max 5) that resolve to loopback, private (RFC1918), link-local
(incl. the 169.254.169.254 cloud metadata endpoint), CGNAT, or multicast addresses.
Note: DuckDuckGo blocks clients whose browser-like headers don't match their TLS fingerprint, so this server intentionally sends an honest minimal User-Agent — don't "upgrade" it to fake Chrome headers.
Install
Option 1: dotnet tool (needs the .NET 10 SDK or runtime)
dotnet tool install -g WebToolsMcp
This puts a webtools-mcp command on your PATH.
Option 2: standalone binary (no .NET required)
Download the archive for your platform from
Releases
(win-x64, win-arm64, linux-x64, linux-arm64, osx-x64, osx-arm64)
and extract WebToolsMcp.exe (or WebToolsMcp) anywhere.
Option 3: build from source
dotnet publish -c Release -o publish
Hook into LM Studio
LM Studio ≥ 0.3.17 supports MCP servers. Open the Program tab (right sidebar in chat)
→ Install → Edit mcp.json, and add (adjust command to where you installed it):
{
"mcpServers": {
"web-tools": {
"command": "webtools-mcp"
}
}
}
If you used the standalone binary instead, point command at the full path, e.g.
"C:\\Tools\\WebToolsMcp.exe".
Save, toggle the server on, and enable the web_search / fetch_url tools in chat.
Use a model with good tool-calling support (e.g. Qwen3, Llama 3.1+) so it actually
invokes the tools.
Notes
- stdout is reserved for the MCP protocol; all logs go to stderr.
- The search scrapes DuckDuckGo's HTML endpoint; heavy usage may get rate-limited.
fetch_urltruncates atmaxChars(default 8000) to protect the model's context.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 131 | 8/15/2026 |