Redmine in Claude, ChatGPT and any MCP client. For your whole team.
Self-hosted project management: issues, projects, versions, time tracking, wiki. One token in Loopthink, one login per person, roles per tool and an audit entry for every call.
Free for 2 connectors, no card · Pro €19 · EU-hosted · 17 read tools, 4 write tools off by default
“Which issues for version 3.2 of the Shopsystem project are still open, grouped by assignee?”
14 open issues for version 3.2, grouped by assignee:
| Assignee | Open | In progress | Highest priority |
|---|---|---|---|
| M. Berger | 6 | 3 | Urgent |
| S. Keller | 5 | 2 | High |
| T. Novak | 3 | 1 | Normal |
- read-only
- masked
One token in, the tools come out.


Redmine holds the engineering memory of a company: the projects, their issues with every comment and status change, the versions and milestones, the logged hours and the wiki. The questions are simple, "what is still blocking the 3.2 release", "how many hours did we spend on the migration project in Q3", but today they take the right project, a custom query and a spreadsheet export of the time report.
With the Redmine connector, Project Managers, Developers and Management ask in Claude or ChatGPT and get the answer from the live instance. Loopthink holds one Redmine API access key, every person signs in with their own identity, and every call is logged under their name. The key never reaches the AI client. If your Redmine is not reachable from the internet, the Loopthink Runner inside that network makes the connection.
Seventeen read tools cover projects, issues and their journals, full-text search, statuses, trackers, priorities, saved queries, versions, memberships, time entries and wiki pages. The four write tools, creating an issue, updating an issue, adding a comment and logging time, stay off until you switch them on for a role.
- Project Manager
“Which issues for version 3.2 of the Shopsystem project are still open, grouped by assignee?”
Answered by
list_issues - Management
“How many hours were logged on the SAP Migration project between July and September, by activity?”
Answered by
list_time_entries - Developer
“Summarise the discussion on issue #10342 and tell me what was decided.”
Answered by
get_issue - Developer
“Where in the wiki is the deployment checklist for the staging server?”
Answered by
search - Project Manager
“Which versions of the Shopsystem project are open, and which ones are overdue?”
Answered by
list_project_versions - Developer
“Add a comment to #10342: "Reproduced on staging, fix is in branch hotfix/10342."”
Answered by
add_issue_comment
What the Redmine connector can do.
| Tool | What it does | Access | Default |
|---|---|---|---|
| get_current_user | Returns the user behind the API key (id, login, firstname, lastname, mail, admin flag). Use to test the connection and to get your own user id; most filters also accept 'me' dir… | Read | On |
| list_projects | Lists the projects the user can see (id, identifier, name, description, parent, status, is_public, created_on). Paged with offset/limit (max 100); the response carries total, so… | Read | On |
| get_project | Returns one project by numeric id or identifier, with description, parent, homepage, custom fields and optional trackers, categories and enabled modules. | Read | On |
| list_issues | Lists issues (tickets) with filters: project, tracker, status, assignee, version, parent, saved query, created/updated dates. By default only open issues are returned; pass stat… | Read | On |
| get_issue | Returns one issue with description, status, priority, assignee, version, custom fields and, by default, its journals (comments and change history), relations and children. Use a… | Read | On |
| search | Full-text search across issues, wiki pages, news, documents, changesets, messages and projects, like the Redmine search box. Returns id, title, type, url, description and dateti… | Read | On |
| list_issue_statuses | Lists all issue statuses (id, name, is_closed). Use to map status names like 'In Progress' to status_id for list_issues and update_issue. | Read | On |
| list_trackers | Lists all trackers (id, name, default_status), e.g. Bug, Feature, Support. | Read | On |
| list_issue_priorities | Lists issue priorities (id, name, is_default, active). Use to get priority_id for filters and new issues. | Read | On |
| list_time_entry_activities | Lists time entry activities (id, name, is_default), e.g. Development, Design. | Read | On |
| list_queries | Lists the saved issue queries (custom filters) visible to the user: id, name, is_public, project_id. Pass an id as query_id to list_issues to reuse a team's filter such as 'Open… | Read | On |
| list_project_versions | Lists the versions (milestones, releases, sprints) of a project, including shared versions of other projects: id, name, status (open, locked, closed), due_date, description. Use… | Read | On |
| list_project_memberships | Lists the members of a project (users and groups) with their roles. Use to find who works on a project and which user ids can be assigned issues. | Read | On |
| list_users | Lists users of the instance (id, login, firstname, lastname, mail, created_on, last_login_on). Requires an API key of an administrator; for others use list_project_memberships i… | Read | On |
| list_time_entries | Lists logged time (id, project, issue, user, activity, hours, comments, spent_on). Use for timesheets and effort reports: filter by project, user and a date range with from/to (… | Read | On |
| list_wiki_pages | Lists all wiki pages of a project (title, parent, version, created_on, updated_on). Use the title with get_wiki_page. | Read | On |
| get_wiki_page | Returns one wiki page with its full text (Textile or Markdown, as configured), author, version and comments. Use list_wiki_pages first to get the exact title. | Read | On |
| create_issue | WRITE: Creates an issue in a project. Needs project_id and subject; tracker, status and priority fall back to the project defaults. | Write | Off |
| update_issue | WRITE: Changes fields of an existing issue (status, assignee, priority, version, done ratio, dates) and optionally adds a comment in the same step. Only send what should change. | Write | Off |
| add_issue_comment | WRITE: Adds a comment (journal note) to an issue without changing any field. Responds 204 with no body on success. | Write | Off |
| create_time_entry | WRITE: Logs time on an issue or a project. Needs hours and either issue_id or project_id; activity_id is required unless the instance has a default activity (see list_time_entry… | Write | Off |
Write tools are off for every role until you switch them on, one tool for one role. The names are what the model sees; it also gets the full parameter description of each tool.
Getting the Redmine token.
Five minutes, once. Nobody on your team ever sees it.
- 1
As administrator: Administration > Settings > API and tick 'Enable REST web service'. Save.
- 2
Log in as the user Loopthink should act as (ideally a dedicated technical user that is a member of exactly the projects the AI may read).
- 3
Open My account (top right) and click 'Show' under 'API access key' in the right sidebar. If no key exists, click 'Reset' to create one.
- 4
Copy the key and paste it into Loopthink.
- 5
In Loopthink, add Redmine from the catalog and paste the token. It also asks for redmine url. Your team sees the tools a minute later.
Redmine API keys have no scopes: the key acts with the roles and project memberships of its user. Give the technical user a role with only the permissions needed (view issues, view time entries, view wiki; add notes/edit issues/log time only if write tools are enabled). list_users needs an administrator key; avoid an admin key and use list_project_memberships instead.
What we suggest masking in Redmine.
Redmine carries people on every object: the author and assignee of an issue, the login and email of users and project members, the names on time entries and wiki pages, and free text in descriptions, notes and comments. The suggested fields mask names, logins, emails and the free text, and keep subject, status, priority, tracker, dates, hours and done ratio, so a Management role can see that nine issues are still open for 3.2 and 212 hours were logged in Q3 without reading who wrote what.
- firstname
- lastname
- name
- login
- mails
- author
- assigned_to
- user
- description
- notes
- comments
- text
Redmine and Loopthink
- Our Redmine runs in the intranet. Can the connector reach it?
- Yes, through the Loopthink Runner. The Runner is installed inside your network, holds the connection to Redmine and talks outward to Loopthink; nothing in your network has to be opened to the internet. An instance with a public https address connects directly.
- The key has no scopes. How do we limit what the AI can see?
- The key acts with the roles and project memberships of its user. Create a dedicated technical user, give it a role with only the permissions needed (view issues, view time entries, view wiki) and make it a member of exactly the projects the AI may read. Avoid an administrator key: list_users needs one, so most teams leave it out and use list_project_memberships instead.
- Can the AI change issues or log time?
- Only if you switch the write tools on for a role. create_issue, update_issue, add_issue_comment and create_time_entry are off by default, and the technical user also needs the matching Redmine permissions (add notes, edit issues, log time). Every change then runs under the technical user in Redmine, and Loopthink logs which person asked for it.
- Does every team member need their own Redmine account?
- No. Loopthink holds one key or token for Redmine. Your people sign in to Loopthink with their own identity, and every call to Redmine is logged under their name. Seats in Redmine stay where they are today.
- Where does the Redmine key live?
- In Loopthink, encrypted, in the EU. It never reaches the AI client and never reaches the people using the connector. Rotate it in Redmine whenever you like and paste the new one once.
- Can somebody write to Redmine from the chat?
- Not unless you switch it on. Write actions are a separate row in the permission matrix and are off for every role by default. If a role needs one write tool, you grant that one tool to that one role.
- What does the model see?
- The result of the tool call, after masking. Fields you mark as personal, such as emails, names or card details, are masked before the answer travels to the AI client. The model gets the numbers, not the people.
- What does it cost?
- Free for one person and two connectors, no card. Pro is €19 a month for up to five people and every connector on the site, with roles, field masking and a 30-day audit. Team is €49 for ten people and adds your own REST APIs and SQL databases, your own domain and your own identity provider. No call needed.
Stuck, or a tool you need is missing? A person who knows this connector answers within one working day.