doozMen/tech-conf-agent
If you are the rightful owner of tech-conf-agent and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server designed for the ServerSide.swift 2025 London conference, enabling AI-powered navigation through conference data.
ServerSide.swift 2025 Conference Navigator
A Model Context Protocol (MCP) server built specifically for ServerSide.swift 2025 London (October 2-3, 2025). Navigate the conference with AI-powered queries about sessions, speakers, and schedules through Claude Desktop.
Built with Swift 6.2 and actor-based concurrency, this MCP server provides comprehensive access to the ServerSide.swift conference data including 27+ speakers, session schedules, and venue information.
Overview
This MCP server is tailored specifically for ServerSide.swift 2025 London, featuring:
- 27+ Speaker Profiles: Apple Swift Server team members (Franz Busch, George Barnett, Ben Cohen), framework creators (Adam Fowler - Hummingbird, Joannis Orlandos - MongoKitten), and production experts
- Complete Conference Schedule: All sessions from October 2-3, 2025 with tracks, difficulty levels, and formats
- Natural Language Queries: Ask about sessions, speakers, and topics in plain English
- Real Conference Data: Authentic speaker bios, GitHub profiles, expertise areas, and session topics
Use Cases
- Conference Attendees: Find sessions matching your interests, discover speakers, plan your schedule
- Speaker Networking: Learn about speakers' backgrounds, expertise, and projects before the conference
- Session Discovery: Search by topic (Swift 6, concurrency, Vapor, Hummingbird, AWS Lambda, etc.)
- Schedule Planning: Query sessions by day, time, track, or difficulty level
Could This Work for Other Conferences?
While this MCP server is specifically built for ServerSide.swift 2025, the architecture could be adapted for other technical conferences. The database schema and MCP tools are general enough to support any conference with sessions, speakers, and schedules. You would need to:
- Replace the sample data in
Resources/Conferences/
with your conference data - Update speaker profiles, session schedules, and venue information
- Optionally customize the database schema for conference-specific needs
The Swift 6.2 codebase, actor-based concurrency, and MCP protocol implementation are conference-agnostic.
Features
6 Core MCP Tools
list_sessions
- Browse all conference sessions with optional filteringsearch_sessions
- Find sessions using natural language queriesget_speaker
- Retrieve detailed speaker information and their sessionsget_schedule
- Query schedule for specific days or time rangesfind_room
- Locate rooms and check their schedulesget_session_details
- Get comprehensive details about a specific session
Sample Queries for ServerSide.swift 2025
"Show me all sessions on October 2nd"
"Who is Adam Fowler and what is he talking about?"
"Find all sessions about Vapor and Hummingbird"
"What Swift 6 concurrency sessions are there?"
"Show me speakers from the Apple Swift Server team"
"Which sessions cover AWS Lambda with Swift?"
"Tell me about Joannis Orlandos' MongoKitten talk"
Architecture
Technology Stack
- Swift 6.2: Modern Swift with strict concurrency checking
- MCP Swift SDK: Official Model Context Protocol implementation
- SharingGRDB: Type-safe SQLite database layer with observable queries
- Actor-based Concurrency: Thread-safe data access
Project Structure
tech-conf-mcp/
āāā Sources/
ā āāā TechConfCore/ # Domain models and database layer
ā ā āāā Models/ # Session, Speaker, Room entities
ā ā āāā Database/ # SQLite schema and migrations
ā ā āāā Queries/ # Type-safe query methods
ā ā
ā āāā TechConfMCP/ # MCP server implementation
ā ā āāā Server.swift # Main MCP server with tool handlers
ā ā āāā Tools/ # Individual tool implementations
ā ā āāā ValueExtensions/ # MCP value serialization
ā ā
ā āāā tech-conf-mcp/ # Executable entry point
ā āāā main.swift # CLI and server initialization
ā
āāā Data/
ā āāā conferences.sqlite # SQLite database
ā āāā migrations/ # Database migration scripts
ā
āāā Tests/
āāā TechConfTests/ # Swift Testing test suite
Database Schema
The server uses SQLite with the following core tables:
sessions
- Conference talks with title, description, time, trackspeakers
- Speaker profiles with bio, expertise, contact inforooms
- Venue locations with capacity and equipment detailssession_speakers
- Many-to-many relationship between sessions and speakerstags
- Categorical tags for filtering (Swift, iOS, Server, etc.)
Installation
Requirements
- macOS 15.0+ (Sequoia or later)
- Swift 6.2+ (included with Xcode 16.2+)
- Claude Desktop (for MCP integration)
Install via Swift Package Manager
# Clone the repository
git clone https://github.com/doozMen/tech-conf-agent.git
cd tech-conf-mcp
# Install the executable
swift package experimental-install
# Verify installation
~/.swiftpm/bin/tech-conf-mcp --version
The executable will be installed to ~/.swiftpm/bin/tech-conf-mcp
.
Configure Claude Desktop
Add to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"tech-conf": {
"command": "tech-conf-mcp",
"args": ["--log-level", "info"],
"env": {
"PATH": "$HOME/.swiftpm/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
Important: The PATH
environment variable must include ~/.swiftpm/bin
for Claude Desktop to find the installed executable.
Restart Claude Desktop
After updating the configuration:
- Quit Claude Desktop completely
- Relaunch Claude Desktop
- Verify the MCP server is connected (look for "tech-conf" in available tools)
Usage
Example Conversations
Finding Sessions
You: Show me all sessions about Swift concurrency tomorrow
Claude: [Uses search_sessions tool]
Speaker Information
You: Who is John Sundell and what is he talking about?
Claude: [Uses get_speaker tool]
Schedule Queries
You: What's happening in Hall A between 2pm and 4pm?
Claude: [Uses get_schedule and find_room tools]
Session Details
You: Tell me more about the "Modern Swift Concurrency" talk
Claude: [Uses get_session_details tool]
Natural Language Support
The MCP server understands various date/time formats:
- Relative: "today", "tomorrow", "this afternoon"
- Absolute: "October 15", "Oct 15 2025", "2025-10-15"
- Time ranges: "2pm-4pm", "14:00-16:00", "afternoon"
- Day parts: "morning", "afternoon", "evening"
Speaker Discovery
The MCP server includes comprehensive speaker profiles from ServerSide.swift 2025 London:
- 27+ speakers with full bios, expertise areas, and professional backgrounds
- Apple Swift Server team members: Franz Busch, George Barnett, Honza Dvorsky, Ben Cohen, Si Beaumont, Eric Ernst, Agam Dua
- Framework creators: Adam Fowler (Hummingbird, Soto), Joannis Orlandos (MongoKitten)
- Production experts: Ben Rosen (SongShift), Mikaela Caron (Vapor backends), Daniel Jilg (TelemetryDeck)
- Social links: GitHub, Twitter, LinkedIn, personal websites
Example Speaker Queries
"Who is Adam Fowler and what is he talking about?"
ā Returns: Senior Apple engineer, Hummingbird maintainer, speaking on Valkey-swift with type-safe Redis
"Show me all sessions by Mikaela Caron"
ā Returns: "Building Fruitful" - Vapor 4 backend with PostgreSQL, S3, Redis, JWT auth
"Find speakers working on Swift concurrency"
ā Returns: Matt Massicotte (Swift 6 patterns), Mikaela Caron (strict concurrency in Vapor)
Full speaker documentation: See for complete profiles with expertise, social links, and session topics.
Conference Data
The server contains real data from ServerSide.swift 2025 London:
- 27+ Real Speakers: Actual speaker profiles from the conference website with verified bios, GitHub profiles, and expertise areas
- Complete Sessions: All talks, workshops, and sessions from October 2-3, 2025
- Conference Venue: London, UK location details
- Session Tracks: Server-Side Swift, Vapor Framework, Hummingbird, SwiftNIO, Testing & Quality, Deployment & DevOps, Swift 6 & Concurrency
Conference Website: serversideswift.info
This is production conference data, not sample/demo data. The database is pre-populated with the actual ServerSide.swift 2025 conference schedule and speaker information.
Development
Building from Source
# Debug build
swift build
# Release build
swift build -c release
# Run locally
swift run tech-conf-mcp
Running Tests
# Run all tests with Swift Testing
swift test
# Run with verbose output
swift test --verbose
# Run specific test suite
swift test --filter TechConfCoreTests
Database Management
# View database schema
sqlite3 Data/conferences.sqlite ".schema"
# Query sessions
sqlite3 Data/conferences.sqlite "SELECT title, startTime FROM sessions;"
# Backup database
cp Data/conferences.sqlite Data/conferences.backup.sqlite
Automation Scripts
The Scripts/
directory contains automation tools for development and release:
Release Script
Install the MCP server to ~/.swiftpm/bin
and generate Claude Desktop configuration:
./Scripts/release.sh
This will:
- Remove any existing installation
- Build and install the latest version
- Verify the installation
- Generate MCP configuration JSON
- Print next steps for Claude Desktop setup
JSON-RPC Testing
Test the MCP server using swift run
(tests current source code, NOT installed binary):
./Scripts/test-mcp-jsonrpc.sh
ā ļø Critical: This script uses xcrun swift run tech-conf-mcp
to test the latest source code. This ensures you're always testing your current changes, not an old installed binary.
Test output includes:
- ā Passed tests (green)
- ā Failed tests (red)
- JSON-RPC responses for each tool
- Final summary with pass/fail count
Version Management
Bump version across all files and update changelog:
./Scripts/bump-version.sh 1.1.0
This will:
- Extract current version from source
- Update
TechConfMCP.swift
version - Update
CLAUDE.md
andREADME.md
references - Add new section to
CHANGELOG.md
- Print git commit commands
Testing Patterns
Development Testing (current source code):
./Scripts/test-mcp-jsonrpc.sh # Tests with `swift run`
Production Verification (installed binary):
./test-mcp.py # Tests ~/.swiftpm/bin/tech-conf-mcp
Use test-mcp-jsonrpc.sh
during development to test changes before installation.
Credits
This project was inspired by and learned from:
- TimeStory MCP - Reference implementation for MCP server patterns in Swift
- MCP Swift SDK - Official Model Context Protocol SDK
- SharingGRDB - Type-safe SQLite wrapper with observable queries
License
MIT License - See LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues, questions, or feature requests, please open an issue on GitHub.