internaltool-mcp
v1.6.52
Published
MCP server for InternalTool — connect AI assistants (Claude Code, Cursor) to your project and task management platform
Downloads
4,789
Maintainers
Readme
internaltool-mcp
MCP server for InternalTool — connect AI assistants like Claude Code and Cursor directly to your project and task management platform.
Quick start
1. Generate an API key
In InternalTool, generate a personal API key:
curl -X POST https://your-server.com/api/auth/api-keys \
-H "Authorization: Bearer <your-jwt>" \
-H "Content-Type: application/json" \
-d '{"label": "Claude Code - MacBook"}'Copy the token from the response — it starts with ilt_ and is shown once only.
2. Add to Claude Code
claude mcp add internaltool \
-e INTERNALTOOL_TOKEN=ilt_your_token_here \
-- npx -y internaltool-mcp --url https://your-server.com3. Add to Cursor
Create or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"internaltool": {
"command": "npx",
"args": ["-y", "internaltool-mcp", "--url", "https://your-server.com"],
"env": {
"INTERNALTOOL_TOKEN": "ilt_your_token_here"
}
}
}
}That's it. No clone. No install. Just npx.
CLI flags
| Flag | Env var equivalent | Description |
|---|---|---|
| --url <url> | INTERNALTOOL_URL | Base URL of your InternalTool server |
| --token <token> | INTERNALTOOL_TOKEN | Personal API key (ilt_...) — recommended |
| --email <email> | INTERNALTOOL_EMAIL | Email (alternative to API key) |
| --password <pw> | INTERNALTOOL_PASSWORD | Password (alternative to API key) |
CLI flags take precedence over environment variables.
Managing API keys
# List your keys (no raw tokens shown)
GET /api/auth/api-keys
# Generate a new key
POST /api/auth/api-keys { "label": "Cursor - Work Laptop" }
# Revoke a key
DELETE /api/auth/api-keys/:keyId- Maximum 10 keys per user
- Keys show
lastUsedAtso you know which ones are active - Revoke instantly — no session to wait for
Available tools (25 total)
| Category | Tools |
|---|---|
| Auth | login, get_current_user |
| Users | list_users |
| Projects | list_projects, get_project, create_project, update_project, update_project_members, delete_project |
| Tasks | create_task, get_task, update_task, move_task, delete_task, park_task, unpark_task |
| Issues | create_task_issue, update_task_issue |
| Approval | submit_task_for_approval, decide_task_approval |
| Comments | list_task_comments, add_task_comment, get_task_activity |
| Notifications | list_notifications, mark_all_notifications_read, delete_all_notifications |
| GitHub | get_project_commits, get_project_branches |
| Admin | admin_list_users, admin_get_analytics |
Example prompts
- "List my projects"
- "Create a task called 'Fix login bug' in HRMS with critical priority"
- "Move task 683abc... to in_progress"
- "What are my unread notifications?"
- "Show me all comments on task 683abc..."
