Browse / Support and bookkeeping
Request Tracker
Enterprise ticket tracker with a Builder-shipped MCP server for search, create, reply, and update.
Request Tracker (RT) is Best Practical's GPL ticketing system, in production since 1996 and now at 6.x. Self-hosting is free; Best Practical sells cloud hosting and support. The same org publishes mcp-server-rt, a stdio MCP server that proxies RT's REST 2.0 API so an agent can search with TicketSQL, read history, create and update tickets, and reply to requestors.
- we run a shared support or IT queue by email and want tickets triaged, assigned, and answered from our agent without leaving RT's audit trail
- we already have an RT instance and want Claude or Cursor to search TicketSQL and draft replies as a named user
- MCP server needs RT 6.0+ with REST 2.0 enabled; older RT 4.x/5.x installs must upgrade first
- Everything the agent does is logged as the token's user, including emails sent on replies; a repeated add_reply sends mail again
- Perl stack with a long CPAN dependency install; SELinux default blocks /opt/rt6
- GPL-2.0 copyleft on both RT and the MCP server
Last activity Sep 1, 2026. Fit: adaptable 2, operable 3.
Editions
Free (self-hosted) · Free open source
- Clone
git clone https://github.com/bestpractical/rt - Install
./configure && make install
Cloud Starter · $15 per user/month, annual, 5-user minimum closed source
- HostedOpen the hosted app
Cloud Business · $29 per user/month, annual, 10-user minimum closed source
- HostedOpen the hosted app
Cloud Growth · $39 per user/month, annual closed source
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only4 things to edit
Override defaults in etc/RT_SiteConfig.pm; every setting is documented in etc/RT_Config.pm.in. An SMB sets $rtname, $Organization, $CorrespondAddress, $CommentAddress, $WebDomain, $Timezone, mail delivery ($MailCommand, $SetOutgoingMailFrom), and @Plugins, then builds queues, custom fields, and scrips in the admin UI. For the MCP server, set RT_URL and RT_TOKEN in the client config; the token is created under Settings > Auth Tokens and needs the ManageAuthTokens right.
- Env vars
RT_URLRT_TOKEN- Config files
etc/RT_SiteConfig.pmetc/RT_Config.pm.in- Prompt files
- none
- Accounts you need
- none beyond your own RT instance; Best Practical account only for Cloud editions
Source
- github.com/bestpractical/rt
- GPL-2.0 license
- Last commit Sep 1, 2026
- 1,149 stars
Operable: what an agent can drive
Interface
OfficialMCP serverpublished by the builderlocal
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
- Docs
- github.com/bestpractical/mcp-server-rt
- Tools
search_ticketsget_ticketget_ticket_historyget_transactionget_queuelist_queuesget_queue_fieldslookup_userget_current_userget_ticketsql_grammarcreate_ticketupdate_ticketadd_commentadd_replyget_ticket_attachmentsget_attachmentsave_attachment
Reach
Partial coverage. 6 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Search tickets | Reachable | search_tickets with full TicketSQL; get_ticketsql_grammar for syntax |
| Read a ticket and its history | Reachable | get_ticket, get_ticket_history, get_transaction, attachment tools |
| Create tickets with metadata | Reachable | create_ticket sets status, owner, requestors, due dates, custom fields, custom roles, links |
| Reply to requestors and add internal comments | Reachable | add_reply and add_comment; README example resolves a ticket and notifies the requestor in one step |
| Update status, owner, priority, watchers, links | Reachable | update_ticket |
| Discover queues, custom fields, and users | Reachable | list_queues, get_queue, get_queue_fields, lookup_user |
| Dashboards, charts, and reports | Not reachable | no dashboard or chart tool in the MCP tool table |
| Track assets (RT Assets) | Not reachable | no asset tools; MCP tool table is ticket, queue, user, attachment only |
| Configure scrips and automation | Not reachable | administration is not in the MCP surface; RT_SiteConfig.pm and the admin UI |
| Knowledge base articles | Not reachable | no article tools in the MCP tool table |
Code stack
- Languages
- PerlJavaScript
- Frameworks
- HTML::Mason
- Package manager
- cpan
- Database
- MySQLMariaDBPostgreSQLOracle
- Hosting target
- self-host (Apache/nginx FastCGI or mod_perl)
- Built
- Human-written (recorded, never ranked)
Model stack
- Providers
- any MCP client
- Models
- none
- Keys you need
RT_URLRT_TOKEN- Prompts live in
- none
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: web app served through FastCGI or mod_perl; rt-server standalone | 95% |
| executionModel | no model at runtime in core; etc/ai directory exists in the 6.x tree, treated as optional | 70% |
| operability | github.com/bestpractical/mcp-server-rt is under the same org that ships RT; README lists 17 tools | 95% |
| effort | README step 6a: configure RT by editing etc/RT_SiteConfig.pm with values from etc/RT_Config.pm; RT_Config.pm.in lists Set($rtname) and 60+ other keys | 85% |
| editions | README: freely available under GPL v2; requesttracker.com/pricing: Starter $15, Business $29, Growth $39 per user/month | 80% |
| active | gh api: pushed 2026-09-01; mcp-server-rt pushed 2026-08-31 | – |
| reach | 90% |
Open questions
- What the etc/ai directory in RT 6 does and whether it makes the core hybrid
- Whether Cloud editions expose auth tokens so the MCP server works against hosted RT
Sources
- github.com/bestpractical/rt sourcing:support-bookkeeping:curated
- github.com/bestpractical/mcp-server-rt sourcing:support-bookkeeping:registries
- docs.bestpractical.com/rt/latest/RT/REST2.html sourcing:support-bookkeeping:github
- requesttracker.com/pricing analysis