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
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.
- Copy the example config:
cp wbso.config.example.json /path/to/your/wbso-docs/wbso.config.json
- Edit the config with your project details:
{
"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):
{
"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
{
"project": {
"name": "Project Name",
"projectNumber": "2025-1",
"company": "Company B.V."
}
}
Years
{
"years": {
"2025": {
"applicationNumber": "SO25XXXXXX",
"period": "January - December 2025",
"totalHours": 1000,
"type": "New project"
}
}
}
Technical Challenges
{
"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
{
"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











