https://github.com/artemeon/mantis2github
A small CLI tool to create a GitHub issue out of a Mantis issue.
https://github.com/artemeon/mantis2github
cli github issue issue-management issues mantis mantisbt synchronization ticket ticketing-system
Last synced: 14 days ago
JSON representation
A small CLI tool to create a GitHub issue out of a Mantis issue.
- Host: GitHub
- URL: https://github.com/artemeon/mantis2github
- Owner: artemeon
- License: mit
- Created: 2021-09-24T09:37:27.000Z (over 4 years ago)
- Default Branch: dev/3.x
- Last Pushed: 2025-06-07T09:54:34.000Z (about 1 year ago)
- Last Synced: 2026-03-11T13:30:14.002Z (3 months ago)
- Topics: cli, github, issue, issue-management, issues, mantis, mantisbt, synchronization, ticket, ticketing-system
- Language: PHP
- Homepage: https://packagist.org/packages/artemeon/mantis2github
- Size: 177 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Mantis 2 GitHub Connector
[](https://packagist.org/packages/artemeon/mantis2github)

[](https://packagist.org/packages/artemeon/mantis2github)
[](https://packagist.org/packages/artemeon/mantis2github)
A small CLI tool to create a GitHub issue out of a Mantis issue.
Creates cross-references, so links the GitHub issue to mantis and vice versa.
## Installation
```shell
composer global require artemeon/mantis2github
```
## Configuration
When you first installed the package, call the `configure` command. You only need to do this once.
```shell
mantis2github configure
```
The command will direct you through the installation process.
### Quick setup
If you have used a previous version of this package and already have a `config.yaml` file, you can skip the configuration by running:
```shell
mantis2github configure path/to/config.yaml
```
## Usage
```shell
mantis2github [command]
```
### Available Commands
| Command | Description |
|------------------------------|-------------------------------------------------------------------|
| [`sync`](#sync) | Create a GitHub issue from a Mantis issue |
| [`read:github`](#readgithub) | Read details of a GitHub issue |
| [`read:mantis`](#readmantis) | Read details of a Mantis issue |
| [`issues:list`](#issueslist) | Get a list of Mantis Tickets with their associated GitHub Issues. |
#### `sync`
Create a GitHub issue from a list of Mantis issues.
```shell
mantis2github sync ...
```
##### Arguments
| Argument | required | Description |
|----------|----------|------------------|
| `ids` | `true` | Mantis issue ids |
##### Examples
###### Sync a single issue
```shell
mantis2github sync 123
```
###### Sync multiple issues
```shell
mantis2github sync 123 456 789
```
#### `read:github`
Read details of a GitHub issue.
```shell
mantis2github read:github
```
##### Arguments
| Argument | required | Description |
|----------|----------|-----------------|
| `id` | `true` | GitHub issue id |
#### `read:mantis`
Read details of a Mantis issue.
```shell
mantis2github read:mantis
```
##### Arguments
| Argument | required | Description |
|----------|----------|-----------------|
| `id` | `true` | Mantis issue id |
#### `issues:list`
Get a list of Mantis Tickets with their associated GitHub Issues.
```shell
mantis2github issues:list [--output=html]
```
##### Options
| Option | Possible values | Description |
|----------|-----------------|---------------|
| `output` | `html` | Output Format |
## MCP Server
This package ships an [MCP](https://modelcontextprotocol.io) server (`mantis-mcp`) that exposes
Mantis ticket details to LLM-powered clients. It reuses the same `config.yaml` as the CLI, so
running `mantis2github configure` once is enough to make both available.
The server speaks the stdio transport and exposes three tools:
| Tool | Description | Input |
|------------------------------|---------------------------------------------------------------------------------------------------|----------------------------------------------------------------|
| `mantis-issue-details` | Read ticket details (incl. attachment metadata) | `{ "id": }` or `{ "url": "" }` |
| `mantis-issue-attachments` | List attachment metadata (id, filename, size, content type) for a ticket | `{ "id": }` or `{ "url": "" }` |
| `mantis-attachment` | Fetch the bytes of a single attachment. Images come back as inline image content, text as text, everything else as an embedded resource. Files over 10 MB are rejected. | `{ "issue_id": , "file_id": }` |
Textual responses are encoded as [TOON](https://github.com/helgesverre/toon) to keep the LLM context compact.
### Example host configuration
For Claude Desktop (`claude_desktop_config.json`) or any other MCP host that supports stdio servers:
```json
{
"mcpServers": {
"mantis": {
"command": "mantis-mcp"
}
}
}
```
If `mantis-mcp` is not on your `$PATH`, point `command` at the absolute path inside your Composer
`vendor/bin/` (or `~/.composer/vendor/bin/` for a global install).
## License
This project is open-sourced software licensed under the [MIT license](LICENSE).