Content
# Dooray MCP Server
NHN Dooray service's MCP(Model Context Protocol) server.
## Main Features
- **Wiki Management**: Wiki lookup, creation, modification
- **Task Management**: Task lookup, creation, modification, status change
- **Comment Management**: Task comment creation, lookup, modification, deletion
- **Project Code Auto-Mapping**: Enter project name (code) and automatically resolve ID internally (cache-based)
- **JSON Response**: Standardized JSON response
- **Exception Handling**: Consistent error response
- **Docker Support**: Multi-platform Docker image support for AMD64 / ARM64
## Quick Start
### Environment Variable Settings
The following environment variables must be set:
```bash
export DOORAY_API_KEY="your_api_key"
export DOORAY_BASE_URL="https://api.dooray.com"
# Optional: Logging level control
export DOORAY_LOG_LEVEL="WARN" # DEBUG, INFO, WARN, ERROR (default: WARN)
export DOORAY_HTTP_LOG_LEVEL="WARN" # HTTP client logging (default: WARN)
# Optional: Project cache TTL (in minutes, default: 5)
export DOORAY_PROJECT_CACHE_TTL_MINUTES=5
```
#### Logging Settings
**General Logging (`DOORAY_LOG_LEVEL`)**
- `WARN` (default): Log only warnings and errors - **Recommended for MCP communication stability**
- `INFO`: Log general information
- `DEBUG`: Log detailed debug information
**HTTP Logging (`DOORAY_HTTP_LOG_LEVEL`)**
- `WARN` (default): Log only HTTP errors - **Recommended for MCP communication stability**
- `INFO`: Log basic request/response information
- `DEBUG`: Log detailed HTTP information
> ⚠️ **Important**: The MCP server communicates through stdin/stdout, so all logs are output to **stderr**. Increasing the logging level will not affect protocol communication but may impact performance.
### Local Execution
```bash
# Install dependencies and build
./gradlew clean shadowJar
# Run locally (using .env file)
./gradlew runLocal
# Or run directly
java -jar build/libs/dooray-mcp-server-0.4.1-all.jar
```
### Docker Execution
```bash
# Pull image from Docker Hub
docker pull bifos/dooray-mcp:latest
# Run with environment variables
docker run -e DOORAY_API_KEY="your_api_key" \
-e DOORAY_BASE_URL="https://api.dooray.com" \
bifos/dooray-mcp:latest
```
## Available Tools (Total 19)
### Wiki-related Tools (5)
#### 1. dooray_wiki_list_projects
Retrieve a list of accessible wiki projects.
#### 2. dooray_wiki_list_pages
Retrieve a list of pages for a specific Dooray wiki project.
#### 3. dooray_wiki_get_page
Retrieve detailed information for a specific Dooray wiki page.
#### 4. dooray_wiki_create_page
Create a new wiki page.
#### 5. dooray_wiki_update_page
Modify an existing wiki page.
### Project-related Tools (2)
#### 6. dooray_project_list_projects
Retrieve a list of accessible projects.
#### 7. dooray_project_list_members
Retrieve a list of project members.
### Task-related Tools (8)
> 💡 You can enter `project_id` with project ID or **project code (name)**. The server automatically resolves the ID internally.
#### 8. dooray_project_list_posts
Retrieve a list of tasks for a project.
#### 9. dooray_project_get_post
Retrieve detailed information for a specific task.
#### 10. dooray_project_create_post
Create a new task.
#### 11. dooray_project_update_post
Modify an existing task.
#### 12. dooray_project_set_post_workflow
Change the status (workflow) of a task.
#### 13. dooray_project_set_post_done
Change a task to a completed status.
#### 14. dooray_project_set_post_parent
Set a parent task for a task.
#### 15. dooray_project_list_workflows
Retrieve a list of workflows (task statuses) for a project.
### Task Comment-related Tools (4)
#### 16. dooray_project_create_post_comment
Create a comment for a task.
#### 17. dooray_project_get_post_comments
Retrieve a list of comments for a task.
#### 18. dooray_project_update_post_comment
Modify a task comment.
#### 19. dooray_project_delete_post_comment
Delete a task comment.
## Usage Examples
### Retrieve Wiki Project List
```json
{
"name": "dooray_wiki_list_projects",
"arguments": {
"page": 0,
"size": 20
}
}
```
### Create Task (Using Project Code or ID)
```json
{
"name": "dooray_project_create_post",
"arguments": {
"project_id": "my-project",
"subject": "New Task",
"body": "Task content",
"to_member_ids": ["member_id_1", "member_id_2"],
"priority": "high"
}
}
```
### Create Comment
```json
{
"name": "dooray_project_create_post_comment",
"arguments": {
"project_id": "my-project",
"post_id": "your_post_id",
"content": "Comment content",
"mime_type": "text/x-markdown"
}
}
```
## Development
### Run Tests
```bash
# Run all tests
./gradlew test
# CI environment (automatically exclude integration tests)
CI=true ./gradlew test
```
### Build
```bash
# Build JAR
./gradlew clean shadowJar
# Build Docker image
docker build -t dooray-mcp:local --build-arg VERSION=0.4.1 .
```
## Environment Variables
| Variable Name | Description | Required |
| --- | --- | --- |
| `DOORAY_API_KEY` | Dooray API key | Required |
| `DOORAY_BASE_URL` | Dooray API Base URL | Required |
| `DOORAY_LOG_LEVEL` | General logging level (default: WARN) | Optional |
| `DOORAY_HTTP_LOG_LEVEL` | HTTP client logging level (default: WARN) | Optional |
| `DOORAY_PROJECT_CACHE_TTL_MINUTES` | Project cache TTL (minutes, default: 5) | Optional |
## License
This project is open-source and can be used freely.
## Contribution
If you want to contribute to the project, please register an issue or send a pull request.
## References
- [Dooray API](https://helpdesk.dooray.com/share/pages/9wWo-xwiR66BO5LGshgVTg/2939987647631384419)
- [Kotlin MCP Server Example](https://github.com/modelcontextprotocol/kotlin-sdk/blob/main/samples/weather-stdio-server/src/main/kotlin/io/modelcontextprotocol/sample/server/McpWeatherServer.kt)
- [Model Context Protocol](https://modelcontextprotocol.io/introduction)
Connection Info
You Might Also Like
awesome-claude-skills
A curated list of awesome Claude Skills, resources, and tools for...
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
Appwrite
Build like a team of hundreds
memtrace-public
The missing memory layer for coding agents
omega-memory
Persistent memory for AI coding agents
experimental-ext-skills
Experimental exploration of skills discovery and distribution through MCP...