TOOL4LM is a versatile MCP server that enhances local or remote Large Language Models with a comprehensive suite of utility tools:
Mathematical Computing: Evaluate mathematical expressions with adjustable precision using
calc.evalMulti-Engine Web Search: Conduct searches across multiple engines like SearXNG and DuckDuckGo with
web.searchWeb Content Access: Fetch web pages securely with size/time limits (
web.fetch) and extract readable content from HTML (web.read)Local Document Management: Search within sandboxed directories (
doc.find), read various file formats including text, markdown, HTML, and PDF (doc.read), and build/manage search indexes (index.build)Academic Research: Search scholarly papers on platforms like arXiv and Crossref (
sch.search), retrieve detailed metadata using DOIs or arXiv IDs (sch.get)Wikipedia Integration: Search Wikipedia titles (
wiki.search) and retrieve article summaries (wiki.get)
All tools support both dot notation and underscore aliases (e.g., calc.eval or calc_eval) for flexible integration.
Enables searching and retrieving academic papers and metadata from arXiv preprint repository
Provides access to academic paper metadata and information through DOI (Digital Object Identifier) lookups via Crossref
Enables web search functionality through DuckDuckGo's search engine with support for deduplication and result filtering
Provides web search capabilities through SearXNG metasearch engine instances with configurable endpoints
Allows searching Wikipedia articles and retrieving article summaries with multi-language support
TOOL4LM — Multi-Tool MCP Server for Local LMs
All-in-one tools to supercharge your local or remote LLMs.
Search smarter. Calculate faster. Summarize better.
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) |
⇄
| Tính toán cục bộ |
|
⇄
| Tìm web đa engine |
|
⇄
| Tải 1 URL (HTML/binary) |
|
⇄
| Trích văn bản “đọc được” |
|
⇄
| Tìm trong thư mục sandbox |
|
⇄
| Đọc 1 file trong sandbox |
|
⇄
| Build chỉ mục tài liệu |
|
⇄
| Tìm bài/paper/DOI |
|
⇄
| Lấy metadata paper |
|
⇄
| Tìm tiêu đề Wikipedia |
|
⇄
| Lấy summary Wikipedia |
|
Đã bật
openWorldHintnê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
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:
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/searchcủ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
☕ Ủng hộ
Nếu bạn thấy dự án hữu ích, có thể ủng hộ mình qua PayPal:
hoặc bấm nút bên dưới: