OpenSEO
Keyword research, site audits, rank tracking and AI visibility for your AI agent.
Essential MCP server: HTTP, web search, downloads, Wolfram|Alpha, shell, JS, file I/O, memory.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 3/3 통과 · 내 컴퓨터에서 실행돼요 · ✓ 명령 확인 2026년 11월 14일
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
Essentials 키가 필요해요 (제작자 사이트에서 만들기) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
이 메시지를 Claude 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude에 MCP server Essentials을 설치해 주세요. 순서대로: 1) 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "essentials": { "command": "dnx", "args": [ "FieldCure.Mcp.Essentials", "--yes" ], "env": { "ESSENTIALS_SEARCH_API_KEY": "your-value", "SERPER_API_KEY": "your-value", "SERPAPI_API_KEY": "your-value", "TAVILY_API_KEY": "your-value" } } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) ESSENTIALS_SEARCH_API_KEY, SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 Essentials의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
SettingsDeveloperEdit Config
{
"mcpServers": {
"essentials": {
"command": "dnx",
"args": [
"FieldCure.Mcp.Essentials",
"--yes"
],
"env": {
"ESSENTIALS_SEARCH_API_KEY": "your-value",
"SERPER_API_KEY": "your-value",
"SERPAPI_API_KEY": "your-value",
"TAVILY_API_KEY": "your-value"
}
}
}
}키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Essentials을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Essentials을 쓰고 있다고 하거나 답에 Essentials 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
ESSENTIALS_SEARCH_ENGINE · 기본값 {essentials_search_engine}WOLFRAM_APPID · 기본값 {wolfram_appid}ESSENTIALS_MEMORY_PATH · 기본값 {essentials_memory_path}ESSENTIALS_DOWNLOAD_DIRECTORY · 기본값 {essentials_download_directory}ESSENTIALS_SETTINGS_PATH · 기본값 {essentials_settings_path}메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 Essentials에 연결할 수 없어요
Essentials는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
A · Essentials에 연결되는 앱 쓰기
Claude Code에 연결할 수 있지만 먼저 준비가 필요해요
Essentials 키가 필요해요 (제작자 사이트에서 만들기)
이 메시지를 Claude Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude Code에 MCP server Essentials을 설치해 주세요. 순서대로: 1) 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): claude mcp add --scope user essentials --env ESSENTIALS_SEARCH_API_KEY=your-value --env SERPER_API_KEY=your-value --env SERPAPI_API_KEY=your-value --env TAVILY_API_KEY=your-value -- dnx FieldCure.Mcp.Essentials --yes 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) ESSENTIALS_SEARCH_API_KEY, SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 Essentials의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add --scope user essentials --env ESSENTIALS_SEARCH_API_KEY=your-value --env SERPER_API_KEY=your-value --env SERPAPI_API_KEY=your-value --env TAVILY_API_KEY=your-value -- dnx FieldCure.Mcp.Essentials --yesEnter 전에 “your-value”를 내 키로 바꾸세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Essentials이 목록에 있고 연결됨으로 보이면 돼요
Essentials을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Essentials을 쓰고 있다고 하거나 답에 Essentials 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
ESSENTIALS_SEARCH_ENGINE · 기본값 {essentials_search_engine}WOLFRAM_APPID · 기본값 {wolfram_appid}ESSENTIALS_MEMORY_PATH · 기본값 {essentials_memory_path}ESSENTIALS_DOWNLOAD_DIRECTORY · 기본값 {essentials_download_directory}ESSENTIALS_SETTINGS_PATH · 기본값 {essentials_settings_path}메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있지만 먼저 준비가 필요해요
Essentials 키가 필요해요 (제작자 사이트에서 만들기)
이 메시지를 Cursor 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Cursor에 MCP server Essentials을 설치해 주세요. 순서대로: 1) 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "essentials": { "command": "dnx", "args": [ "FieldCure.Mcp.Essentials", "--yes" ], "env": { "ESSENTIALS_SEARCH_API_KEY": "your-value", "SERPER_API_KEY": "your-value", "SERPAPI_API_KEY": "your-value", "TAVILY_API_KEY": "your-value" } } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) ESSENTIALS_SEARCH_API_KEY, SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 Essentials의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
Essentials 설정에서 ESSENTIALS_SEARCH_API_KEY, SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Essentials을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Essentials을 쓰고 있다고 하거나 답에 Essentials 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
ESSENTIALS_SEARCH_ENGINE · 기본값 {essentials_search_engine}WOLFRAM_APPID · 기본값 {wolfram_appid}ESSENTIALS_MEMORY_PATH · 기본값 {essentials_memory_path}ESSENTIALS_DOWNLOAD_DIRECTORY · 기본값 {essentials_download_directory}ESSENTIALS_SETTINGS_PATH · 기본값 {essentials_settings_path}메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있지만 먼저 준비가 필요해요
Essentials 키가 필요해요 (제작자 사이트에서 만들기)
이 메시지를 VS Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 VS Code에 MCP server Essentials을 설치해 주세요. 순서대로: 1) 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "servers": { "essentials": { "type": "stdio", "command": "dnx", "args": [ "FieldCure.Mcp.Essentials", "--yes" ], "env": { "ESSENTIALS_SEARCH_API_KEY": "your-value", "SERPER_API_KEY": "your-value", "SERPAPI_API_KEY": "your-value", "TAVILY_API_KEY": "your-value" } } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) ESSENTIALS_SEARCH_API_KEY, SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 Essentials의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
키 받는 방법은 아래 제작자 README에 있어요
Essentials 설정에서 ESSENTIALS_SEARCH_API_KEY, SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
Essentials을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Essentials을 쓰고 있다고 하거나 답에 Essentials 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
ESSENTIALS_SEARCH_ENGINE · 기본값 {essentials_search_engine}WOLFRAM_APPID · 기본값 {wolfram_appid}ESSENTIALS_MEMORY_PATH · 기본값 {essentials_memory_path}ESSENTIALS_DOWNLOAD_DIRECTORY · 기본값 {essentials_download_directory}ESSENTIALS_SETTINGS_PATH · 기본값 {essentials_settings_path}메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요
JSON 설정은 아래 “개발자용”에 있어요
Claude Code
claude mcp add --scope user essentials --env ESSENTIALS_SEARCH_API_KEY=your-value --env SERPER_API_KEY=your-value --env SERPAPI_API_KEY=your-value --env TAVILY_API_KEY=your-value -- dnx FieldCure.Mcp.Essentials --yesClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"essentials": {
"command": "dnx",
"args": [
"FieldCure.Mcp.Essentials",
"--yes"
],
"env": {
"ESSENTIALS_SEARCH_API_KEY": "your-value",
"SERPER_API_KEY": "your-value",
"SERPAPI_API_KEY": "your-value",
"TAVILY_API_KEY": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"essentials": {
"command": "dnx",
"args": [
"FieldCure.Mcp.Essentials",
"--yes"
],
"env": {
"ESSENTIALS_SEARCH_API_KEY": "your-value",
"SERPER_API_KEY": "your-value",
"SERPAPI_API_KEY": "your-value",
"TAVILY_API_KEY": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"essentials": {
"type": "stdio",
"command": "dnx",
"args": [
"FieldCure.Mcp.Essentials",
"--yes"
],
"env": {
"ESSENTIALS_SEARCH_API_KEY": "your-value",
"SERPER_API_KEY": "your-value",
"SERPAPI_API_KEY": "your-value",
"TAVILY_API_KEY": "your-value"
}
}
}
}ESSENTIALS_SEARCH_ENGINE envESSENTIALS_SEARCH_API_KEY 비밀 필수 envSERPER_API_KEY 비밀 필수 envSERPAPI_API_KEY 비밀 필수 envTAVILY_API_KEY 비밀 필수 envWOLFRAM_APPID envESSENTIALS_MEMORY_PATH envESSENTIALS_DOWNLOAD_DIRECTORY envESSENTIALS_SETTINGS_PATH env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 16일 점검
레지스트리 이름이 GitHub 계정 fieldcure 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
코드 마지막 변경: 6개월 전
MIT 사용
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: ESSENTIALS_SEARCH_API_KEY, SERPER_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 6개월 전 변경됐고, 최신 버전(2.6.1)은 6개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 .NET도 있어야 해요.
같은 카테고리에는: OpenSEO, Exa, Mockserver, Microsoft Learn MCP, Docs
같은 카테고리, 다른 제작자, 명령 확인 완료. 공식이 먼저, 그다음 스타 순.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Keyword research, site audits, rank tracking and AI visibility for your AI agent.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Mock, record/replay, verify and chaos-test any HTTP, REST, gRPC or LLM dependency over MCP.
Official Microsoft Learn MCP Server – real-time, trusted docs & code samples for AI and LLMs.
Search and read Empryo's documentation. Read-only, no auth, no local access.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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.dotnet tool install -g FieldCure.Mcp.Essentials
After installation, the fieldcure-mcp-essentials command is available globally.
git clone https://github.com/fieldcure/fieldcure-mcp-essentials.git
cd fieldcure-mcp-essentials dotnet build
| 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.
{
"url": "https://example.com/report.pdf" }
{
"url": "https://example.com/report.pdf", "save_path": "reports/report.pdf", "overwrite": false }
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 |
# Use Serper
fieldcure-mcp-essentials --search-engine serper --search-api-key YOUR_KEY
fieldcure-mcp-essentials --search-engine tavily --search-api-key YOUR_KEY
ESSENTIALS_SEARCH_ENGINE=serper ESSENTIALS_SEARCH_API_KEY=xxx fieldcure-mcp-essentials
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:
// Korean results
{ "query": "서울 맛집", "region": "ko-kr" }
// US English results { "query": "best restaurants NYC", "region": "en-us" }
// Global (default) { "query": "Python tutorial" }
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.
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 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.
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.
'France population', not 'how many people live in France')6*10^14, never 6e14x, y, n)'speed of light', not 299792458)RECOMMENDED / AVOID hints steer the model — simple arithmetic to run_javascript, general web queries to web_search, subjective/news questions away from Wolfram