MantisBT MCP server – manage issues, notes, files, tags, and relationships. With semantic search.
Connect Runs on your machine
claude mcp add mantisbt-mcp-server -e MANTIS_BASE_URL=<MANTIS_BASE_URL> -e MANTIS_API_KEY=<MANTIS_API_KEY> -e MANTIS_USE_INDEX_PHP=<MANTIS_USE_INDEX_PHP> -e MANTIS_CACHE_DIR=<MANTIS_CACHE_DIR> -e MANTIS_CACHE_TTL=<MANTIS_CACHE_TTL> -e TRANSPORT=<TRANSPORT> -e PORT=<PORT> -e MCP_HTTP_HOST=<MCP_HTTP_HOST> -e MCP_HTTP_TOKEN=<MCP_HTTP_TOKEN> -e MCP_HTTP_MAX_BODY_SIZE=<MCP_HTTP_MAX_BODY_SIZE> -e MANTIS_SEARCH_ENABLED=<MANTIS_SEARCH_ENABLED> -e MANTIS_SEARCH_BACKEND=<MANTIS_SEARCH_BACKEND> -e MANTIS_SEARCH_DIR=<MANTIS_SEARCH_DIR> -e MANTIS_SEARCH_MODEL=<MANTIS_SEARCH_MODEL> -e MANTIS_SEARCH_THREADS=<MANTIS_SEARCH_THREADS> -e MANTIS_UPLOAD_DIR=<MANTIS_UPLOAD_DIR> -- npx -y @dpesch/[email protected]
{
"mcpServers": {
"mantisbt-mcp-server": {
"command": "npx",
"args": [
"-y",
"@dpesch/[email protected]"
],
"env": {
"MANTIS_BASE_URL": "<MANTIS_BASE_URL>",
"MANTIS_API_KEY": "<MANTIS_API_KEY>",
"MANTIS_USE_INDEX_PHP": "<MANTIS_USE_INDEX_PHP>",
"MANTIS_CACHE_DIR": "<MANTIS_CACHE_DIR>",
"MANTIS_CACHE_TTL": "<MANTIS_CACHE_TTL>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"MCP_HTTP_HOST": "<MCP_HTTP_HOST>",
"MCP_HTTP_TOKEN": "<MCP_HTTP_TOKEN>",
"MCP_HTTP_MAX_BODY_SIZE": "<MCP_HTTP_MAX_BODY_SIZE>",
"MANTIS_SEARCH_ENABLED": "<MANTIS_SEARCH_ENABLED>",
"MANTIS_SEARCH_BACKEND": "<MANTIS_SEARCH_BACKEND>",
"MANTIS_SEARCH_DIR": "<MANTIS_SEARCH_DIR>",
"MANTIS_SEARCH_MODEL": "<MANTIS_SEARCH_MODEL>",
"MANTIS_SEARCH_THREADS": "<MANTIS_SEARCH_THREADS>",
"MANTIS_UPLOAD_DIR": "<MANTIS_UPLOAD_DIR>"
}
}
}
}
{
"mcpServers": {
"mantisbt-mcp-server": {
"command": "npx",
"args": [
"-y",
"@dpesch/[email protected]"
],
"env": {
"MANTIS_BASE_URL": "<MANTIS_BASE_URL>",
"MANTIS_API_KEY": "<MANTIS_API_KEY>",
"MANTIS_USE_INDEX_PHP": "<MANTIS_USE_INDEX_PHP>",
"MANTIS_CACHE_DIR": "<MANTIS_CACHE_DIR>",
"MANTIS_CACHE_TTL": "<MANTIS_CACHE_TTL>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"MCP_HTTP_HOST": "<MCP_HTTP_HOST>",
"MCP_HTTP_TOKEN": "<MCP_HTTP_TOKEN>",
"MCP_HTTP_MAX_BODY_SIZE": "<MCP_HTTP_MAX_BODY_SIZE>",
"MANTIS_SEARCH_ENABLED": "<MANTIS_SEARCH_ENABLED>",
"MANTIS_SEARCH_BACKEND": "<MANTIS_SEARCH_BACKEND>",
"MANTIS_SEARCH_DIR": "<MANTIS_SEARCH_DIR>",
"MANTIS_SEARCH_MODEL": "<MANTIS_SEARCH_MODEL>",
"MANTIS_SEARCH_THREADS": "<MANTIS_SEARCH_THREADS>",
"MANTIS_UPLOAD_DIR": "<MANTIS_UPLOAD_DIR>"
}
}
}
}
{
"servers": {
"mantisbt-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dpesch/[email protected]"
],
"env": {
"MANTIS_BASE_URL": "<MANTIS_BASE_URL>",
"MANTIS_API_KEY": "<MANTIS_API_KEY>",
"MANTIS_USE_INDEX_PHP": "<MANTIS_USE_INDEX_PHP>",
"MANTIS_CACHE_DIR": "<MANTIS_CACHE_DIR>",
"MANTIS_CACHE_TTL": "<MANTIS_CACHE_TTL>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"MCP_HTTP_HOST": "<MCP_HTTP_HOST>",
"MCP_HTTP_TOKEN": "<MCP_HTTP_TOKEN>",
"MCP_HTTP_MAX_BODY_SIZE": "<MCP_HTTP_MAX_BODY_SIZE>",
"MANTIS_SEARCH_ENABLED": "<MANTIS_SEARCH_ENABLED>",
"MANTIS_SEARCH_BACKEND": "<MANTIS_SEARCH_BACKEND>",
"MANTIS_SEARCH_DIR": "<MANTIS_SEARCH_DIR>",
"MANTIS_SEARCH_MODEL": "<MANTIS_SEARCH_MODEL>",
"MANTIS_SEARCH_THREADS": "<MANTIS_SEARCH_THREADS>",
"MANTIS_UPLOAD_DIR": "<MANTIS_UPLOAD_DIR>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
MANTIS_BASE_URLRequired | Base URL of the MantisBT REST API, e.g. https://your-mantis.example.com/api/rest |
MANTIS_API_KEYRequired, secret | MantisBT API key (Profile → API Tokens in MantisBT) |
MANTIS_USE_INDEX_PHPOptional | Use /api/rest/index.php/ for MantisBT installations without URL rewriting. Detected automatically when MANTIS_BASE_URL ends with /api/rest/index.php |
MANTIS_CACHE_DIROptional | Directory for the metadata cache. Defaults to ~/.cache/mantisbt-mcp; each base URL and API key gets its own subdirectory |
MANTIS_CACHE_TTLOptional | Metadata cache TTL in seconds. Default: 3600 (1 hour) |
TRANSPORTOptional | Transport mode. 'stdio' for local use (default), 'http' for remote/team deployments |
PORTOptional | HTTP port when TRANSPORT=http. Default: 3000 |
MCP_HTTP_HOSTOptional | Bind address when TRANSPORT=http. Default: 127.0.0.1 (local only). Use 0.0.0.0 for Docker/remote. |
MCP_HTTP_TOKENOptional, secret | Bearer token protecting the /mcp endpoint. Required when TRANSPORT=http; the server refuses to start without it |
MCP_HTTP_MAX_BODY_SIZEOptional | Largest accepted /mcp request body in bytes when TRANSPORT=http. Default: 67108864 (64 MB) |
MANTIS_SEARCH_ENABLEDOptional | Enable offline semantic search (requires ~80 MB model download on first use) |
MANTIS_SEARCH_BACKENDOptional | Vector store backend for semantic search. 'vectra' (default, pure JS) or 'sqlite-vec' (faster for >10k issues) |
MANTIS_SEARCH_DIROptional | Directory for the semantic search index. Defaults to the search subdirectory of the instance cache directory; when set, each base URL and API key gets its own subdirectory |
MANTIS_SEARCH_MODELOptional | Hugging Face model for embeddings. Default: Xenova/paraphrase-multilingual-MiniLM-L12-v2 |
MANTIS_SEARCH_THREADSOptional | ONNX inference threads for the embedding model. Default: 1 |
MANTIS_UPLOAD_DIROptional | If set, restricts file uploads to this directory (path traversal protection) |
Details
| Package | @dpesch/[email protected] (NPM, stdio) |
| First published | 13 Nov 2026 |
| Last updated | 13 Nov 2026 |
| Registry name | io.github.dpesch/mantisbt-mcp-server |
More search and web servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
