create_indexLABSCO SUMMARY
Search infrastructure set up by conversation.
Standing up an index normally means a schema file, a key, an ingest script and four terminal windows. Here it is a description — the schema, the dataset, the read key — and the same connection then tells you what the index actually holds.
What it is
An administrative surface for a Searchcraft cluster: indexes created and modified, documents ingested and deleted, index statistics read, and the federations, access keys, search and analytics around them.
What you get
- An index created with a schema, then updated, patched or deleted
- The index list, one index's schema, and statistics for one index or across all of them
- Documents added to an index
- A document retrieved by ID
- Documents deleted by ID, by field, by query, or all of them at once
- Federations, access keys, search and analytics reachable over the same connection
Requirements
A recent Node.js, and a Searchcraft cluster to point at with credentials for it. Creating an index that already exists empties it, so check the index list before re-running a setup.
Setup effort
Build from source — git clone https://github.com/searchcraft-inc/searchcraft-mcp-server.git
USE CASES
Standing up a new search index
Create it with the schema you describe, then ingest the documents in the same session.
Checking what an index actually holds
Read its schema and its statistics rather than assuming the ingest worked.
Clearing bad data out
Delete by query or by field so a botched import goes without taking the index with it.
Changing a schema after launch
Patch or update the index definition instead of rebuilding from scratch.
Auditing a cluster
List every index and read the statistics across all of them in one pass.
Retiring an index for good
Empty it, then delete it, once the app that used it is gone.
48 tools
Listed in project docs. Your client may show a different list.
delete_indexget_all_index_statsget_index_schemaget_index_statslist_all_indexespatch_indexupdate_indexadd_documentsdelete_all_documentsdelete_document_by_iddelete_documents_by_fielddelete_documents_by_queryget_document_by_idcreate_federationdelete_federationget_federation_detailsget_federation_statsget_organization_federationslist_all_federationsupdate_federationcreate_keydelete_all_keysdelete_keyget_application_keysget_federation_keysget_key_detailsget_organization_keyslist_all_keysupdate_keyadd_stopwordsdelete_all_stopwordsdelete_stopwordsget_index_stopwordsadd_synonymsdelete_all_synonymsdelete_synonymsget_index_synonymsget_measure_conversionget_measure_summaryget_search_resultsget_prelim_search_dataget_searchcraft_statusanalyze_json_from_fileanalyze_json_from_urlgenerate_searchcraft_schemacreate_index_from_jsoncreate_vite_appBEFORE YOU INSTALL
What to know first
Tools you get
48 tools named in the project's documentation.
Requires
- CORE_API_KEY in your environment
- ENDPOINT_URL in your environment
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/searchcraft-inc/searchcraft-mcp-server.git
cd searchcraft-mcp-server
yarn
yarn buildCreate a .env file at the project's root with ENDPOINT_URL (your Searchcraft cluster endpoint) and CORE_API_KEY — see .env.example.
MCP Clients
Claude Desktop — stdio
{
"mcpServers": {
"searchcraft": {
"command": "node",
"args": [
"<YOUR_PATH_TO_SEARCHCRAFT_MCP_SERVER>/dist/stdio-server.js"
],
"env": {
"ENDPOINT_URL": "https://<YOUR_CLUSTER>.searchcraft.io",
"CORE_API_KEY": "<YOUR_CORE_API_KEY>"
}
}
}
}<YOUR_PATH_TO_SEARCHCRAFT_MCP_SERVER> is the absolute path of the clone you built. The two env values are your Searchcraft cluster endpoint and API key — the same two the Claude Code command passes with --env.
Claude Code
claude mcp add searchcraft \
--env ENDPOINT_URL=https://<YOUR_CLUSTER>.searchcraft.io \
--env CORE_API_KEY=<YOUR_CORE_API_KEY> \
-- node <YOUR_PATH_TO_SEARCHCRAFT_MCP_SERVER>/dist/stdio-server.jsClaude Desktop — HTTP
From your built clone, start the HTTP server (it listens on port 3100):
yarn start{
"mcpServers": {
"searchcraft": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3100/mcp"
]
}
}
}Open WebUI
From your built clone, start the HTTP server (it listens on port 3100):
yarn startIn the Searchcraft pipeline's valves in Open WebUI, set:
{
"MCP_SERVER_URL": "http://localhost:3100/mcp",
"ENDPOINT_URL": "<YOUR_ENDPOINT_URL>",
"CORE_API_KEY": "<YOUR_CORE_API_KEY>"
}Docker
From your clone, build the image first:
docker build --load -t searchcraft-mcp-server .docker run -it -p 8000:8000 \
--name searchcraft-mcp-server \
-e ENDPOINT_URL="https://<YOUR_CLUSTER>.searchcraft.io" \
-e CORE_API_KEY="<YOUR_CORE_API_KEY>" \
searchcraft-mcp-serverThe container serves the HTTP transport on port 8000, not the 3100 that yarn start uses: point your client at http://localhost:8000/mcp.