SAMLA-io/samla-mcp
If you are the rightful owner of samla-mcp 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.
The SAMLA MCP Server is a centralized hub for resource sharing and tool management across all SAMLA systems, providing a unified interface for consistent operations.
SAMLA MCP Server
A unified Model Context Protocol (MCP) server for SAMLA systems that enables centralized resource sharing and tool management across all SAMLA components.
Overview
The SAMLA MCP Server acts as a central hub that allows all SAMLA systems to share the same resources, tools, and services through a single unified interface. This eliminates the need for individual system configurations and provides a consistent experience across the entire SAMLA ecosystem.
Features
- Unified Server Architecture: Single MCP server that manages all connected services
- Automatic Service Discovery: Automatically detects and loads all available server modules
- Centralized Resource Management: Shared resources, authentication, and tool access
- Scalable Design: Easy to add new services and tools without modifying core infrastructure
- Cross-System Compatibility: Consistent API and tool access across all SAMLA systems
Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā SAMLA MCP Server ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā ā
ā ā Google ā ā Other ā ā Custom ā ā
ā ā Calendar ā ā Services ā ā Services ā ā
ā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā Unified MCP Interface ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Quick Start
Prerequisites
- Python 3.8+
- Klavis API key (set as
KLAVIS_API_KEY
environment variable)
Installation
- Clone the repository:
git clone https://github.com/samla-io/samla-mcp.git
cd samla-mcp
- Install dependencies:
uv sync
- Set up your environment:
KLAVIS_API_KEY=your_klavis_api_key
Running the Server
uv run main.py
The server will:
- Automatically discover and load all available service modules
- Create a unified MCP server instance
- Register all services with the unified server
- Display the server URL for client connections
Adding New Services
To add a new service to the SAMLA MCP Server:
- Create a new Python file in the
servers/
directory - Follow the template pattern (see
servers/README.md
for details) - The service will be automatically discovered and loaded
Example service structure:
from servers import klavis_client, register_server
from klavis.types import McpServerName
def create_my_service():
service = klavis_client.mcp_server.create_server_instance(
server_name=McpServerName.YOUR_SERVICE,
user_id="user123",
platform_name="samla-mcp",
)
register_server("my_service", service)
return service
my_service = create_my_service()
Current Services
- Google Calendar: Calendar integration and scheduling tools
- More services can be easily added
Configuration
Environment Variables
KLAVIS_API_KEY
: Your Klavis API key for service authentication
Server Configuration
The server uses the following default configuration:
- User ID:
user123
- Platform Name:
samla-mcp
These can be modified in the individual service files or main configuration.
Integration with SAMLA Systems
SAMLA systems can connect to this MCP server to access:
- Shared Tools: Common utilities and functions
- Centralized Resources: Database connections, API keys, etc.
- Unified Authentication: Single sign-on across all services
- Consistent APIs: Standardized interfaces for all operations
Development
Project Structure
samla-mcp/
āāā main.py # Main server entry point
āāā servers/ # Service modules
ā āāā __init__.py # Server registry and discovery
ā āāā google_calendar.py # Google Calendar service
ā āāā README.md # Service development guide
āāā pyproject.toml # Project configuration
āāā README.md # This file
Adding New Features
- New Services: Add Python files to the
servers/
directory - Core Functionality: Modify
main.py
for server-wide changes - Configuration: Update environment variables or configuration files
Contributing
- Fork the repository
- Create a feature branch
- Add your service or enhancement
- Test thoroughly
- Submit a pull request
License
This project is licensed under a propietary license.