
Essentials
io.github.fieldcurePublished by GitHub account fieldcurev2.6.1Updated Oct 24, 2026
Essential MCP server: HTTP, web search, downloads, Wolfram|Alpha, shell, JS, file I/O, memory.
Overview
A local .NET MCP server bundling 20 general-purpose tools: HTTP requests, web search and fetch, downloads, shell, JavaScript, file I/O, Wolfram|Alpha and…
- What you can do
- Make HTTP requests and fetch web pages, converting HTML and documents (PDF, DOCX, HWPX, PPTX, XLSX) to Markdown
- Search the web, plus news, images, scholar and patents through API-based engines, and switch the active engine at runtime
- Download URL content to disk and read, write or grep local files
- Run shell commands and sandboxed JavaScript for calculations and data processing
- Query Wolfram|Alpha for math, units and plots, and read system environment info
- Store, search and delete persistent key-value memories in a local SQLite database
- When to use it
- A good fit when you want one local server that covers everyday assistant needs — web lookups, file access, shell and script execution, and simple memory — instead of installing several narrow servers. Useful for research, document reading and small data-processing tasks on a desktop machine.
- Requirements
- Runs as a local stdio process; needs the .NET 8.0 runtime or later (installed as a dotnet tool, or built from source). Desktop only. Works with no keys using free Bing/DuckDuckGo scraping; optional keys via SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY or ESSENTIALS_SEARCH_API_KEY, and WOLFRAM_APPID for Wolfram|Alpha. Optional paths via ESSENTIALS_DOWNLOAD_DIRECTORY, ESSENTIALS_MEMORY_PATH, ESSENTIALS_SETTINGS_PATH and ESSENTIALS_SEARCH_ENGINE.
Installation
In SourceWeft
- Open Essentials in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
FieldCure MCP Essentials
Install once, get the basics. A Model Context Protocol (MCP) server that provides 20 essential tools — HTTP requests, web search & fetch, URL file downloads, Wolfram|Alpha computational knowledge, shell commands, JavaScript execution, file I/O, environment info, and persistent memory — for any MCP client. Category search (news, images, scholar, patents) and runtime engine switching (get/set) are always available; capabilities are guarded at invocation time against the active engine. Built with C# and the official MCP C# SDK.
Features
- 20 essential tools — HTTP, web search & fetch, URL file downloads, runtime search-engine switching (get/set), Wolfram|Alpha, shell, JavaScript sandbox, environment info, file read/write/search, persistent memory + category search (news, images, scholar, patents)
- Zero configuration — no API keys needed for default Bing search; optional API keys unlock Serper, Tavily, SerpApi (+ category search tools), and Wolfram|Alpha
- Document parsing —
web_fetchandread_fileextract text from PDF, DOCX, HWPX, PPTX, XLSX into Markdown. PDF text extraction is text-layer only; scanned PDFs without a text layer yield empty text. For OCR-backed indexing usefieldcure-mcp-rag. - Sandboxed JavaScript — Jint engine with strict limits (timeout, statement count, recursion depth)
- SSRF protection — HTTP requests, web fetch, and file downloads block private IP ranges and loopback addresses
- Cross-client — works with Claude Desktop, VS Code, AssistStudio, and any MCP-compatible client
- Stdio transport — standard MCP subprocess model via JSON-RPC over stdin/stdout
Installation
After installation, the fieldcure-mcp-essentials command is available globally.
From source
Requirements
- .NET 8.0 Runtime or later
Tools
Category Search (SerpApi / Serper / Tavily)
Always registered. Each tool runtime-guards on the active engine's capabilities and returns a descriptive error pointing at set_search_engine when the current engine does not support the category.
Runtime engine switching
web_search vs web_fetch vs download_file vs http_request
Document Parsing
web_fetch and read_file can parse binary documents into Markdown:
Output includes headings, tables, math expressions ([math: LaTeX]), and slide/page separators.
File Downloads
download_file saves the original bytes from an HTTP(S) URL. If save_path is omitted, the tool infers a filename from Content-Disposition, the URL path, or a generated fallback name. Relative save_path values resolve under the configured download_directory; absolute paths are used as-is except for protected system directories.
The default download directory is ~/Downloads/mcp and is created automatically on first use. Downloads are written to a temporary file in the destination directory and then committed with an atomic move/replace, so failed or cancelled downloads do not leave a partial final file.
Web Search
Default engine is Bing (free, no API key needed). For more reliable results, use an API-based engine:
Environment Variable Auto-Detection
When --search-engine is omitted, the server scans environment variables and automatically selects the best available engine:
Detection priority: Serper → SerpApi → Tavily → Bing/DuckDuckGo fallback.
API Key Security
Region
Use the region parameter for localized results:
Without --search-engine, a fallback engine (Bing → DuckDuckGo) auto-switches on CAPTCHA. Free engines rely on scraping and may be intermittent — an API-based engine is strongly recommended for any non-trivial use.
Explicit paid engine without a key — MCP Elicitation
When --search-engine serper|tavily|serpapi is selected explicitly but no API key is configured (CLI arg, ESSENTIALS_SEARCH_API_KEY, or engine-specific env var), the server waits until the first web_search call and then asks the MCP client for the key via MCP Elicitation. If the user declines, a follow-up prompt asks whether to run the search with free Bing/DuckDuckGo instead. Declining both lets the tool soft-fail with a clear message so the LLM can recover.
Clients without Elicitation support (including older CLI hosts) fall back to the free engine immediately, matching the pre-2.1 behaviour. Cached keys live for the process lifetime; the host can re-elicit after an upstream 401/403 if the tool invalidates the cache.
Wolfram|Alpha
wolfram_alpha calls the Full Results API v2 and returns mixed content — plaintext, MathML (passed through verbatim for clients that render MathML natively, e.g. ChatPanel/WebView2), and plot images embedded as ImageContent. The API's reinterpret=true flag is always on so most typo-level failures auto-correct server-side; only real parse failures surface isError: true with assumptions > tips > didyoumeans guidance.
AppID
Set WOLFRAM_APPID to the AppID obtained at developer.wolframalpha.com (select "Full Results API"; free tier: 2,000 calls/month, non-commercial). On MCP clients that support Elicitation the key can also be supplied interactively on first use. A rejected AppID (401/403) triggers a single invalidate-and-retry so a mistyped key can be re-elicited; the existing ApiKeyResolverRegistry re-elicit cap (2 per env-var slot) prevents loops.
⚠️ Use
developer.wolframalpha.com, notdeveloper.wolfram.com— the latter is a separate paid portal and will show "no permission to access any API keys" for free accounts.
The tool is always registered regardless of AppID status; without a key it returns a setup-guidance error so the model can inform the user instead of silently skipping.
Query tips (surfaced in the tool description)
- English only, simplified keyword form (
'France population', not'how many people live in France') - Exponent notation
6*10^14, never6e14 - Single-letter variables (
x,y,n) - Named physical constants (
'speed of light', not299792458) - For equations with units, solve without units first
RECOMMENDED / AVOIDhints steer the model — simple arithmetic torun_javascript, general web queries toweb_search, subjective/news questions away from Wolfram
JavaScript Sandbox
run_javascript uses the Jint engine with strict limits:
Allowed: Math.*, JSON, Date, RegExp, console.log, string/array methods, parseInt, encodeURIComponent, atob/btoa
Blocked: setTimeout, setInterval, require, import, .NET interop, eval()
Variables can be injected into the script scope for data pipeline use:
Run Command
run_command defaults to the backward-compatible shell for the host: cmd.exe on Windows and /bin/sh on Unix. Use shell when a command requires specific syntax:
Verbose output is capped per stream with max_output_chars (default 100,000). Responses include shell_used, stdout_truncated, and stderr_truncated; truncated streams include an inline marker with the omitted character count.
Memory
Memories are stored in SQLite (%LOCALAPPDATA%/FieldCure/Mcp.Essentials/memory.db) and shared across all MCP clients on the same machine.
Configuration
Essentials settings
The default settings file is:
- Windows:
%LOCALAPPDATA%/FieldCure/Mcp.Essentials/settings.json - macOS/Linux: the platform local app-data folder plus
FieldCure/Mcp.Essentials/settings.json
Download directory precedence is:
- CLI:
--download-directory <path> - Environment:
ESSENTIALS_DOWNLOAD_DIRECTORY - Settings file:
download_directory - Default:
~/Downloads/mcp
Use --settings-path <path> or ESSENTIALS_SETTINGS_PATH to point at a different settings file.
Claude Desktop
Add to claude_desktop_config.json:
With a search engine:
VS Code (Copilot)
Add to .vscode/mcp.json:
From source (without dotnet tool)
Data Storage
Project Structure
Development
See Also
Part of the AssistStudio ecosystem.
License
Source: README.md at commit fdf4487
Tools
0Version history
1- v2.6.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts