Skip to main content
Glama

MCP Meeting Agent

by cliffordru
README.md11 kB
# MCP Meeting Agent A meeting preparation agent that provides trivia, fun facts, and GitHub trending repositories to improve your meetings. Built with LangChain's modern agent framework for intelligent orchestration and tool-based interactions. ## Proof of Concept **This is a proof of concept application and is not intended for production use.** This project demonstrates architectural patterns and integration concepts but lacks critical production features such as security, performance optimization, comprehensive testing, and scalability considerations. ## Features - **Tech Trivia**: Fetches technology trivia questions and answers from external APIs - **Fun Facts**: Provides interesting random facts from external APIs - **GitHub Trending**: Shows current trending repositories from external APIs - **Meeting Notes**: Generates formatted meeting notes for hosts - **LangChain Agent Framework**: Modern LLM agent architecture with tool-based orchestration - **Intelligent Tool Coordination**: Agent automatically selects and uses appropriate tools - **Robust Error Handling**: Graceful fallbacks and comprehensive error recovery - **Structured Logging**: Comprehensive logging with configurable levels - **Comprehensive Testing**: Full test coverage for all components - **FastMCP Integration**: Production-ready MCP server with error masking, rate limiting, and context-aware logging ## Architecture The project follows a modern LangChain agent architecture with clean separation of concerns and **provider-agnostic LLM support**: ### Provider-Agnostic Design The application is designed to work with multiple LLM providers without code changes: - **OpenAI/OpenRouter**: Use any OpenAI-compatible API via `base_url` configuration - **Anthropic Claude**: Direct support for Claude models (requires `langchain-anthropic`) - **Google Gemini**: Direct support for Gemini models (requires `langchain-google-genai`) - **Other Providers**: Any OpenAI-compatible API via `base_url` configuration The system automatically detects the provider based on the model name and configuration, making it easy to switch between providers by simply updating your `.env` file. - **LangChain Agents**: Intelligent orchestrators that coordinate tools using LLM reasoning - **Tools**: Reusable LangChain tools that wrap external services and APIs - **Services**: Handle external API interactions and data fetching - **Schemas**: Pydantic models for data validation and structure - **Formatters**: Format data for different output types (LLM, notes) - **Prompts**: Manage LLM prompt templates - **Core**: Configuration, logging, and LLM gateway ### Key Architectural Benefits - **Tool-Based Design**: Individual tools can be reused across different agents - **Intelligent Orchestration**: Agent uses LLM reasoning to determine which tools to use - **Better Error Handling**: Tools have individual error handling with graceful fallbacks - **Flexibility**: Easy to add new tools without changing agent logic - **Modern LLM Patterns**: Follows LangChain's recommended agent-tool architecture ## Quick Start 1. **Clone the repository**: ```bash git clone https://github.com/cliffordru/mcp-meeting-agent cd mcp-meeting-agent ``` 2. **Install dependencies**: ```bash uv sync ``` **Optional**: Install additional LLM provider support: ```bash # For Anthropic Claude support uv add langchain-anthropic # For Google Gemini support uv add langchain-google-genai # Or install all providers uv add langchain-anthropic langchain-google-genai ``` 3. **Set up environment variables**: ```bash cp env.example .env # Edit .env with your preferred settings ``` 4. **Run the MCP Server**: ```bash uv run server.py ``` 5. **Configure MCP Client**: To use this MCP server with your MCP host client, see [`mcp-client-config.json`](mcp-client-config.json) in the project root for the complete configuration example. The server runs on `http://127.0.0.1:8000/sse` by default and provides the `prepare_meeting()` tool for generating meeting content. 6. **Use**: For example in Cursor, you can prompt your AI assistant "Using your MCP tools, prepare some fun meeting notes". ## Configuration Key configuration options in `.env`: ```env # LLM Configuration (Provider Agnostic) LLM_API_KEY=your_api_key LLM_API_BASE_URL=https://api.openai.com/v1 # Optional: for OpenAI/OpenRouter LLM_MODEL=gpt-4o-mini # Supports OpenAI, Anthropic Claude, Google Gemini LLM_TEMPERATURE=0.0 LLM_REQUEST_TIMEOUT=60 # Provider Examples: # OpenAI/OpenRouter: LLM_MODEL=gpt-4o-mini, LLM_API_BASE_URL=https://api.openai.com/v1 # Anthropic Claude: LLM_MODEL=claude-3-5-sonnet-20241022 (no base_url needed) # Google Gemini: LLM_MODEL=gemini-1.5-flash (no base_url needed) # API Configuration TECH_TRIVIA_API_URL=your_tech_trivia_api_url FUN_FACTS_API_URL=your_fun_facts_api_url GITHUB_TRENDING_URL=your_github_trending_api_url # Logging LOG_LEVEL=INFO # FastMCP Configuration MCP_MASK_ERROR_DETAILS=true MCP_ENABLE_LOGGING=true ``` ## Testing Run all tests: ```bash uv run pytest src/tests/ -v ``` Run with coverage: ```bash uv run pytest src/tests/ --cov=src/app --cov-report=html ``` ## Production Readiness Considerations ### Testing & Quality Assurance **Current State**: Comprehensive unit tests with good coverage **Production Needs**: - **Load Testing**: Apache Bench, Artillery, or k6 for API performance testing - **Integration Testing**: End-to-end testing with real API dependencies - **Failure Scenario Testing**: Network failures, API rate limits, LLM timeouts - **Evaluation Framework**: TBD - **Monitoring**: Langfuse integration for LLM performance tracking ### Security Considerations **Current State**: Basic FastMCP error masking and rate limiting implemented **Production Needs**: - **Authentication**: OAuth 2.0 flow with proper session management - **Input Validation**: Content filtering and sanitization for all inputs - **Output Filtering**: LLM output validation to prevent harms - **SAST/DAST**: Static and dynamic application security testing - **SCA**: Software composition analysis for dependency vulnerabilities - **Rate Limiting**: More sophisticated rate limiting and abuse prevention - **Secrets Management**: TBD when needed ### Performance & Scalability **Current State**: Async implementation with LangChain agent framework **Production Needs**: - **Caching**: TBD based on load testing - **Circuit Breakers**: Resilience patterns for external API failures - **Horizontal Scaling**: Container orchestration (Kubernetes/Docker) ### AI Architecture Improvements **Current State**: LangChain agent framework with tool-based architecture, LLM-generated fallback content for API failures, and provider-agnostic LLM support **Production Needs**: - **Model-as-a-Service**: Right-sized models for cost/latency/accuracy balance - **Prompt Engineering**: Systematic prompt optimization and versioning - **Agent Optimization**: Fine-tune agent prompts and tool selection logic - **Multi-Provider Support**: Provider switching and fallback mechanisms - **Tool Validation**: Input/output validation for tools - **LLM-Generated Fallbacks**: Improve dynamic LLM-generated content when APIs fail - Generate contextual trivia questions based on meeting type/context - Create relevant fun facts tailored to the audience/industry - Provide trending tech topics specific to the team's domain - Maintain content freshness and relevance through AI generation ### Integration & Real-World Services **Current State**: Basic external APIs with tool-based access **Production Needs**: - **GitHub Integration**: Real-time issues, PRs, and repository health - **CI/CD Integration**: Build status and deployment information - **Jira/Linear**: Project management and sprint data - **Slack/Teams**: Real-time notifications and team collaboration - **Calendar Integration**: Meeting scheduling and participant management - **Analytics**: Meeting effectiveness tracking and insights ### Monitoring & Alerting **Current State**: Basic structured logging with FastMCP client logging integration **Production Needs**: - **Observability & Alerting**: Monitoring for agent performance and tool usage - **Centralized Logging**: Log aggregation and analysis - **Performance Metrics**: Response time tracking and alerting ## Project Structure ``` mcp-meeting-agent/ ├── src/ │ ├── app/ │ │ ├── agents/ │ │ │ ├── tech_trivia_agent.py │ │ │ ├── fun_facts_agent.py │ │ │ ├── github_trending_agent.py │ │ │ └── meeting_planner_agent.py │ │ ├── core/ │ │ │ ├── config.py │ │ │ ├── llm_gateway.py │ │ │ └── logging_config.py │ │ ├── formatters/ │ │ │ ├── meeting_notes_formatter.py │ │ │ └── repository_formatter.py │ │ ├── prompts/ │ │ │ ├── __init__.py │ │ │ ├── agent_prompts.py │ │ │ └── fallback_prompts.py │ │ ├── schemas/ │ │ │ ├── fun_facts.py │ │ │ └── tech_trivia.py │ │ ├── services/ │ │ │ ├── fun_facts_service.py │ │ │ ├── github_trending_service.py │ │ │ └── tech_trivia_service.py │ │ └── tools/ │ │ └── meeting_tools.py │ └── tests/ │ ├── test_fun_facts.py │ ├── test_github_trending_agent.py │ ├── test_github_trending_service.py │ ├── test_meeting_notes.py │ ├── test_meeting_planner_agent.py │ ├── test_meeting_tools.py │ ├── test_repository_formatter.py │ ├── test_server_integration.py │ └── test_tech_trivia_agent.py ├── server.py ├── env.example ├── .env (not tracked in git) ├── LICENSE └── README.md ``` ## API Endpoints The MCP server exposes a single tool: - `prepare_meeting(ctx: Context, meeting_context: str = "")`: Generates meeting preparation content including trivia, fun facts, and trending repositories using LangChain agent orchestration with error handling and context-aware logging ## Dependencies - **FastMCP**: MCP server framework - **aiohttp**: Async HTTP client - **pydantic**: Data validation - **structlog**: Structured logging - **langchain**: LLM integration and agent framework - **langchain-core**: Core LangChain components - **langchain-openai**: OpenAI integration for LangChain - **pytest**: Testing framework - **pytest-asyncio**: Async test support **Note**: Langfuse observability is included in dependencies but not yet implemented in the current version. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

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/cliffordru/mcp-meeting-agent'

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