Essential MCP server: HTTP, web search, downloads, Wolfram|Alpha, shell, JS, file I/O, memory.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
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.
web_fetch and read_file extract 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 use fieldcure-mcp-rag.After installation, the fieldcure-mcp-essentials command is available globally.
| Tool | Description | Destructive |
|---|---|---|
http_request | Full HTTP client (GET/POST/PUT/DELETE/PATCH/HEAD) with custom headers and body | β |
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 | Yes |
run_command | Execute shell commands with working directory, environment variables, shell selection, and output truncation flags | Yes |
run_javascript | Sandboxed JavaScript execution (Jint) for math, data processing, JSON, regex | β |
wolfram_alpha | Wolfram|Alpha Full Results API β symbolic math, plots, unit conversions, constants; MathML passes through for native rendering | β |
get_environment | System info β local time, timezone, OS, hostname, username, .NET version | β |
read_file | Read files β text with offset/limit, documents (PDF, DOCX, HWPX, PPTX, XLSX) parsed to Markdown | β |
write_file | Write or append text to files with auto directory creation | Yes |
search_files | Search files by glob pattern and content (grep-like) | β |
remember | Store a key-value memory (persisted in SQLite) | β |
forget | Delete memories by key or keyword search | Yes |
list_memories | Search and list stored memories with FTS5 and pagination | β |
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 | β |
| Tool | Description |
|---|---|
set_search_engine | Switch the active engine (bing, duckduckgo, serper, tavily, serpapi) at runtime. Paid-engine API keys resolve lazily via env var or MCP Elicitation on the next search; the switch itself takes only the engine name. Emits notifications/tools/list_changed on success. |
get_search_engine | Return the currently active engine and its category capabilities. Read-only; use this to reflect live engine state in host UIs or to check category support before calling a category search tool. |
web_search vs web_fetch vs download_file vs http_requesthttp_request | web_search | web_fetch | download_file | |
|---|---|---|---|---|
| Purpose | API calls, raw HTTP | Web search | Read web pages | Save original files |
| Response | Raw (JSON, HTML, etc.) | {title, url, snippet}[] | Markdown (body only) | JSON metadata with saved path |
| Conversion | None | None | SmartReader HTML β Markdown | None |
| Length limit | max_response_chars (default: unlimited, up to 1MB) | max_results (max 10) | max_length (max 20000) | 100 MB |
web_fetch and read_file can parse binary documents into Markdown:
| Format | Extension | Detection |
|---|---|---|
.pdf | Content-Type / URL extension (text layer only; no 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.
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.
Default engine is Bing (free, no API key needed). For more reliable results, use an API-based engine:
| Engine | Free Tier | Category Search | API Key |
|---|---|---|---|
| Bing (default) | Unlimited (scraping) | β | Not needed |
| Serper | 2,500 one-time | news, images, scholar, patents | serper.dev |
| SerpApi | 100/month | news, images, scholar, patents | serpapi.com |
| Tavily | 1,000/month | news | tavily.com |
When --search-engine is omitted, the server scans environment variables and automatically selects the best available engine:
| Engine | Environment Variable |
|---|---|
| Serper | SERPER_API_KEY |
| SerpApi | SERPAPI_API_KEY |
| Tavily | TAVILY_API_KEY |
Detection priority: Serper β SerpApi β Tavily β Bing/DuckDuckGo fallback.
| Engine | Auth Method | Key Exposure |
|---|---|---|
| Serper | HTTP header (X-API-KEY) | Not in URL |
| Tavily | Authorization header (Bearer token) | Not in URL |
| SerpApi | URL query parameter (api_key=xxx) | Visible in server logs |
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.
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.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/essentials)<a href="https://allmcps.com/mcp/essentials"><img src="https://allmcps.com/api/badge/essentials?style=directory" alt="Essentials on AllMCPs" /></a>