
TOOL4LM
A multi-tool MCP server that enhances local LLMs with web search, document reading, scholarly research, Wikipedia access, and calculator functions. Provides comprehensive tools for information retrieval and computation without requiring API keys by default.
README
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.
<a href="https://glama.ai/mcp/servers/@khanhs-234/tool4lm"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@khanhs-234/tool4lm/badge" alt="TOOL4LM MCP server" /> </a>
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
☕ Ủ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:
<a href="https://www.paypal.com/paypalme/pooseart" target="_blank"> <img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" alt="Donate via PayPal"> </a>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.