Skip to main content
Glama
njoerd114

kubecon-eu-mcp

by njoerd114

score_sessions

Generate personalized session rankings for KubeCon attendees based on their role, interests, experience level, and preferences using a structured scoring rubric.

Instructions

Get sessions ready for personalized scoring, with a scoring rubric.

Returns scorable sessions (logistics events filtered out) along with a structured scoring rubric. You (the AI agent) should apply the rubric to rank sessions for the attendee.

Scoring rubric is based on the kubecon-event-scorer project by Fredrik Carlsson.

Args: role: Attendee's job title (e.g., "Platform Engineer", "SRE", "Developer"). interests: Comma-separated interests (e.g., "eBPF, security, AI on Kubernetes"). day: Optional day filter: "monday", "tuesday", "wednesday", "thursday". experience_level: "beginner", "intermediate", "advanced", or "expert". priorities: Comma-separated goals (e.g., "evaluate service mesh tools, learn GitOps"). prefer_hands_on: Boost hands-on workshops and labs. prefer_deep_dives: Boost deep technical talks over intros. avoid_vendor_pitches: Penalize vendor-heavy marketing sessions. limit: Max sessions to return (default 30).

Returns: JSON with attendee profile, scoring rubric, and session list to score.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roleYes
interestsYes
dayNo
experience_levelNointermediate
prioritiesNo
prefer_hands_onNo
prefer_deep_divesNo
avoid_vendor_pitchesNo
limitNo

Implementation Reference

  • The score_sessions tool is registered with @mcp.tool() and implemented as an async function in server.py, which takes user preferences and profile information to retrieve and score sessions.
    @mcp.tool()
    async def score_sessions(
        role: str,
        interests: str,
        day: str = "",
        experience_level: str = "intermediate",
        priorities: str = "",
        prefer_hands_on: bool = False,
        prefer_deep_dives: bool = False,
        avoid_vendor_pitches: bool = False,
        limit: int = 30,
    ) -> str:
        """Get sessions ready for personalized scoring, with a scoring rubric.
    
        Returns scorable sessions (logistics events filtered out) along with a
        structured scoring rubric. You (the AI agent) should apply the rubric to
        rank sessions for the attendee.
    
        Scoring rubric is based on the kubecon-event-scorer project by Fredrik Carlsson.
    
        Args:
            role: Attendee's job title (e.g., "Platform Engineer", "SRE", "Developer").
            interests: Comma-separated interests (e.g., "eBPF, security, AI on Kubernetes").
            day: Optional day filter: "monday", "tuesday", "wednesday", "thursday".
            experience_level: "beginner", "intermediate", "advanced", or "expert".
            priorities: Comma-separated goals (e.g., "evaluate service mesh tools, learn GitOps").
            prefer_hands_on: Boost hands-on workshops and labs.
            prefer_deep_dives: Boost deep technical talks over intros.
            avoid_vendor_pitches: Penalize vendor-heavy marketing sessions.
            limit: Max sessions to return (default 30).
    
        Returns:
            JSON with attendee profile, scoring rubric, and session list to score.
        """
        sessions = await data_service.get_scorable_sessions(day=day or None, limit=limit)
        if not sessions:
            return json.dumps({"message": "No scorable sessions found."})
    
        prefs = []
        if prefer_hands_on:
            prefs.append("Prefers hands-on workshops and demos")
        if prefer_deep_dives:
            prefs.append("Prefers deep technical dives over introductory content")
        if avoid_vendor_pitches:
            prefs.append("Penalize vendor-heavy marketing talks")
    
        result = {
            "attendee_profile": {
                "role": role,
                "interests": [i.strip() for i in interests.split(",")],
                "experience_level": experience_level,
                "priorities": [p.strip() for p in priorities.split(",") if p.strip()]
                if priorities
                else [],
                "preferences": prefs,
            },
            "scoring_rubric": {
                "description": "Score each session 0-100 across three dimensions. Based on kubecon-event-scorer by Fredrik Carlsson.",
                "dimensions": {
                    "role_relevance": {
                        "max": 35,
                        "description": "How relevant is this session to the attendee's role?",
                        "scale": {
                            "30-35": "Directly addresses core job functions",
                            "20-29": "Strongly related to role",
                            "10-19": "Tangentially related",
                            "0-9": "Not relevant to role",
                        },
                    },
                    "topic_alignment": {
                        "max": 35,
                        "description": "How well does the topic match the attendee's interests?",
                        "scale": {

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