mcp-mantis
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MANTIS_TOKEN | Yes | API token from MantisBT (My Account → API Tokens → Create). | |
| MANTIS_READONLY | No | Set to 'true' to disable write tools. Default false. | false |
| MANTIS_SEARCH_DIR | No | Index directory for semantic search (optional). | |
| MANTIS_TIMEOUT_MS | No | Timeout in milliseconds for Mantis API calls (optional). | |
| MANTIS_SEARCH_MODEL | No | Embedding model for semantic search (optional). | |
| MANTIS_MAX_PAGE_SIZE | No | Maximum page size for listing issues (optional). | |
| MANTIS_REST_BASE_URL | Yes | Base URL of the MantisBT REST API (must include index.php if URL rewriting is disabled). | |
| MANTIS_SEARCH_ENABLED | No | Set to 'true' to enable semantic search tools. Default true. | true |
| MANTIS_SEARCH_THREADS | No | Number of ONNX threads for semantic search (optional). | |
| MANTIS_METADATA_TTL_MS | No | Metadata cache TTL in milliseconds (optional). | |
| MANTIS_DEFAULT_PAGE_SIZE | No | Default page size for listing issues (optional). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mantis_whoamiA | Returns the authenticated Mantis user (id, name, access level, accessible projects). Use it to verify the API token works. |
| mantis_list_projectsA | Lists all projects accessible to the token owner, including nested versions, categories and custom field definitions. |
| mantis_get_projectA | Returns a single project by id with its versions, categories and custom fields. |
| mantis_list_project_usersA | Lists the members of a project (id, login name, access level). Use it to find valid handler names for assignment. |
| mantis_get_enumsA | Returns the common Mantis enumerations (status, priority, severity, resolution, reproducibility, etc.) as {id,name,label} lists. This instance is localized (Spanish names) — use it to map issue status/priority codes and to learn valid names for status changes. |
| mantis_get_configA | Reads arbitrary Mantis configuration options exposed to the REST API, e.g. ["status_enum_string","bug_resolved_status_threshold"]. |
| mantis_list_filtersA | Lists stored filters, optionally scoped to a project. Pass a filter id to mantis_list_issues to run it. |
| mantis_get_issueA | Returns one issue by id with every field: description, steps to reproduce, notes, attachments, relationships, custom fields and history. Notes are always included. |
| mantis_get_issuesA | Fetch several issues by id in one call (max 5 concurrent). Missing/inaccessible ids return null at their position instead of failing the whole call. Includes requested/found/failed counters. |
| mantis_list_issuesA | List issues (newest id first). Returns a LIGHTWEIGHT summary per issue by default (id, summary, status, handler, reporter, priority, dates…) — call mantis_get_issue for notes/attachments/history. Filter server-side by project_id / stored filter_id. The status, assigned_to, reporter_id and date filters are applied client-side (the REST API lacks them); when active, multiple pages are scanned (up to 500 issues). Use status="open" for all not-yet-resolved issues. Omit project_id to span all projects. |
| mantis_get_issue_attachmentA | Downloads an attachment of an issue. Image attachments are returned as a viewable image; other files as base64 with metadata. Find file ids in an issue's "attachments" array. |
| mantis_update_issueA | Partial update of an issue (PATCH). The "fields" object accepts any of:
When resolving an issue set BOTH status and resolution (or use mantis_resolve_issue). Use "note" to append a comment (e.g. the reason for the change) in the same call. Use dry_run to preview the payload. |
| mantis_resolve_issueA | Marks an issue as resolved by setting BOTH status and resolution in one call (avoids leaving resolution as "open"). Defaults: status="resuelta", resolution="fixed" — override with names valid on this instance (see mantis_get_enums). Optionally append a note. |
| mantis_assign_issueA | Assigns an issue to a handler (by login name or user id) and optionally changes its status in the same call. Optionally append a note. |
| mantis_add_noteA | Adds a note (comment) to an issue. Use private=true for an internal note visible only to developers/managers. To change a field and comment in one call, use mantis_update_issue with its "note" parameter instead. |
| mantis_add_relationshipA | Links two issues. type is one of: related_to, duplicate_of, has_duplicate, depends_on (parent_of), blocks (child_of) — or a numeric type id. |
| mantis_remove_relationshipA | Removes a relationship from an issue by relationship id. |
| mantis_search_issuesA | Search issues by natural-language meaning (not keywords), useful to find similar/duplicate incidents. The index must be built first with mantis_rebuild_search_index. Without "select" only id+score are returned. |
| mantis_search_index_statusA | Fill level of the semantic index: indexed vs. total issues, plus last sync timestamp. |
| mantis_rebuild_search_indexA | Builds/updates the semantic search index from Mantis issues. Use full=true to clear and rebuild from scratch. First run downloads the embedding model (may take a minute). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gcorroto/mcp-mantis'
If you have feedback or need assistance with the MCP directory API, please join our Discord server