Skip to main content
Glama
njoerd114

kubecon-eu-mcp

by njoerd114

search_sessions

Find KubeCon Europe sessions by keyword, topic, speaker, or technology. Filter by day and track to locate relevant presentations quickly.

Instructions

Search conference sessions by keyword, topic, speaker name, or technology.

Args: query: Search query (e.g., "eBPF", "security", "AI agents", "platform engineering"). day: Optional day filter: "monday", "tuesday", "wednesday", "thursday". track: Optional track filter (e.g., "Keynote", "Tutorial", "Breakout"). limit: Maximum number of results to return (default 20).

Returns: JSON array of matching sessions with title, speakers, time, room, and URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
dayNo
trackNo
limitNo

Implementation Reference

  • The MCP tool handler for 'search_sessions', which delegates the search logic to the data_service.
    @mcp.tool()
    async def search_sessions(
        query: str,
        day: str = "",
        track: str = "",
        limit: int = 20,
    ) -> str:
        """Search conference sessions by keyword, topic, speaker name, or technology.
    
        Args:
            query: Search query (e.g., "eBPF", "security", "AI agents", "platform engineering").
            day: Optional day filter: "monday", "tuesday", "wednesday", "thursday".
            track: Optional track filter (e.g., "Keynote", "Tutorial", "Breakout").
            limit: Maximum number of results to return (default 20).
    
        Returns:
            JSON array of matching sessions with title, speakers, time, room, and URL.
        """
        results = await data_service.search_sessions(
            query=query,
            day=day or None,
            track=track or None,
            limit=limit,
        )
        if not results:
            return json.dumps(
                {
                    "message": f"No sessions found for '{query}'.",
                    "suggestion": "Try broader terms or remove day/track filters.",
                }
            )
        return json.dumps([s.to_dict() for s in results], indent=2)
  • The actual implementation of the session search logic, residing within the DataService class.
    async def search_sessions(
        self,
        query: str,
        day: str | None = None,
        track: str | None = None,
        limit: int = 20,
    ) -> list[Session]:
        """Search sessions by keyword, optionally filtered by day and track."""
        sessions = await self.get_sessions()
        if day:
            all_sessions = sessions + (
                await self.get_colocated_sessions() if day == "monday" else []
            )
        else:
            all_sessions = sessions + await self.get_colocated_sessions()
    
        query_lower = query.lower()
        results = []
    
        for s in all_sessions:
            if day and s.day != day.lower():
                continue
            if track and track.lower() not in s.category.lower():
                continue
    
            # Search across title, description, speakers, category
            searchable = (
                f"{s.title} {s.description} {' '.join(s.speakers)} {s.category}".lower()
            )
            if query_lower in searchable:
                results.append(s)
    
        return results[:limit]

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/njoerd114/kubecon-eu-mcp'

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