We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jhigh1594/agileplace-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""Data models for AgilePlace MCP Server."""
from typing import Any, List, Optional
from pydantic import BaseModel, Field
class Board(BaseModel):
"""AgilePlace Board entity."""
id: str
name: str
description: Optional[str] = None
created_at: str = Field(alias="createdAt")
updated_at: str = Field(alias="updatedAt")
archived: bool = Field(alias="archived")
app_name: Optional[str] = Field(None, alias="appName")
container_type: Optional[str] = Field(None, alias="containerType")
external_id: Optional[str] = Field(None, alias="externalId")
external_type: Optional[str] = Field(None, alias="externalType")
class Lane(BaseModel):
"""AgilePlace Lane entity."""
id: str
name: str
description: Optional[str] = None
position: int
is_leaf: bool = Field(alias="isLeaf")
parent_id: Optional[str] = Field(None, alias="parentId")
children: Optional[list] = None
class CardType(BaseModel):
"""AgilePlace Card Type entity."""
id: str
name: str
description: Optional[str] = None
color: Optional[str] = None
icon: Optional[str] = None
is_default: bool = Field(alias="isDefault")
class Card(BaseModel):
"""AgilePlace Card entity."""
id: str
title: str
description: Optional[str] = None
lane_id: str = Field(alias="laneId")
position: int
card_type_id: Optional[str] = Field(None, alias="cardTypeId")
priority: Optional[str] = None
size: Optional[int] = None
tags: list[str] = []
assigned_user_ids: list[str] = Field([], alias="assignedUserIds")
assigned_team_ids: list[str] = Field([], alias="assignedTeamIds")
external_card_id: Optional[str] = Field(None, alias="externalCardId")
external_url: Optional[str] = Field(None, alias="externalUrl")
planned_start: Optional[str] = Field(None, alias="plannedStart")
planned_finish: Optional[str] = Field(None, alias="plannedFinish")
custom_icon_id: Optional[str] = Field(None, alias="customIconId")
custom_fields: dict[str, Any] = Field({}, alias="customFields")
created_at: str = Field(alias="createdAt")
updated_at: str = Field(alias="updatedAt")
created_by: str = Field(alias="createdBy")
updated_by: str = Field(alias="updatedBy")
class Comment(BaseModel):
"""AgilePlace Comment entity."""
id: str
card_id: str = Field(alias="cardId")
text: str
created_at: str = Field(alias="createdAt")
created_by: str = Field(alias="createdBy")
class User(BaseModel):
"""AgilePlace User entity."""
id: str
name: str
email: str
avatar_url: Optional[str] = Field(None, alias="avatarUrl")
is_active: bool = Field(alias="isActive")
class Team(BaseModel):
"""AgilePlace Team entity."""
id: str
name: str
description: Optional[str] = None
member_ids: list[str] = Field([], alias="memberIds")
class Connection(BaseModel):
"""AgilePlace Connection entity."""
id: str
parent_id: str = Field(alias="parentId")
child_id: str = Field(alias="childId")
created_at: str = Field(alias="createdAt")
class Dependency(BaseModel):
"""AgilePlace Dependency entity."""
id: str
card_id: str = Field(alias="cardId")
depends_on_card_id: str = Field(alias="dependsOnCardId")
dependency_type: str = Field(alias="dependencyType")
created_at: str = Field(alias="createdAt")
class Project(BaseModel):
"""AgilePlace Project entity."""
id: str
name: str
description: Optional[str] = None
status: str
created_at: str = Field(alias="createdAt")
updated_at: str = Field(alias="updatedAt")
class WorkAttribute(BaseModel):
"""AgilePlace Work Attribute entity."""
id: str
name: str
description: Optional[str] = None
type: str
is_required: bool = Field(alias="isRequired")
default_value: Optional[Any] = Field(None, alias="defaultValue")
# OKR Models
class Objective(BaseModel):
"""OKR Objective entity."""
id: str
external_id: str = Field(alias="externalId")
external_type: str = Field(alias="externalType")
name: str
level_depth: int = Field(alias="levelDepth")
starts_at: str = Field(alias="startsAt")
ends_at: str = Field(alias="endsAt")
parent_objective_id: Optional[str] = Field(None, alias="parentObjectiveId")
owned_by: str = Field(alias="ownedBy")
description: Optional[str] = None
ca_values: Optional[dict[str, Any]] = Field(None, alias="caValues")
app_owned_by: Optional[str] = Field(None, alias="appOwnedBy")
external_title: Optional[str] = Field(None, alias="externalTitle")
class KeyResult(BaseModel):
"""OKR Key Result entity."""
id: str
objective_id: str = Field(alias="objectiveId")
name: str
starts_at: Optional[str] = Field(None, alias="startsAt")
ends_at: Optional[str] = Field(None, alias="endsAt")
starting_value: Optional[float] = Field(None, alias="startingValue")
target_value: Optional[float] = Field(None, alias="targetValue")
description: Optional[str] = None
progress_percentage: Optional[int] = Field(None, alias="progressPercentage")
owned_by: str = Field(alias="ownedBy")
class WorkItemContainer(BaseModel):
"""Work Item Container for associating activities."""
external_id: str
external_type: str = Field(description="Planview product type (leankit, e1, e1_work, etc.)")
class WorkItem(BaseModel):
"""Work Item (card/activity) to associate with key results."""
external_id: str
external_type: str = Field(description="Planview product type (leankit, e1, e1_work, etc.)")
title: Optional[str] = None
state: Optional[str] = None
class ActivityInput(BaseModel):
"""Input for creating activities."""
key_result_id: int = Field(description="ID of the key result to associate with")
context_id: str = Field(description="Context ID for the activity")
context_title: str = Field(description="Title of the context")
title: str = Field(description="Activity title")
external_activity_type_id: str = Field(description="External activity type ID")
product_type: str = Field(description="Planview product type")
planned_start: Optional[str] = Field(None, description="Planned start date")
planned_finish: Optional[str] = Field(None, description="Planned finish date")
class ConnectActivitiesInput(BaseModel):
"""Input for connecting activities to key results."""
key_result_id: int = Field(description="ID of the key result")
work_item_container: WorkItemContainer = Field(description="Work item container")
work_items: List[WorkItem] = Field(description="List of work items to connect")