@zhexuan/task-doc-mcp
v0.5.1
Published
MCP Server for GitLab workflow automation, document management, requirement tracking, review management, and Zentao integration
Maintainers
Readme
@zhexuan/task-doc-mcp
MCP Server for GitLab workflow automation, document management, requirement tracking, review management, and Zentao integration.
Overview
A standard MCP (Model Context Protocol) server that provides 50+ tools for AI agents to automate software development workflows.
Quick Start
Installation
npm install -g @zhexuan/task-doc-mcpOr use directly with npx:
npx @zhexuan/task-doc-mcpMCP Client Configuration
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"task-doc": {
"command": "npx",
"args": ["-y", "@zhexuan/task-doc-mcp"],
"env": {
"GITLAB_TOKEN": "your-gitlab-token",
"GITLAB_API_URL": "https://gitlab.example.com/api/v4"
}
}
}
}Cursor
Create .cursor/mcp.json:
{
"mcpServers": {
"task-doc": {
"command": "npx",
"args": ["-y", "@zhexuan/task-doc-mcp"],
"env": {
"GITLAB_TOKEN": "your-gitlab-token",
"GITLAB_API_URL": "https://gitlab.example.com/api/v4"
}
}
}
}Windsurf
Create .windsurf/mcp.json:
{
"mcpServers": {
"task-doc": {
"command": "npx",
"args": ["-y", "@zhexuan/task-doc-mcp"]
}
}
}Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| GITLAB_TOKEN | Yes | GitLab personal access token |
| GITLAB_API_URL | Yes | GitLab API endpoint |
| ZENTAO_BASE_URL | No | Zentao base URL |
| ZENTAO_USERNAME | No | Zentao username |
| ZENTAO_PASSWORD | No | Zentao password |
| PORT | No | HTTP server port (default: 3000, HTTP mode only) |
| DEFAULT_TRANSPORT | No | Transport mode: stdio or http (default: stdio) |
| MCP_DATA_DIR | No | Base directory for all data. Database and documents are stored under {MCP_DATA_DIR}/data/ and {MCP_DATA_DIR}/documents/. Defaults to current working directory. |
| WEB_DIST_PATH | No | Web UI static files path (for HTTP mode) |
| LOG_LEVEL | No | Log level: ERROR, WARN, INFO, DEBUG (default: INFO) |
Tip: When running as an MCP server via stdio (Claude Desktop, Cursor, etc.), set
MCP_DATA_DIRto a fixed path so you always know where your data lives, regardless of working directory. Example:"env": { "MCP_DATA_DIR": "/home/user/task-doc-data" }
Available Tools (50+)
GitLab Workflow (4 tools)
| Tool | Description |
|------|-------------|
| git_pull | Pull project code |
| git_push | Commit and push code |
| create_branch | Create a new branch from source branch |
| create_mr | Create a Merge Request |
Document Management (6 tools)
| Tool | Description |
|------|-------------|
| list_documents | List documents with filters |
| get_document | Get document details by ID |
| create_document | Create a new document (Markdown) |
| update_document | Update an existing document |
| delete_document | Delete a document |
| search_documents | Search documents by title/content |
Requirement & Version Management (19 tools)
| Tool | Description |
|------|-------------|
| list_requirements | List all requirements |
| get_requirement | Get requirement details |
| search_requirements | Search requirements |
| create_requirement | Create a new requirement |
| update_requirement | Update a requirement |
| delete_requirement | Delete a requirement |
| add_requirement_project | Link requirement to project |
| remove_requirement_project | Unlink requirement from project |
| add_requirement_review | Link requirement to review |
| add_requirement_version | Link requirement to version |
| list_versions | List all versions |
| get_version | Get version details |
| create_version | Create a new version |
| update_version | Update version info |
| get_version_stats | Get version statistics |
| get_upcoming_versions | Get upcoming versions |
| get_overdue_versions | Get overdue versions |
| get_requirement_context | Get full requirement context |
| get_project_requirements | Get project requirements |
Review Management (15 tools)
| Tool | Description |
|------|-------------|
| create_review | Create a review session |
| get_review | Get review details |
| list_reviews | List reviews |
| update_review | Update a review |
| delete_review | Delete a review |
| add_review_project | Add project to review |
| remove_review_project | Remove project from review |
| update_review_branches | Update review branches |
| add_review_document | Add document to review |
| get_review_document | Get review document details |
| update_review_document | Update review document |
| remove_review_document | Remove document from review |
| list_review_documents | List review documents |
| follow_review | Follow a review |
| unfollow_review | Unfollow a review |
Zentao Integration (6 tools)
| Tool | Description |
|------|-------------|
| zentao_login | Login to Zentao |
| zentao_get_task_list | Get task list (paginated) |
| zentao_get_monthly_tasks | Get monthly tasks |
| zentao_start_task | Start a Zentao task |
| zentao_finish_task | Finish a Zentao task |
| zentao_record_workhour | Record task work hours |
Usage Examples
GitLab Development Workflow
1. create_branch(projectPath="/path/to/project", branchName="feature/xxx")
2. AI agent completes development
3. git_push(projectPath="/path/to/project")
4. create_mr(projectPath="/path/to/project", sourceBranch="feature/xxx", targetBranch="main", title="Add feature")Requirement to Document
1. create_requirement(title="User Login", description="Implement user login", priority="high")
2. create_version(version="v1.0.0")
3. add_requirement_version(requirement_id=1, version_id=1)
4. create_document(title="Login API Spec", document_type="api", requirement_id=1)Zentao Work Hours
1. zentao_login(username="admin", password="xxx")
2. zentao_get_monthly_tasks()
3. zentao_start_task(task_id="123")
4. zentao_finish_task(task_id="123", consumed=2)Notes
- GitLab operations use async task queue, returns
taskIdfor status checking - Database uses SQLite, auto-created at
{MCP_DATA_DIR}/data/task-doc.db - Zentao uses Playwright for browser automation. Important: Playwright browsers are not bundled with this package. After installation, you must manually install Playwright and its Chromium browser:
npm install playwright npx playwright install chromium
License
MIT
