MCP server for JetBrains Hub giving AI assistants (Claude Code, VSCode, Continue.dev, Cursor) safe, tool-based access to user management, groups, projects, services, roles, and permissions.
Compatible with Hub 2020.1+
Sponsored by Eraga
git clone https://github.com/eraga/hub-mcp.git
cd hub-mcp
npm install
cp .env.example .env # configure HUB_URL + HUB_TOKEN or OAuth2
npm run build
npm start # stdio MCP server| Domain | Capabilities |
|---|---|
| Users | List, search, get details, ban/unban, manage group membership |
| Groups | CRUD operations, member management, auto-join configuration |
| Projects | Create, update, archive, resource management |
| Services | OAuth2 client management, secret regeneration |
| Roles | Role CRUD, permission assignment |
| Permissions | List and filter permissions by service |
| Auth | Token + OAuth2/SSO support |
HUB_URL=https://hub.example.com
HUB_TOKEN=perm:your-permanent-token
LOG_LEVEL=infoHUB_URL=https://hub.example.com
HUB_PREFER_OAUTH2=true
HUB_CLIENT_ID=your-hub-service-uuid
HUB_CLIENT_SECRET=your-secret
HUB_CALLBACK_PORT=8080| Variable | Required | Description |
|---|---|---|
HUB_URL |
✅ | Hub base URL (without /api or /hub suffix) |
HUB_TOKEN |
✅* | Permanent token (*not required if using OAuth2) |
HUB_PREFER_OAUTH2 |
— | Enable OAuth2 flow |
HUB_CLIENT_ID |
— | OAuth2 client ID (Hub Service UUID) |
HUB_CLIENT_SECRET |
— | OAuth2 client secret |
HUB_CALLBACK_PORT |
— | OAuth2 callback port (default: 8080) |
LOG_LEVEL |
— | error/warn/info/debug (default: info) |
claude mcp add hub-mcp \
--env HUB_URL=https://hub.example.com \
--env HUB_TOKEN=perm:your-token \
--scope user \
-- node /path/to/hub-mcp/dist/index.jsclaude mcp add hub-mcp \
--env HUB_URL=https://hub.example.com \
--env HUB_PREFER_OAUTH2=true \
--env HUB_CLIENT_ID=your-hub-service-uuid \
--env HUB_CLIENT_SECRET=your-secret \
--env HUB_CALLBACK_PORT=8080 \
--scope user \
-- node /path/to/hub-mcp/dist/index.js{
"mcpServers": {
"hub": {
"command": "node",
"args": ["/abs/path/hub-mcp/dist/index.js"],
"env": {
"HUB_URL": "https://hub.example.com",
"HUB_TOKEN": "perm:your-token"
}
}
}
}Manage Hub users.
| Action | Description | Required Args |
|---|---|---|
list |
List all users | — |
get |
Get user details | userId |
search |
Search users | query |
me |
Get current user | — |
ban |
Ban a user | userId |
unban |
Unban a user | userId |
groups |
Get user's groups | userId |
add_to_group |
Add user to group | userId, groupId |
remove_from_group |
Remove from group | userId, groupId |
Manage user groups.
| Action | Description | Required Args |
|---|---|---|
list |
List all groups | — |
get |
Get group details | groupId |
search |
Search groups | query |
create |
Create group | name |
update |
Update group | groupId |
delete |
Delete group | groupId |
members |
List members | groupId |
add_member |
Add member | groupId, userId |
remove_member |
Remove member | groupId, userId |
Manage Hub projects.
| Action | Description | Required Args |
|---|---|---|
list |
List all projects | — |
get |
Get project details | projectId |
create |
Create project | name |
update |
Update project | projectId |
delete |
Delete project | projectId |
archive |
Archive project | projectId |
unarchive |
Unarchive project | projectId |
resources |
List resources | projectId |
Manage OAuth2 services/clients.
| Action | Description | Required Args |
|---|---|---|
list |
List all services | — |
get |
Get service details | serviceId |
hub |
Get Hub service | — |
create |
Create service | name |
update |
Update service | serviceId |
delete |
Delete service | serviceId |
regenerate_secret |
New secret | serviceId |
Manage roles and permissions.
| Action | Description | Required Args |
|---|---|---|
list |
List all roles | — |
get |
Get role details | roleId |
create |
Create role | name |
update |
Update role | roleId |
delete |
Delete role | roleId |
permissions |
Role permissions | roleId |
add_permission |
Add permission | roleId, permissionId |
remove_permission |
Remove permission | roleId, permissionId |
list_permissions |
List all perms | — |
Authentication status.
| Action | Description |
|---|---|
status |
Check authentication |
test |
Test connection |
npm install
npm run dev # watch mode
npm run build # compile
npm run lint # eslint
npm run type-check # typesMIT © 2025 Eraga