Skip to main content
Glama

get_episodes

Retrieve recent memory episodes from a specific group to access historical data and track activity patterns for analysis.

Instructions

Get the most recent memory episodes for a specific group.

Args:
    group_id: ID of the group to retrieve episodes from. If not provided, uses the default group_id.
    last_n: Number of most recent episodes to retrieve (default: 10)

Returns:
    List of episode dictionaries

Example:
    get_episodes(group_id="knowledge-smith", last_n=5)

@REQ: REQ-graphiti-chunk-mcp
@BP: BP-graphiti-chunk-mcp
@TASK: TASK-007-MCPTools

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
group_idNo
last_nNo

Implementation Reference

  • MCP tool registration and handler for 'get_episodes'. Decorated with @mcp.tool() and delegates implementation to graphiti_tools.get_episodes_impl.
    @mcp.tool()
    async def get_episodes(
        group_id: Optional[str] = None,
        last_n: int = 10,
    ) -> List[Dict[str, Any]]:
        """
        Get the most recent memory episodes for a specific group.
    
        Args:
            group_id: ID of the group to retrieve episodes from. If not provided, uses the default group_id.
            last_n: Number of most recent episodes to retrieve (default: 10)
    
        Returns:
            List of episode dictionaries
    
        Example:
            get_episodes(group_id="knowledge-smith", last_n=5)
    
        @REQ: REQ-graphiti-chunk-mcp
        @BP: BP-graphiti-chunk-mcp
        @TASK: TASK-007-MCPTools
        """
        return await graphiti_tools.get_episodes_impl(
            group_id=group_id,
            last_n=last_n,
        )
  • Core handler implementation for get_episodes. Creates GraphitiClient, calls client.get_episodes, handles errors.
    async def get_episodes_impl(
        group_id: Optional[str] = None,
        last_n: int = 10,
    ) -> List[Dict[str, Any]]:
        """
        Get the most recent memory episodes for a specific group.
    
        @REQ: REQ-graphiti-chunk-mcp
        @BP: BP-graphiti-chunk-mcp
        @TASK: TASK-007-MCPTools
    
        Args:
            group_id: ID of the group to retrieve episodes from. If not provided, uses the default group_id.
            last_n: Number of most recent episodes to retrieve (default: 10)
    
        Returns:
            List of episode dictionaries
    
        Raises:
            ToolError: If retrieval operation fails
        """
        try:
            client = get_graphiti_client()
            async with client:
                group_ids = [group_id] if group_id else None
                results = await client.get_episodes(
                    last_n=last_n,
                    group_ids=group_ids,
                )
                return results
    
        except Exception as e:
            raise ToolError(
                "GET_EPISODES_ERROR",
                f"Failed to retrieve episodes: {str(e)}"
            ) from e
  • Low-level helper in GraphitiClient that retrieves episodes using graphiti.retrieve_episodes and formats them into dicts.
    async def get_episodes(
        self,
        reference_time: Optional[datetime] = None,
        last_n: int = 3,
        group_ids: Optional[List[str]] = None,
        source: Optional[EpisodeType] = None,
    ) -> List[Dict[str, Any]]:
        """
        Retrieve recent episodes from Graphiti.
    
        @REQ: REQ-graphiti-chunk-mcp
        @BP: BP-graphiti-chunk-mcp
        @TASK: TASK-005-GraphitiClient
    
        Args:
            reference_time: Reference timestamp (defaults to current time)
            last_n: Number of most recent episodes to retrieve (default: 3)
            group_ids: Optional list of group IDs to filter results
            source: Optional episode type filter
    
        Returns:
            List of episode dictionaries
    
        Raises:
            RuntimeError: If retrieval fails
        """
        if reference_time is None:
            reference_time = datetime.now()
    
        try:
            logger.debug(f"Retrieving last {last_n} episodes")
    
            episodes = await self.graphiti.retrieve_episodes(
                reference_time=reference_time,
                last_n=last_n,
                group_ids=group_ids,
                source=source,
            )
    
            # Convert EpisodicNode results to dictionaries
            episode_dicts = []
            for ep in episodes:
                episode_dicts.append({
                    "uuid": ep.uuid,
                    "name": ep.name,
                    "content": ep.content,
                    "source": ep.source.value if ep.source else None,
                    "source_description": ep.source_description,
                    "group_id": ep.group_id,
                    "created_at": ep.created_at,
                    "valid_at": ep.valid_at,
                })
    
            logger.info(f"Retrieved {len(episode_dicts)} episodes")
            return episode_dicts
    
        except Exception as e:
            logger.error(f"Failed to retrieve episodes: {e}")
            raise RuntimeError(f"Failed to retrieve episodes: {e}") from e

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/leo7nel23/KnowkedgeSmith-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server