philipknoll/123erfasst-mcp-server-1
If you are the rightful owner of 123erfasst-mcp-server-1 and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server for integrating with the 123erfasst construction management system, providing natural language access to data through Claude Desktop and other MCP-compatible clients.
123erfasst MCP Server
A Model Context Protocol (MCP) server for integrating with the 123erfasst construction management system. This server provides natural language access to 123erfasst data through Claude Desktop and other MCP-compatible clients.
Features
- Project Management: List, search, and manage construction projects
- Staff Management: Access staff information and assignments
- Equipment Tracking: Monitor equipment status and assignments
- Time Tracking: Start, stop, and query time tracking records
- GraphQL Integration: Direct integration with 123erfasst GraphQL API
- MCP Compliance: Follows MCP best practices for reliable operation
Prerequisites
- Python 3.10 or higher
- uv package manager
- Valid 123erfasst API credentials
- Claude Desktop or other MCP-compatible client
Installation
-
Clone the repository:
git clone https://github.com/retweetkoerbe/123erfasst-mcp-server.git cd 123erfasst-mcp-server -
Install dependencies:
uv sync -
Set up credentials:
python quick-setup.pyOr manually set environment variables:
export ERFASST_API_USERNAME="your_username" export ERFASST_API_TOKEN="your_password"
Usage
With Claude Desktop
-
Configure Claude Desktop:
- Open Claude Desktop settings
- Add the MCP server configuration from
cursor-mcp-config.json - Restart Claude Desktop
-
Test the integration:
- Open Claude Desktop
- Try commands like:
- "List all my projects"
- "Show me staff members"
- "Get equipment statistics"
With VS Code
- Install MCP extension (if available)
- Configure MCP server using
vscode-mcp-config.json - Restart VS Code
Command Line Testing
Test the MCP server directly:
uv run python test-mcp-tools.py
Available Tools
Project Management (6 tools)
list_projects- List all projects with optional filtersget_project_details- Get detailed project informationsearch_projects- Search projects by name or descriptionget_project_statistics- Get project metrics and statisticsget_active_projects- List currently active projectsget_projects_by_date_range- Filter projects by date range
Staff Management (7 tools)
list_staff- List all staff membersget_person_details- Get detailed person informationsearch_staff- Search staff by name or roleget_staff_by_role- Filter staff by roleget_active_staff- List active staff membersget_staff_by_project- Get staff assigned to a projectget_staff_statistics- Get staff metrics and statistics
Equipment Management (8 tools)
list_equipment- List all equipmentget_equipment_details- Get detailed equipment informationsearch_equipment- Search equipment by name or typeget_equipment_by_status- Filter equipment by statusget_equipment_by_location- Filter equipment by locationget_equipment_by_project- Get equipment assigned to a projectget_equipment_statistics- Get equipment metricsget_equipment_maintenance- Get maintenance schedules
Time Tracking (5 tools)
start_time_tracking- Start time tracking for a projectstop_time_tracking- Stop current time trackingget_current_times- Get active time tracking recordsget_time_tracking_history- Get historical time recordsget_time_statistics- Get time tracking statistics
Configuration
Environment Variables
ERFASST_API_USERNAME- Your 123erfasst usernameERFASST_API_TOKEN- Your 123erfasst password/tokenLOG_LEVEL- Logging level (default: INFO)
MCP Server Configuration
The server uses Basic Authentication with the 123erfasst GraphQL API:
- Endpoint:
https://server.123erfasst.de/api/graphql - Authentication: Basic Auth (username:password)
- Transport: STDIO (for MCP clients)
Development
Project Structure
123erfasst-mcp-server/
├── libraries/ # Core libraries
│ ├── graphql_client/ # GraphQL API client
│ ├── models/ # Pydantic data models
│ ├── project_management/ # Project management tools
│ ├── staff_management/ # Staff management tools
│ ├── equipment_management/ # Equipment management tools
│ └── time_tracking/ # Time tracking tools
├── tests/ # Test suite
├── server.py # Main MCP server
├── start-server.py # Server startup script
└── pyproject.toml # Project configuration
Running Tests
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=libraries
# Run specific test categories
uv run pytest -m unit
uv run pytest -m integration
Code Quality
# Format code
uv run black .
# Sort imports
uv run isort .
# Type checking
uv run mypy libraries/
# Linting
uv run ruff check .
API Reference
GraphQL Schema
The server integrates with the 123erfasst GraphQL API. Key query types:
projects- Project collection with nodes and totalCountpersons- Person collection with staff informationequipments- Equipment collection with status and assignmentstimes- Time tracking records with person and project references
Data Models
All data is validated using Pydantic models:
Project- Project information and metadataPerson- Staff member informationEquipment- Equipment details and statusStaffTime- Time tracking recordsTicket- Support tickets and issuesPlanning- Project planning and milestones
Troubleshooting
Common Issues
-
Authentication Errors:
- Verify your credentials are correct
- Check that environment variables are set
- Ensure your 123erfasst account is active
-
Connection Issues:
- Verify network connectivity to
server.123erfasst.de - Check if the 123erfasst API is accessible
- Review firewall settings
- Verify network connectivity to
-
MCP Integration Issues:
- Ensure Claude Desktop is updated to the latest version
- Check MCP configuration file syntax
- Restart Claude Desktop after configuration changes
Debug Mode
Enable debug logging:
export LOG_LEVEL=DEBUG
uv run python test-mcp-tools.py
Log Files
Check log files for detailed error information:
- Application logs:
logs/app.log - Error logs:
logs/error.log
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
License
This project is licensed under the MIT License - see the file for details.
Support
For support and questions:
- Create an issue on GitHub
- Check the troubleshooting section
- Review the 123erfasst API documentation
Changelog
v1.0.0
- Initial release
- Complete MCP server implementation
- Support for all major 123erfasst entities
- Claude Desktop integration
- Comprehensive test suite