Content
# WBSO MCP Server
Generic MCP (Model Context Protocol) server for WBSO R&D documentation and time tracking. Enables AI assistants like Claude Code to automatically detect WBSO-relevant work and log entries.
## Features
- **WBSO Detection** - Analyze commits, code, and work descriptions for WBSO eligibility
- **Work Classification** - Classify work into technical challenge areas
- **Automatic Logging** - Log research and development entries to documentation
- **Multi-year Support** - Track hours across multiple WBSO project years
- **Configurable** - Define your own technical challenges and keywords
## Installation
```bash
git clone https://github.com/rubenmaas/wbso-mcp-server.git
cd wbso-mcp-server
npm install
```
## Configuration
The server loads project configuration from `wbso.config.json` in your WBSO documentation directory.
1. Copy the example config:
```bash
cp wbso.config.example.json /path/to/your/wbso-docs/wbso.config.json
```
2. Edit the config with your project details:
```json
{
"project": {
"name": "Your Project Name",
"projectNumber": "2025-1",
"company": "Your Company B.V."
},
"years": {
"2025": {
"totalHours": 1000,
"type": "New project"
}
},
"technicalChallenges": [
{
"id": "challenge-1",
"name": "Challenge Name",
"keywords": ["keyword1", "keyword2"],
"researchLogs": ["research-log"],
"devLogs": ["dev-log"]
}
]
}
```
## Setup with Claude Code
Add to your Claude Code config (`~/.claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"wbso": {
"command": "node",
"args": ["/path/to/wbso-mcp-server/index.js"],
"env": {
"WBSO_DIR": "/path/to/your/wbso-docs"
}
}
}
}
```
## Available Tools
### Detection Tools
| Tool | Description |
|------|-------------|
| `analyze_wbso_relevance` | Analyze if code/commits are WBSO-relevant |
| `classify_work` | Classify work into technical challenge areas |
| `check_commit_wbso` | Check if a git commit qualifies as WBSO work |
| `get_wbso_criteria` | Get full project criteria and challenges |
### Logging Tools
| Tool | Description |
|------|-------------|
| `log_research` | Log research entries to documentation |
| `log_development` | Log development entries to documentation |
| `log_time` | Log time entries for the current week |
| `get_wbso_status` | Get current WBSO hours status |
## Configuration Schema
### Project
```json
{
"project": {
"name": "Project Name",
"projectNumber": "2025-1",
"company": "Company B.V."
}
}
```
### Years
```json
{
"years": {
"2025": {
"applicationNumber": "SO25XXXXXX",
"period": "January - December 2025",
"totalHours": 1000,
"type": "New project"
}
}
}
```
### Technical Challenges
```json
{
"technicalChallenges": [
{
"id": "unique-id",
"name": "Challenge Name",
"description": "Description of technical uncertainty",
"keywords": ["keyword1", "keyword2"],
"filePatterns": ["pattern1", "pattern2"],
"researchLogs": ["log-name"],
"devLogs": ["log-name"]
}
]
}
```
### File Patterns
```json
{
"relevantPaths": ["service", "repository", "controller"],
"excludePatterns": ["node_modules", "vendor", "\\.lock$"]
}
```
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `WBSO_DIR` | Path to WBSO documentation directory | Current working directory |
## License
MIT