Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Tool4lm

FreeNot checked

All-in-one MCP server for local LLMs (web/doc/scholar/calc) no API keys required.

GitHubEmbed

About

All-in-one MCP server for local LLMs (web/doc/scholar/calc) no API keys required.

README

Node.js TypeScript License: MIT

All-in-one tools to supercharge your local or remote LLMs.
Search smarter. Calculate faster. Summarize better.

TOOL4LM MCP server

TOOL4LM là một MCP (Model Context Protocol) server viết bằng Node.js/TypeScript giúp bổ sung công cụ cho các mô hình ngôn ngữ chạy cục bộ (LM Studio/Ollama/…): web search, đọc & tóm tắt trang, tìm & đọc tài liệu nội bộ, tra cứu học thuật, và máy tính. Không cần API key mặc định.


✨ Tính năng

  • 🔎 Web Search: tìm nhiều nguồn (SearXNG + DuckDuckGo HTML), khử trùng lặp, trả về tiêu đề + URL + snippet.
  • 🌐 Web Fetch/Read: tải trang có giới hạn kích thước/thời gian (chống SSRF) và trích văn bản “đọc được” để tóm tắt.
  • 📂 Doc Search/Read: tìm & đọc tài liệu trong thư mục sandbox (txt/md/html/pdf). PDF dùng pdf-parse (lazy-load).
  • 📚 Scholar Search/Get: tra cứu học thuật (arXiv + Crossref + Wikipedia) và lấy metadata theo DOI/arXivId.
  • 🧮 Calculator: đánh giá biểu thức với mathjs, hỗ trợ precision (làm tròn).

🧰 Tool & tham số (tên chính ⇄ alias gạch dưới)

Tool Khi nào dùng Tham số (shape)
calc.eval ⇄ calc_eval Tính toán cục bộ { expr: string, precision?: number }
web.search ⇄ web_search Tìm web đa engine { q: string, max?: number, lang?: string, site?: string, engines?: string[], k?: number, limit?: number }
web.fetch ⇄ web_fetch Tải 1 URL (HTML/binary) { url: string, timeout?: number, max_bytes?: number, headers?: Record<string,string> }
web.read ⇄ web_read Trích văn bản “đọc được” { url: string, html?: string }
doc.find ⇄ doc_find Tìm trong thư mục sandbox { q: string, top?: number, limit?: number }
doc.read ⇄ doc_read Đọc 1 file trong sandbox { path: string }
index.build ⇄ index_build Build chỉ mục tài liệu { root?: string }
sch.search ⇄ sch_search Tìm bài/paper/DOI { q: string, top?: number, limit?: number }
sch.get ⇄ sch_get Lấy metadata paper { doi?: string, arxivId?: string, url?: string }
wiki.search ⇄ wiki_search Tìm tiêu đề Wikipedia { q: string, lang?: string }
wiki.get ⇄ wiki_get Lấy summary Wikipedia { title: string, lang?: string }

Đã bật openWorldHint nên nếu model lỡ thêm field lạ host vẫn chấp nhận; nhưng khuyến nghị dùng đúng tham số như bảng để ổn định.


🔧 Cài đặt & chạy

npm install
npm run build
npm start

Khi chạy thành công sẽ in:
[TOOL4LM] started. Sandbox: <đường_dẫn_sandbox>


⚙️ Cấu hình MCP (LM Studio)

Thêm vào mcp.json của LM Studio:

{
  "mcpServers": {
    "TOOL4LM": {
      "command": "node",
      "args": ["--enable-source-maps", "C:/path/to/tool4lm/dist/server.js"],
      "type": "mcp",
      "env": {
        "SANDBOX_DIR": "C:/path/to/your_docs",
        "SEARXNG_ENDPOINTS": "https://searx.be/search,https://searx.tiekoetter.com/search",
        "ENGINE_ORDER": "searxng,duckduckgo",
        "LANG_DEFAULT": "vi",
        "REGION_DEFAULT": "vn",
        "MAX_FETCH_BYTES": "1048576",
        "FETCH_TIMEOUT_MS": "8000"
      }
    }
  }
}

Trên Windows, nên dùng / trong JSON để tránh escape \.


📝 Ví dụ luồng sử dụng

Tra cứu web có trích dẫn → web.search → web.fetch → web.read → tóm tắt + đính kèm URL.
Tài liệu nội bộ → doc.find → doc.read → tóm tắt + trích đoạn (ghi kèm path).
Học thuật → sch.search → sch.get theo DOI/arXivId.
Tính toán → calc.eval với ^/pow(a,b) (hoặc đã normalize **).


🌍 Biến môi trường

  • SANDBOX_DIR — thư mục tài liệu (mặc định: ./sandbox).
  • SEARXNG_ENDPOINTS — danh sách endpoint /search của SearXNG, cách nhau dấu phẩy.
  • ENGINE_ORDER — ví dụ searxng,duckduckgo.
  • LANG_DEFAULT, REGION_DEFAULT — gợi ý ngôn ngữ/khu vực khi tìm web.
  • MAX_FETCH_BYTES — giới hạn dung lượng tải trang.
  • FETCH_TIMEOUT_MS — timeout tải trang (ms).

🤝 Đóng góp

Issues/PRs rất hoan nghênh! Nếu thấy bug/đề xuất, mở issue giúp mình nhé.


📜 Giấy phép

MIT


☕ Ủng hộ

Nếu bạn thấy dự án hữu ích, có thể ủng hộ mình qua PayPal:

Donate with PayPal

hoặc bấm nút bên dưới:

Donate via PayPal

from github.com/khanhs-234/tool4lm

Installing Tool4lm

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/khanhs-234/tool4lm

FAQ

Is Tool4lm MCP free?

Yes, Tool4lm MCP is free — one-click install via Unyly at no cost.

Does Tool4lm need an API key?

No, Tool4lm runs without API keys or environment variables.

Is Tool4lm hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Tool4lm in Claude Desktop, Claude Code or Cursor?

Open Tool4lm on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Tool4lm with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs