Skip to content

MCP Server for Sessionize Event Data - Access speakers, sessions, and schedules from any Sessionize-powered conference

Notifications You must be signed in to change notification settings

jeanlopezxyz/mcp-sessionize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sessionize MCP Server

License: Apache-2.0 Java npm GitHub release Docker

A Model Context Protocol (MCP) server for accessing Sessionize event data - speakers, sessions, and schedules from any Sessionize-powered conference.

Built with Quarkus MCP Server.

Transport Modes

This server supports two MCP transport modes:

Mode Description Use Case
stdio Standard input/output communication Default for Claude Desktop, Claude Code, Cursor, VS Code
SSE Server-Sent Events over HTTP Standalone server, web integrations, multiple clients

Table of Contents


Requirements

  • Java 21+ - Download
  • Sessionize Event ID - Get from your event's API URL: https://sessionize.com/api/v2/{EVENT_ID}/view/All

Installation

Quick Install (Claude Code CLI)

claude mcp add sessionize -e SESSIONIZE_EVENT_ID="your-event-id" -- npx -y mcp-sessionize@latest

Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "sessionize": {
      "command": "npx",
      "args": ["-y", "mcp-sessionize@latest"],
      "env": {
        "SESSIONIZE_EVENT_ID": "your-event-id"
      }
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "sessionize": {
      "command": "npx",
      "args": ["-y", "mcp-sessionize@latest"],
      "env": {
        "SESSIONIZE_EVENT_ID": "your-event-id"
      }
    }
  }
}

VS Code

code --add-mcp '{"name":"sessionize","command":"npx","args":["-y","mcp-sessionize@latest"],"env":{"SESSIONIZE_EVENT_ID":"your-event-id"}}'

Cursor

Add to mcp.json:

{
  "mcpServers": {
    "sessionize": {
      "command": "npx",
      "args": ["-y", "mcp-sessionize@latest"],
      "env": {
        "SESSIONIZE_EVENT_ID": "your-event-id"
      }
    }
  }
}

Windsurf

Add to MCP configuration:

{
  "mcpServers": {
    "sessionize": {
      "command": "npx",
      "args": ["-y", "mcp-sessionize@latest"],
      "env": {
        "SESSIONIZE_EVENT_ID": "your-event-id"
      }
    }
  }
}

Goose CLI

Add to config.yaml:

extensions:
  sessionize:
    command: npx
    args:
      - -y
      - mcp-sessionize@latest
    env:
      SESSIONIZE_EVENT_ID: your-event-id

SSE Mode

Run as standalone server:

npx mcp-sessionize --port 9080 --event-id your-event-id

Endpoints:

  • SSE: http://localhost:9080/mcp/sse
  • Streamable HTTP: http://localhost:9080/mcp

Configuration

Command Line Options

Option Description
--port <PORT> Start in SSE mode on specified port
--event-id <ID> Default Sessionize event ID
--help Show help message
--version Show version

Environment Variables

Variable Description Required
SESSIONIZE_EVENT_ID Default event ID (can be overridden per tool call) No

Event ID Priority

The event ID can be configured in three ways (in order of precedence):

  1. Tool parameter: Pass eventId directly in tool calls
  2. CLI argument: --event-id your-event-id
  3. Environment variable: SESSIONIZE_EVENT_ID=your-event-id

Tools

This server provides 6 tools organized in 3 categories:

Speakers

getSpeakers

List all speakers for a Sessionize event.

Parameter Type Required Description
eventId string No* Sessionize event ID

Returns: List of speakers with name, bio, tagline, profile picture, and links.

*Required if SESSIONIZE_EVENT_ID is not set.


findSpeaker

Search for a speaker by name.

Parameter Type Required Description
name string Yes Speaker name to search for (partial match)
eventId string No* Sessionize event ID

Returns: Matching speakers with full details.


getSessionsBySpeaker

Get all sessions for a specific speaker.

Parameter Type Required Description
speakerName string Yes Speaker name to find sessions for
eventId string No* Sessionize event ID

Returns: List of sessions presented by the speaker.


Sessions

getSessions

List all sessions for a Sessionize event.

Parameter Type Required Description
eventId string No* Sessionize event ID

Returns: List of sessions with title, description, speakers, room, and time.


findSession

Search sessions by title or description.

Parameter Type Required Description
query string Yes Search term (matches title or description)
eventId string No* Sessionize event ID

Returns: Matching sessions with full details.


Schedule

getSchedule

Get the event schedule/agenda organized by day and time.

Parameter Type Required Description
eventId string No* Sessionize event ID

Returns: Schedule organized by date with time slots and rooms.


Example Prompts

Use natural language to explore conference data:

Speakers

"Show me all speakers for the conference"
"Find speaker Jean Lopez"
"Search for speakers named Victor"
"Who is presenting at the event?"
"List all speakers with their bios"

Sessions

"List all sessions"
"Find sessions about Kubernetes"
"Search for talks about AI"
"What sessions are about cloud native?"
"Show me sessions by Jean Lopez"
"What is Victor Aguayo presenting?"

Schedule

"What's the schedule for the conference?"
"Show me today's agenda"
"What sessions are happening now?"
"Get the full event schedule"
"What time does the keynote start?"

Multi-Event Usage

"Show speakers for event 8gc76sf7"
"List sessions for CloudNativeLima (eventId: 8gc76sf7)"
"Get the schedule for DevConf (eventId: abc123)"

Example Events

Here are some public Sessionize events you can try:

Event Event ID
CloudNativeLima 8gc76sf7

To find your event ID, check your Sessionize embed URL: https://sessionize.com/api/v2/{EVENT_ID}/view/All


Development

Run in dev mode

./mvnw quarkus:dev

Build

# Regular JAR
./mvnw package -DskipTests

# Uber JAR (single file)
./mvnw package -DskipTests -Dquarkus.package.jar.type=uber-jar

Test STDIO mode

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | \
java -Dquarkus.mcp.server.stdio.enabled=true -Dquarkus.http.host-enabled=false -jar target/*-runner.jar

Test with MCP Inspector

# stdio mode
npx @modelcontextprotocol/inspector npx mcp-sessionize

# SSE mode
npx mcp-sessionize --port 9080 --event-id 8gc76sf7
# Then connect inspector to http://localhost:9080/mcp/sse

Technology Stack

  • Quarkus 3.30.2 - Supersonic Subatomic Java Framework
  • quarkus-mcp-server-http - HTTP/SSE MCP transport
  • quarkus-mcp-server-stdio - STDIO MCP transport
  • MicroProfile REST Client - For Sessionize API communication

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

Apache-2.0 - Free to use, modify, and distribute.

About

MCP Server for Sessionize Event Data - Access speakers, sessions, and schedules from any Sessionize-powered conference

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •