get_workspace_features
Fetches feature flags for the current workspace, enabling you to check which features are active.
Instructions
Get features of the current workspace.
Returns: WorkspaceFeature object containing feature flags
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_grouping | Yes | ||
| initiatives | Yes | ||
| teams | Yes | ||
| customers | Yes | ||
| wiki | Yes | ||
| pi | Yes |
Implementation Reference
- plane_mcp/tools/workspaces.py:24-33 (handler)The actual handler function for the 'get_workspace_features' tool. It retrieves workspace features by calling client.workspaces.get_features() using the Plane client and workspace slug obtained from the context.
@mcp.tool() def get_workspace_features() -> WorkspaceFeature: """ Get features of the current workspace. Returns: WorkspaceFeature object containing feature flags """ client, workspace_slug = get_plane_client_context() return client.workspaces.get_features(workspace_slug=workspace_slug) - plane_mcp/tools/workspaces.py:10-77 (registration)The 'register_workspace_tools' function registers all workspace tools (including 'get_workspace_features') with the MCP server via the @mcp.tool() decorator.
def register_workspace_tools(mcp: FastMCP) -> None: """Register all workspace-related tools with the MCP server.""" @mcp.tool() def get_workspace_members() -> list[UserLite]: """ Get all members of the current workspace. Returns: List of UserLite objects representing workspace members """ client, workspace_slug = get_plane_client_context() return client.workspaces.get_members(workspace_slug=workspace_slug) @mcp.tool() def get_workspace_features() -> WorkspaceFeature: """ Get features of the current workspace. Returns: WorkspaceFeature object containing feature flags """ client, workspace_slug = get_plane_client_context() return client.workspaces.get_features(workspace_slug=workspace_slug) @mcp.tool() def update_workspace_features( project_grouping: bool | None = None, initiatives: bool | None = None, teams: bool | None = None, customers: bool | None = None, wiki: bool | None = None, pi: bool | None = None, ) -> WorkspaceFeature: """ Update features of the current workspace. Args: project_grouping: Enable/disable project grouping feature initiatives: Enable/disable initiatives feature teams: Enable/disable teams feature customers: Enable/disable customers feature wiki: Enable/disable wiki feature pi: Enable/disable PI (Program Increment) feature Returns: Updated WorkspaceFeature object """ client, workspace_slug = get_plane_client_context() # Build data dict with only non-None values feature_data: dict[str, bool] = {} if project_grouping is not None: feature_data["project_grouping"] = project_grouping if initiatives is not None: feature_data["initiatives"] = initiatives if teams is not None: feature_data["teams"] = teams if customers is not None: feature_data["customers"] = customers if wiki is not None: feature_data["wiki"] = wiki if pi is not None: feature_data["pi"] = pi data = WorkspaceFeature(**feature_data) return client.workspaces.update_features(workspace_slug=workspace_slug, data=data) - plane_mcp/tools/workspaces.py:5-5 (schema)Imports the WorkspaceFeature type from plane.models.workspaces, which serves as the return type schema for get_workspace_features.
from plane.models.workspaces import WorkspaceFeature - plane_mcp/tools/__init__.py:24-24 (registration)Imports register_workspace_tools from plane_mcp.tools.workspaces.
from plane_mcp.tools.workspaces import register_workspace_tools - plane_mcp/tools/__init__.py:46-46 (registration)Calls register_workspace_tools(mcp) to register all workspace tools including get_workspace_features.
register_workspace_tools(mcp)