--- title: components sidebarTitle: components --- # `fastmcp.utilities.components` ## Classes ### `FastMCPMeta` ### `FastMCPComponent` Base class for FastMCP tools, prompts, resources, and resource templates. **Methods:** #### `key` ```python key(self) -> str ``` The key of the component. This is used for internal bookkeeping and may reflect e.g. prefixes or other identifiers. You should not depend on keys having a certain value, as the same tool loaded from different hierarchies of servers may have different keys. #### `get_meta` ```python get_meta(self, include_fastmcp_meta: bool | None = None) -> dict[str, Any] | None ``` Get the meta information about the component. If include_fastmcp_meta is True, a `_fastmcp` key will be added to the meta, containing a `tags` field with the tags of the component. #### `model_copy` ```python model_copy(self) -> Self ``` Create a copy of the component. **Args:** - `update`: A dictionary of fields to update. - `deep`: Whether to deep copy the component. - `key`: The key to use for the copy. #### `enable` ```python enable(self) -> None ``` Enable the component. #### `disable` ```python disable(self) -> None ``` Disable the component. #### `copy` ```python copy(self) -> Self ``` Create a copy of the component. ### `MirroredComponent` Base class for components that are mirrored from a remote server. Mirrored components cannot be enabled or disabled directly. Call copy() first to create a local version you can modify. **Methods:** #### `enable` ```python enable(self) -> None ``` Enable the component. #### `disable` ```python disable(self) -> None ``` Disable the component. #### `copy` ```python copy(self) -> Self ``` Create a copy of the component that can be modified.