searchDocumentsLABSCO SUMMARY
Search then fetch, which is the right shape for an archive.
Pulling whole documents into a model is expensive and mostly wasted, so splitting the job — a filtered search that returns candidates, then a separate call for the one you want — keeps the context spend proportional to the answer. Semantic mode is what makes the search worth the round trip, since archive queries are usually about a topic rather than a filename. There is a connection test script, which is more than most integrations of this shape ship with.
What it is
A bridge to LDIMS, a document management system, with two tools: search and fetch. The search accepts a plain-language query and narrows with filters for date range, document type and submitter, in either exact or semantic mode; the second tool returns the extracted content of a document you have located. It authenticates with a long-lived token you generate yourself.
What you get
searchDocumentstakes aqueryplus optionalmaxResultsandfilters, and supports semantic as well as exact search- Filters for
dateFrom,dateTo,documentTypeandsubmitter, so a search can be pinned to a period or a person get_document_file_contentreturns the extracted content of a specific document- An MCP resource alongside the tools for clients that read resources directly
Requirements
A reachable LDIMS backend and an auth token. Generate one with node scripts/get-long-term-token.js for a long-lived token, or get-fresh-token.js for a short one, then npm run build. Two modes with separate credential paths: in MCP mode the token comes from the client config alongside LDIMS_API_BASE_URL and LDIMS_API_VERSION; in HTTP mode it comes from LDIMS_AUTH_TOKEN in .env and you run npm run http. node scripts/test-api-connection.js checks health, search and content retrieval before you wire anything up.
Setup effort
Build from source — git clone https://github.com/windhood-jza/ldims-backend-mcp.git
USE CASES
Finding a document nobody can name precisely
Describe what it was about and search semantically rather than by title.
Narrowing to a period or a person
Filter the search by date range, document type or who submitted it.
Reading the document once you have found it
Fetch its extracted content instead of downloading and opening the file.
Answering a question from across several documents
Search, then pull the content of the few that matter and let the model compare them.
2 tools
Listed in project docs. Your client may show a different list.
get_document_file_contentBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation.
Requires
LDIMS_AUTH_TOKEN in your environment
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
Prerequisite: the LDIMS backend (https://github.com/windhood-jza/LDIMS) running at http://localhost:3000 — this server searches it, and the token script below logs in to it
git clone https://github.com/windhood-jza/ldims-backend-mcp.git
cd ldims-backend-mcp
npm install
node scripts/get-long-term-token.js
npm run buildMCP Clients
Claude Desktop, Cursor
{
"mcpServers": {
"ldims": {
"command": "node",
"args": [
"<YOUR_PATH_TO_LDIMS_BACKEND_MCP>/dist/index.js"
],
"env": {
"LDIMS_API_BASE_URL": "http://localhost:3000",
"LDIMS_API_VERSION": "v1",
"LDIMS_AUTH_TOKEN": "<YOUR_LDIMS_AUTH_TOKEN>",
"NODE_ENV": "production"
}
}
}
}