Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for GroupDocs.Search — index documents and run full-text search via AI agents.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
GROUPDOCS_MCP_STORAGE_PATH, GROUPDOCS_MCP_OUTPUT_PATH, GROUPDOCS_MCP_INDEX_PATH, GROUPDOCS_LICENSE_PATH, GROUPDOCS_METERED_PUBLIC_KEY, GROUPDOCS_METERED_PRIVATE_KEYต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"groupdocs-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GROUPDOCS_MCP_STORAGE_PATH",
"-e",
"GROUPDOCS_MCP_OUTPUT_PATH",
"-e",
"GROUPDOCS_MCP_INDEX_PATH",
"-e",
"GROUPDOCS_LICENSE_PATH",
"-e",
"GROUPDOCS_METERED_PUBLIC_KEY",
"-e",
"GROUPDOCS_METERED_PRIVATE_KEY",
"ghcr.io/groupdocs-search/search-net-mcp:26.10.1"
],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_MCP_OUTPUT_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_MCP_INDEX_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_LICENSE_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_METERED_PUBLIC_KEY": "ใส่ค่าของคุณ",
"GROUPDOCS_METERED_PRIVATE_KEY": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add groupdocs-search --env GROUPDOCS_MCP_STORAGE_PATH='ใส่ค่าของคุณ' --env GROUPDOCS_MCP_OUTPUT_PATH='ใส่ค่าของคุณ' --env GROUPDOCS_MCP_INDEX_PATH='ใส่ค่าของคุณ' --env GROUPDOCS_LICENSE_PATH='ใส่ค่าของคุณ' --env GROUPDOCS_METERED_PUBLIC_KEY='ใส่ค่าของคุณ' --env GROUPDOCS_METERED_PRIVATE_KEY='ใส่ค่าของคุณ' -- docker run -i --rm -e GROUPDOCS_MCP_STORAGE_PATH -e GROUPDOCS_MCP_OUTPUT_PATH -e GROUPDOCS_MCP_INDEX_PATH -e GROUPDOCS_LICENSE_PATH -e GROUPDOCS_METERED_PUBLIC_KEY -e GROUPDOCS_METERED_PRIVATE_KEY ghcr.io/groupdocs-search/search-net-mcp:26.10.1เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"groupdocs-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GROUPDOCS_MCP_STORAGE_PATH",
"-e",
"GROUPDOCS_MCP_OUTPUT_PATH",
"-e",
"GROUPDOCS_MCP_INDEX_PATH",
"-e",
"GROUPDOCS_LICENSE_PATH",
"-e",
"GROUPDOCS_METERED_PUBLIC_KEY",
"-e",
"GROUPDOCS_METERED_PRIVATE_KEY",
"ghcr.io/groupdocs-search/search-net-mcp:26.10.1"
],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_MCP_OUTPUT_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_MCP_INDEX_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_LICENSE_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_METERED_PUBLIC_KEY": "ใส่ค่าของคุณ",
"GROUPDOCS_METERED_PRIVATE_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"groupdocs-search": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GROUPDOCS_MCP_STORAGE_PATH",
"-e",
"GROUPDOCS_MCP_OUTPUT_PATH",
"-e",
"GROUPDOCS_MCP_INDEX_PATH",
"-e",
"GROUPDOCS_LICENSE_PATH",
"-e",
"GROUPDOCS_METERED_PUBLIC_KEY",
"-e",
"GROUPDOCS_METERED_PRIVATE_KEY",
"ghcr.io/groupdocs-search/search-net-mcp:26.10.1"
],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_MCP_OUTPUT_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_MCP_INDEX_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_LICENSE_PATH": "ใส่ค่าของคุณ",
"GROUPDOCS_METERED_PUBLIC_KEY": "ใส่ค่าของคุณ",
"GROUPDOCS_METERED_PRIVATE_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
GROUPDOCS_MCP_STORAGE_PATH envGROUPDOCS_MCP_OUTPUT_PATH envGROUPDOCS_MCP_INDEX_PATH envGROUPDOCS_LICENSE_PATH envGROUPDOCS_METERED_PUBLIC_KEY envGROUPDOCS_METERED_PRIVATE_KEY envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub groupdocs-search ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (26.10.1) เข้า registry 22 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
MCP server that exposes GroupDocs.Search as AI-callable tools for Claude, Cursor, GitHub Copilot, and other MCP agents. It indexes folders of PDF, Office, email, archive and 70+ other document formats locally, then answers full-text, boolean, phrase, fuzzy and date-range queries over them — documents never leave your machine.
One-click installs pre-fill every supported setting: edit the placeholder host path in
the volume mount after install; an empty GROUPDOCS_LICENSE_PATH runs in evaluation mode.
More clients - ready-made configs for Claude Code, Codex CLI, Visual Studio 2022,
Cursor, Windsurf, Cline, and JetBrains Rider live in
install/generated/.
This product ships via Docker (GHCR) only. The GroupDocs.Search engine DLL is about 200 MiB and ships ONNX Runtime natives, so the packed tool (~281 MiB) exceeds NuGet.org's 250 MB limit — dnx and dotnet tool install are not available for it. When a slimmer engine packs under the limit, the standard NuGet flow returns (see the revert notes in .github/workflows/publish_prod.yml).
docker run --rm -i \
-v $(pwd)/documents:/data \ ghcr.io/groupdocs-search/search-net-mcp:latest
Images are multi-arch (linux/amd64 + linux/arm64), tagged latest plus an immutable version tag per release (e.g. :26.10.1). To pin, replace :latest with the version tag — recommended for shared configs and CI.
The image runs as a non-root user (uid 1654). On Linux a mounted folder keeps its host owner, so a folder you own is read-only inside the container and indexing fails with *"The index folder … is not writable"*. Add --user so the container writes as you:
docker run --rm -i --user "$(id -u):$(id -g)" \
-v $(pwd)/documents:/data \ ghcr.io/groupdocs-search/search-net-mcp:latest
MCP client configs (JSON) do not run a shell, so put the numbers in directly — id -u and id -g print them, typically 1000: "args": ["run", "--rm", "-i", "--user", "1000:1000", "-v", …]. Docker Desktop on Windows and macOS does not need this.
Search is the one stateful server in the GroupDocs MCP family: an index is a persistent, searchable copy of your documents' text that survives restarts. By default it is kept in a .groupdocs-search-index folder inside the documents folder (/data/.groupdocs-search-index in the container), so the one volume mount above is all you need and the index is never indexed itself.
If the documents folder is read-only, keep the index in its own folder:
docker run --rm -i \
-v /path/to/documents:/data:ro \ -v /path/to/index:/index -e GROUPDOCS_MCP_INDEX_PATH=/index \ ghcr.io/groupdocs-search/search-net-mcp:latest
| Tool | Description |
|---|---|
add_to_index | Indexes a file, a folder (recursively), or the whole storage folder. Creates the index on demand. |
search | Finds the documents that match a query, ranked by relevance, with occurrence counts — returned as JSON |
get_text_fragments | Returns the matching passages with surrounding words, so the agent can quote or answer from them |
update_index | Re-reads changed files, adds new files in indexed folders, drops deleted ones |
remove_from_index | Removes an indexed path (a folder or file passed to add_to_index) from the index; files on disk are untouched |
create_index | Creates or opens a named index (contracts, hr/2026), or recreates it empty |
get_index_info | Reports whether an index exists, its document count, indexed paths, version, and the other indexes — as JSON |
get_license_status | Reports the active licensing mode (evaluation / licensed / metered), the engine version, and — under metered — the consumed quantity and credit. Processes no document. |
Paths are always relative to the documents folder (contracts, reports/2026/q3.pdf), and indexes are referred to by name, never by filesystem path. Several named indexes can live side by side.
Query syntax (GroupDocs.Search DSL): single words (invoice); phrases in double quotes ("force majeure" — unquoted multi-word input does not match); AND, OR, NOT and parentheses; ? character wildcards (?ffect, princip?(2~4)); daterange(2026-01-01 ~~ 2026-06-30); number ranges (100 ~~ 500); field prefixes (filename: lease); regular expressions starting with ^; and fuzzy matching via the fuzzy argument.
Indexable formats include PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, ODT/ODS/ODP, RTF, TXT, HTML, EPUB, FB2, EML/EMLX/MSG, PST/OST, ONE and ZIP — including documents inside archives and email attachments. get_index_info with includeSupportedFormats: true lists the engine's full set.
Copy any of these into Claude Desktop, Cursor, or GitHub Copilot Chat after the server is connected.
The MCP server itself is MIT; the underlying GroupDocs.Search engine requires a license for production use. Without one the server runs in evaluation mode, and the limits are counts, not watermarks — results look complete and are not:
evaluation note while this applies.There are two ways to license the server.
License file — mount your GroupDocs.Search.lic (or GroupDocs.Total.lic) into the container and point GROUPDOCS_LICENSE_PATH at it. Works offline.
Metered (pay-per-use) — set both GROUPDOCS_METERED_PUBLIC_KEY and GROUPDOCS_METERED_PRIVATE_KEY. You are billed for what you actually process, which suits AI agents well because their usage is bursty and hard to predict up front. If both a metered key pair and a license file are configured, metered wins and the file is ignored.
Metered mode needs outbound connectivity. Usage is reported to GroupDocs servers, so air-gapped
or firewalled deployments must allow that egress — or use a license file instead.
Call the `get_license_status` tool at any time to see which mode is active, and — under metered — the consumed quantity and remaining credit. It processes no document and changes nothing.
The metered private key is a secret. MCP client configs are plain files on disk, and a project-scoped .mcp.json is committed by convention, so prefer, in order:
launchctl setenv, or launch the client from a terminal.${VAR}; VS Code uses ${env:VAR} and ${input:...}).~/.claude.json) is acceptable for a single developer..mcp.json.For Docker, forward the values without writing them into any file — the names alone, so the keys never appear in the command line:
docker run --rm -i \
-e GROUPDOCS_METERED_PUBLIC_KEY -e GROUPDOCS_METERED_PRIVATE_KEY \ -v /path/to/documents:/data \ ghcr.io/groupdocs-search/search-net-mcp:latest
| Variable | Description | Default |
|---|---|---|
GROUPDOCS_MCP_STORAGE_PATH | Folder with the documents to index; tool paths are relative to it | ./Files (/data in the image) |
GROUPDOCS_MCP_OUTPUT_PATH | *(Optional)* writable folder; indexes go under it when GROUPDOCS_MCP_INDEX_PATH is not set | GROUPDOCS_MCP_STORAGE_PATH |
GROUPDOCS_MCP_INDEX_PATH | *(Optional)* folder that holds the indexes, one sub-folder per index name | /.groupdocs-search-index |
GROUPDOCS_LICENSE_PATH | Path to a GroupDocs license file, as seen inside the container. Ignored when metered keys are set | (evaluation mode) |
GROUPDOCS_METERED_PUBLIC_KEY | Metered (pay-per-use) public key. Needs the private key too; takes precedence over GROUPDOCS_LICENSE_PATH | (unset) |
| GROUPDOCS_METERED_PRIVATE_KEY | Metered priv
ตัดมาแค่ช่วงต้น อ่านต่อใน repo