# AgilePlace MCP Server
A Model Context Protocol (MCP) server for integrating with AgilePlace project management platform.
## Features
### Board Management
- List, create, and view boards
- Get board details including lanes, card types, and custom fields
- Manage board members
### Card Management
- Create, read, update, and delete cards
- Move cards between lanes
- Add comments to cards
- Assign users and teams to cards
- Manage card connections (parent-child relationships)
- Manage card dependencies
### Bulk Operations
- Update multiple cards simultaneously
- Delete multiple cards in bulk
- Move multiple cards between lanes
- Assign members to multiple boards
### OKR Management (Objectives and Key Results)
- Create and manage OKR Objectives
- Create and manage Key Results
- Update Objectives and Key Results
- Query Objectives by board
- Query Key Results by Objective
### OKR Activity and Work Item Management
- Connect work items (cards) to Key Results
- Create activities associated with Key Results
- List and search activities
- List activity containers
- List available activity types
- Search users within contexts
### Project Management
- List projects with filtering
- Get project and work attributes
## Installation
```bash
pip install -r requirements.txt
```
## Configuration
Set up your AgilePlace API credentials:
```bash
export AGILEPLACE_DOMAIN="your-subdomain.leankit.com"
export AGILEPLACE_API_TOKEN="your-api-token"
export OKRS_API_BASE_URL="https://api.pv-platforma.xyz/api" # Optional, for OKR features
```
## Usage
### Running the Server
```bash
python -m agileplace_mcp.server
```
### Available Tools
#### Board Tools
- `list_boards`: List all accessible boards
- `get_board`: Get detailed board information
- `get_board_cards`: Get cards on a board
- `get_leaf_lanes`: Get lanes that can hold cards
- `create_board`: Create a new board
- `get_board_members`: Get board members
#### Card Tools
- `list_cards`: List cards with optional filtering
- `get_card`: Get detailed card information
- `get_card_activity`: Get card activity history
- `create_card`: Create a new card
- `update_card`: Update card fields
- `move_card`: Move a card to a different lane
- `delete_card`: Delete a card
- `get_card_comments`: Get card comments
- `create_comment`: Add a comment to a card
- `assign_users_to_card`: Assign users/teams to a card
- `get_card_children`: Get child cards
- `get_card_parents`: Get parent cards
#### Connection Tools
- `create_connection`: Create parent-child card connections
- `delete_connection`: Remove card connections
- `get_connection_statistics`: Get connection statistics
- `connect_cards_bulk`: Create multiple connections
#### Dependency Tools
- `get_card_dependencies`: Get card dependencies
- `create_dependency`: Create card dependencies
- `delete_dependency`: Delete dependencies
#### Bulk Operation Tools
- `update_cards_bulk`: Update multiple cards
- `delete_cards_bulk`: Delete multiple cards
- `move_cards_bulk`: Move multiple cards
- `assign_members_bulk`: Assign members to multiple boards
#### OKR Tools
- `create_objective`: Create a new OKR Objective
- `create_key_result`: Create a new Key Result
- `update_objective`: Update an Objective
- `update_key_result`: Update a Key Result
- `get_objectives_by_board_id`: Get Objectives for a board
- `get_key_results_by_objective_id`: Get Key Results for an Objective
#### OKR Activity Tools
- `connect_activities_to_key_result`: Connect work items to Key Results
- `create_activity`: Create activities for Key Results
- `list_activities`: List activities with filtering
- `list_activity_containers`: List activity containers
- `search_activities`: Search activities
- `list_activity_types`: List available activity types
- `search_users`: Search users
- `get_current_user`: Get current user information
#### Query Tools
- `list_projects`: List projects with filtering
- `get_project_attributes`: Get project attributes
- `get_work_attributes`: Get work attributes
## API Documentation
The server integrates with the following AgilePlace APIs:
- Board API
- Card API
- Connection API
- Dependency API
- OKR API
- Activity API
- Project API
## Development
### Project Structure
```
agileplace_mcp/
├── agileplace_mcp/
│ ├── __init__.py
│ ├── auth.py # Authentication handling
│ ├── client.py # API client
│ ├── models.py # Data models
│ ├── server.py # FastMCP server
│ └── tools/
│ ├── __init__.py
│ ├── boards.py # Board operations
│ ├── bulk.py # Bulk operations
│ ├── cards.py # Card operations
│ ├── connections.py # Connection operations
│ ├── dependencies.py # Dependency operations
│ ├── okr.py # OKR operations
│ ├── okr_activities.py # OKR activity operations
│ └── query.py # Query operations
├── requirements.txt
├── README.md
└── server.py
```
### Adding New Tools
1. Create the function in the appropriate `tools/*.py` file
2. Add the corresponding MCP tool wrapper in `server.py`
3. Update data models in `models.py` if needed
4. Add tests in the `tests/` directory
### Testing
```bash
python -m pytest tests/
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests for new functionality
5. Submit a pull request
## License
This project is licensed under the MIT License.