read_fileLABSCO SUMMARY
Grep for when you know the name; semantic search for when you do not.
Most code servers give you text search and stop there, which fails exactly when you are new to a codebase and cannot name the thing you want. Building the vector index is opt-in rather than automatic, so you pay that cost only on the repositories where it earns its keep — and the path and extension whitelist means pointing it at a working directory does not also hand over your .git or your virtualenv.
What it is
A code analysis and editing server built on the Moatless tooling. Alongside ordinary file reads, writes and grep, it can build a vector index of the codebase and answer questions about it by meaning rather than by string match. The README is in Chinese, with English reference pages under docs/.
What you get
read_filewithstart_lineandend_line, pluswrite_fileandstring_replacefor editslist_filesandfind_filesfor navigation,grepfor text search,workspace_infofor project statesemantic_searchtakes a plain-languagequery— "user authentication and login validation" — and returns matching codefind_classandfind_functionlocate definitions by name, narrowed with afile_patternbuild_vector_indexbuilds the index only when you ask, so startup stays fast- Tree-sitter parsing behind the structural tools, and FAISS behind the similarity search
- A whitelist security model: only known code, config and documentation extensions are readable,
../traversal is blocked, andnode_modules,.venv,__pycache__and.gitare off limits
Requirements
Python 3.10+, run through the Industrial_Software_MCP entry point against a workspace directory. Semantic search needs embeddings — Jina AI's 1024-dimension model is the recommended path, and OpenAI embeddings are supported but deprecated — The key is optional and passed with --jina-api-key: without one, semantic search falls back to keyword search, and the file and grep tools never use it. Limits are tunable: MOATLESS_MAX_FILE_SIZE defaults to a 10MB ceiling, MOATLESS_MAX_SEARCH_RESULTS and MOATLESS_SEARCH_TIMEOUT bound searches. MIT licensed, version 0.1.0.
Setup effort
Build from source — git clone https://github.com/TwT23333/mcp.git
USE CASES
Finding where something happens in an unfamiliar repository
Describe the behaviour in plain language and get the relevant code back.
Tracking down a definition
Look the class or function up by name, narrowed to a file pattern when the name is common.
Making a small, precise edit
Read the exact line range, then replace the string in place rather than rewriting the file.
13 tools
Listed in project docs. Your client may show a different list.
write_filelist_filesstring_replacegrepfind_filesworkspace_infosemantic_searchfind_classfind_functionview_codecode_indexbuild_vector_indexBEFORE YOU INSTALL
What to know first
Tools you get
13 tools named in the project's documentation. read_file, write_file, list_files, string_replace, grep, find_files and workspace_info are documented with parameters; semantic_search, find_class, find_function and build_vector_index appear only in examples.
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/TwT23333/mcp.git
cd mcp
pip install -e .
Industrial_Software_MCP --helpMCP Clients
Claude Desktop
{
"mcpServers": {
"moatless": {
"command": "Industrial_Software_MCP",
"args": [
"--workspace",
"<YOUR_PATH_TO_PROJECT>"
],
"env": {
"MOATLESS_MAX_FILE_SIZE": "10485760",
"MOATLESS_MAX_SEARCH_RESULTS": "100"
}
}
}
}Cline
{
"mcpServers": {
"moatless": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "Industrial_Software_MCP",
"args": [
"--workspace",
"${workspaceFolder}"
],
"transportType": "stdio",
"alwaysAllow": []
}
}
}