Skip to main content
Glama
README.md
# 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.