FieldCure.Mcp.Essentials
2.6.0
{ "servers": { "FieldCure.Mcp.Essentials": { "type": "stdio", "command": "dnx", "args": ["FieldCure.Mcp.Essentials@2.6.0", "--yes"] } } }
.vscode/mcp.json settings file.
dotnet tool install --global FieldCure.Mcp.Essentials --version 2.6.0
dotnet new tool-manifest
dotnet tool install --local FieldCure.Mcp.Essentials --version 2.6.0
#tool dotnet:?package=FieldCure.Mcp.Essentials&version=2.6.0
nuke :add-package FieldCure.Mcp.Essentials --version 2.6.0
FieldCure.Mcp.Essentials
Install once, get the basics. An MCP server with 20 essential tools for any MCP client — web search with runtime engine switching (get/set), Wolfram|Alpha, web/document fetching, URL file downloads, shell, JavaScript sandbox, file I/O, and persistent memory. Category search (news, images, scholar, patents) is always available with per-tool runtime capability guards against the active engine.
Tools
| Tool | Description |
|---|---|
http_request |
Full HTTP client (GET/POST/PUT/DELETE/PATCH/HEAD) with SSRF protection and max_response_chars for response size control |
web_search |
Search the web and return snippets (title, URL, description) |
web_fetch |
Fetch a URL and extract content as Markdown — HTML pages and documents (PDF, DOCX, HWPX, PPTX, XLSX) |
download_file |
Download URL content to disk with a configurable download directory, 100 MB limit, and atomic save |
run_command |
Shell command execution with timeout, working directory, env vars, explicit shell selection, and truncation flags |
run_javascript |
Sandboxed JavaScript (Jint) — math, JSON, regex, data processing |
wolfram_alpha |
Wolfram|Alpha computational knowledge — symbolic math, plots, unit conversions, constants. MathML passes through for native rendering |
get_environment |
System info — time, timezone, OS, hostname, username |
read_file |
Read files — text with offset/limit, documents (PDF, DOCX, HWPX, PPTX, XLSX) parsed to Markdown |
write_file |
File writing (overwrite/append) with auto directory creation |
search_files |
File search by glob pattern and content (grep-like) |
remember |
Store a key-value memory (persisted in SQLite) |
forget |
Delete memories by key or keyword search |
list_memories |
Search and list stored memories with FTS5 and pagination |
set_search_engine |
Switch the active search engine (bing, duckduckgo, serper, tavily, serpapi) at runtime. Paid-engine API keys resolve lazily via env var or MCP Elicitation on the next search. Emits notifications/tools/list_changed on success. |
get_search_engine |
Return the currently active engine and its category capabilities. Read-only; useful for host UIs reflecting live engine state or for confirming category support before calling a category search tool. |
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.
| Tool | Description | SerpApi | Serper | Tavily |
|---|---|---|---|---|
search_news |
Search recent news articles via Google News | Yes | Yes | Yes |
search_images |
Search images with size/type filtering | Yes | Yes | — |
search_scholar |
Search academic papers with citation counts | Yes | Yes | — |
search_patents |
Search patent documents with inventor/assignee filtering | Yes | Yes | — |
Document Parsing
web_fetch and read_file can parse binary documents into Markdown:
| Format | Extension | Detection |
|---|---|---|
.pdf |
Content-Type / URL extension (text-layer only; scanned pages yield empty text — use fieldcure-mcp-rag for OCR) |
|
| Word | .docx |
Content-Type / URL extension |
| Hangul (HWPX) | .hwpx |
URL extension (no standard Content-Type) |
| PowerPoint | .pptx |
Content-Type / URL extension |
| Excel | .xlsx |
Content-Type / URL extension |
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.
Configure it in %LOCALAPPDATA%/FieldCure/Mcp.Essentials/settings.json:
{
"download_directory": "~/Downloads/mcp"
}
Override with --download-directory <path> or ESSENTIALS_DOWNLOAD_DIRECTORY.
Web Search
Default engine is Bing (free, no API key needed). For more reliable results, use an API-based engine:
| Engine | Free Tier | API Key |
|---|---|---|
| Bing (default) | Unlimited (scraping) | Not needed |
| Serper | 2,500 one-time | serper.dev |
| Tavily | 1,000/month | tavily.com |
| SerpApi | 100/month | serpapi.com |
# Use Serper
fieldcure-mcp-essentials --search-engine serper --search-api-key YOUR_KEY
# Or via environment variables
ESSENTIALS_SEARCH_ENGINE=tavily ESSENTIALS_SEARCH_API_KEY=xxx fieldcure-mcp-essentials
Engine-specific environment variables are also auto-detected when --search-engine is omitted:
| Engine | Environment Variable |
|---|---|
| Serper | SERPER_API_KEY |
| SerpApi | SERPAPI_API_KEY |
| Tavily | TAVILY_API_KEY |
Use the region parameter for localized results:
{ "query": "서울 맛집", "region": "ko-kr" }
Without --search-engine, a fallback engine (Bing → DuckDuckGo) auto-switches on CAPTCHA.
If a paid engine is selected explicitly but no API key is configured, the server no longer silently falls back. On the first web_search call it asks the MCP client for the key via MCP Elicitation; if the client does not support Elicitation, or the user declines and then also declines the follow-up "use free fallback?" prompt, the call soft-fails with a clear message. Cached keys live for the process lifetime.
Wolfram|Alpha
wolfram_alpha calls the Full Results API v2 and returns mixed text/image content. MathML is passed through verbatim — clients that render MathML (e.g. ChatPanel WebView2) display formulas natively, no client-side conversion needed. Plots and other visual pods are embedded as ImageContent. The API's reinterpret=true flag is always on, so the server auto-corrects most failed queries before returning.
Set WOLFRAM_APPID to the AppID obtained at developer.wolframalpha.com (select Full Results API, free tier: 2,000 calls/month, non-commercial). Clients that support MCP Elicitation are prompted for the key on first use if the env var is unset.
⚠️ Use
developer.wolframalpha.com, notdeveloper.wolfram.com— the latter is a separate paid portal.
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.
Run Command
run_command defaults to cmd.exe on Windows and /bin/sh on Unix for backward compatibility. Pass shell to opt into pwsh, powershell, cmd, bash, or sh. Responses include shell_used, stdout_truncated, and stderr_truncated; max_output_chars caps stdout and stderr independently.
Memory
Memories are stored in SQLite (%LOCALAPPDATA%/FieldCure/Mcp.Essentials/memory.db) and shared across all MCP clients on the same machine.
# Custom memory path
fieldcure-mcp-essentials --memory-path /path/to/memory.db
# Or via environment variable
ESSENTIALS_MEMORY_PATH=/path/to/memory.db fieldcure-mcp-essentials
Quick Start
dotnet tool install -g FieldCure.Mcp.Essentials
Claude Desktop
{
"mcpServers": {
"essentials": {
"command": "fieldcure-mcp-essentials"
}
}
}
VS Code
{
"servers": {
"essentials": {
"command": "fieldcure-mcp-essentials"
}
}
}
Requirements
Optional
Works out of the box with no additional dependencies.
If available on your system, run_command can leverage tools like
Node.js, Python, Git, Docker, and any other CLI tools.
See Also
Part of the AssistStudio ecosystem.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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 |
|---|---|---|
| 2.6.0 | 102 | 4/29/2026 |
| 2.5.0 | 100 | 4/25/2026 |
| 2.4.0 | 99 | 4/23/2026 |
| 2.3.0 | 96 | 4/23/2026 |
| 2.2.0 | 105 | 4/22/2026 |
| 2.1.1 | 105 | 4/21/2026 |
| 2.1.0 | 105 | 4/20/2026 |
| 2.0.0 | 105 | 4/17/2026 |
| 1.5.0 | 98 | 4/14/2026 |
| 1.4.2 | 109 | 4/10/2026 |
| 1.4.1 | 93 | 4/10/2026 |
| 1.4.0 | 96 | 4/10/2026 |
| 1.3.1 | 94 | 4/8/2026 |
| 1.3.0 | 102 | 4/8/2026 |
| 1.2.0 | 101 | 4/7/2026 |
| 1.1.0 | 96 | 4/7/2026 |
| 1.0.0 | 98 | 4/6/2026 |
| 0.7.1 | 103 | 4/6/2026 |
| 0.7.0 | 93 | 4/6/2026 |
| 0.6.0 | 108 | 4/4/2026 |
v2.6.0: Add run_command shell selection (auto, pwsh, powershell, cmd, bash, sh) with shell_used reporting and max_output_chars / stdout_truncated / stderr_truncated flags. Fix cmd.exe embedded-quote escaping, Unix /bin/sh quote corruption, and Windows PowerShell non-ASCII (Korean/CJK) output mojibake.