Enables intelligent event discovery, natural language querying, and AI-powered recommendations for Meetup events, with support for both REST and GraphQL APIs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Meetup-Claude Integration Serverfind tech networking events in New York this weekend"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Meetup-Claude Integration Server
Overview
This is a production-quality Model Communication Protocol (MCP) server that seamlessly integrates Meetup.com's event discovery APIs with Anthropic's Claude LLM. The server enables intelligent event discovery, natural language querying, and AI-powered recommendations for Meetup events.
Related MCP server: OpenAI Agents MCP Server
Architecture
Core Components
MCP Protocol Handler (
MeetupClaudeMCPServer)Manages client connections and tool definitions
Handles resource management and server lifecycle
Provides standardized MCP interface
Authentication Manager (
AuthenticationManager)OAuth2 flow implementation for Meetup.com
Token lifecycle management and refresh
Secure credential handling
Event Discovery Engine (
EventDiscoveryEngine)Natural language query parameter extraction
Dual API support (REST and GraphQL)
Intelligent event filtering and ranking
Prompt Augmentation Service (
PromptAugmentationService)Context-aware prompt enhancement
Event data formatting for LLM consumption
Smart relevance filtering
Claude Integration (
ClaudeIntegration)Anthropic API client management
Response generation and error handling
Configurable model parameters
Data Flow
User Query → Parameter Extraction → Event Discovery → Data Augmentation → Claude Processing → ResponseQuick Start
Prerequisites
Python 3.8+
Meetup.com account
Anthropic API account
Installation
# Clone or download the project
cd /home/daniel/work/mcp-meetup
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your credentials
# Run the server
python meetup_claude_mcp_server.pyAPI Setup Instructions
1. Meetup.com OAuth Setup
Visit Meetup OAuth Consumers
Click "Create New Consumer"
Fill in application details:
Application Name: Your app name
Application Website: Your website or GitHub repo
Redirect URI:
http://localhost:8080/oauth/callbackApplication Description: Brief description of your use case
Save the generated:
Client ID
Client Secret
2. Anthropic API Setup
Visit Anthropic Console
Create account or sign in
Navigate to API Keys section
Generate new API key
Copy the API key securely
3. Environment Configuration
Required environment variables in .env:
MEETUP_CLIENT_ID=your_meetup_client_id_here
MEETUP_CLIENT_SECRET=your_meetup_client_secret_here
ANTHROPIC_API_KEY=your_anthropic_api_key_hereOptional configuration:
MEETUP_ACCESS_TOKEN=your_access_token_if_available
MEETUP_REDIRECT_URI=http://localhost:8080/oauth/callback
LOG_LEVEL=INFO
MAX_EVENTS_PER_QUERY=20
DEFAULT_RADIUS=25MCP Tools
1. search_meetup_events
Search for Meetup events using natural language queries.
Parameters:
query(string, required): Natural language search querymax_results(integer, optional): Maximum events to return (default: 20)
Example:
{
"query": "Python programming events near San Francisco this week",
"max_results": 10
}2. augment_prompt_with_events
Enhance a user prompt with relevant event data for context.
Parameters:
prompt(string, required): User prompt to augment
Example:
{
"prompt": "What programming events should I attend this weekend?"
}3. get_event_recommendations
Get AI-powered event recommendations using Claude with event context.
Parameters:
query(string, required): Natural language query for recommendationspreferences(string, optional): Additional preferences or constraints
Example:
{
"query": "I'm interested in machine learning and networking events",
"preferences": "Prefer free events, willing to travel up to 30 miles"
}4. get_oauth_url
Get Meetup OAuth authorization URL for authentication setup.
Parameters: None
MCP Resources
1. meetup://config
Current server configuration and status information.
2. meetup://auth/status
Authentication status with Meetup.com including token validity.
Natural Language Query Examples
The server intelligently extracts parameters from natural language:
Time-based queries:
"events today"
"what's happening tomorrow"
"events this week"
Location-based queries:
"events near me"
"meetups in San Francisco"
"remote events only"
Topic-based queries:
"Python programming meetups"
"data science events"
"startup networking"
"AI and machine learning"
Combined queries:
"Python events near me today"
"remote data science meetups this week"
"free networking events in San Francisco"
Error Handling
The server includes comprehensive error handling for:
Authentication errors: Missing credentials, expired tokens
API errors: Rate limiting, network failures, invalid queries
Data processing errors: Malformed events, empty results
Security Considerations
Environment variable configuration prevents credential exposure
OAuth2 flow implementation follows security best practices
No persistent storage of user queries or personal data
Configurable logging levels to control information exposure
Development
Project Structure
mcp-meetup/
├── meetup_claude_mcp_server.py # Main server implementation
├── requirements.txt # Python dependencies
├── .env.example # Environment configuration template
├── README.md # This documentation
├── docs/ # Additional documentation
│ └── adr/ # Architecture decision records
└── tests/ # Test files (future)Testing
Basic testing can be done by running the server and using MCP client tools:
# Start the server
python meetup_claude_mcp_server.py
# In another terminal, test with MCP client
# (MCP client implementation would go here)Extending the Server
The modular design makes it easy to extend:
Additional APIs: Add other event platforms in
EventDiscoveryEngineEnhanced filtering: Extend
extract_query_parametersmethodCaching: Add Redis or memory caching in
PromptAugmentationServiceAdditional tools: Add new MCP tools in
_setup_toolsmethod
Troubleshooting
Common Issues
Authentication failures
Verify client ID and secret are correct
Check redirect URI matches OAuth consumer settings
Ensure access token hasn't expired
No events found
Try broader search terms
Check location spelling and format
Verify time parameters are reasonable
API rate limiting
Reduce query frequency
Implement request caching
Check API quota usage
Claude integration errors
Verify Anthropic API key is valid
Check API quota and billing status
Review prompt length and complexity
Debug Mode
Enable debug logging:
export LOG_LEVEL=DEBUG
python meetup_claude_mcp_server.pyHealth Checks
Check server status using MCP resources:
# Check configuration
# Use MCP client to read meetup://config
# Check authentication status
# Use MCP client to read meetup://auth/statusContributing
Development Workflow
Fork repository
Create feature branch
Implement changes with tests
Update documentation
Submit pull request
Code Standards
Follow PEP 8 style guidelines
Use type hints throughout
Maintain comprehensive docstrings
Include unit tests for new features
License
MIT License - see LICENSE file for details.
Support
For issues and questions:
Check troubleshooting section
Review configuration and setup
Create detailed bug report with logs
Include reproduction steps and environment details
Version: 1.0.0
Last Updated: 2025-07-27
Author: Generated for Dan Shields