Skip to main content
Glama
druling

Druling MCP Server

by druling

Druling MCP Server

Install all dependencies

  • Run pip install -r requirements-dev.txt

How to run app using Docker with PostgreSQL

  • Install Docker Desktop

  • Run docker compose up --build

  • Run docker compose down to stop all services

How to run locally without postgres or docker

  • In database/core.py change the DATABASE_URL to sqlite

  • Run make run

How to run tests

  • Run pytest to run all tests


How to Add a New MCP Server

MCP (Model Context Protocol) servers provide tools and prompts for AI integrations. Follow these steps to add a new MCP server:

Step 1: Create the MCP Server Directory

Create a new directory under src/servers/ for your MCP server:

src/servers/<provider>/<service>/
    __init__.py
    mcp.py
    outputs.py
    prompts.py

For example, to add a new "calendar" service under Google:

src/servers/google/calendar/
    __init__.py
    mcp.py
    outputs.py
    prompts.py

Step 2: Define Output Models (outputs.py)

Create Pydantic models for your tool outputs:

Step 3: Define Prompts (prompts.py)

Create prompts for your MCP server (optional):

Step 4: Create the MCP Server (mcp.py)

Create the MCP server class by extending BaseMCPServer:

Step 5: Register the MCP Server

Update src/setup/mcp.py to register your new MCP server:

from src.servers.google.calendar.mcp import CalendarMCPServer

# Add to existing imports and initializations
calendar_server = CalendarMCPServer()

MCP_PATH = {
    # ...existing servers...
    "calendar": calendar_server,
}

The server will automatically:

  • Be mounted at /<server_name> (e.g., /calendar)

  • Have session management handled by the lifespan context

  • Include authentication and context middleware


How to Add a New REST API

REST APIs are used for standard HTTP endpoints. Follow these steps to add a new API:

Step 1: Create the API Directory

Create a new directory under src/app/ for your API:

src/app/<feature>/
    __init__.py
    api.py

For example, to add a "users" API:

src/app/users/
    __init__.py
    api.py

Step 2: Create the API Router (api.py)

Create the FastAPI router with your endpoints:

Step 3: Register the API Router

Update src/setup/api.py to include your new router:


Project Structure Overview

src/
├── main.py                 # FastAPI app entry point
├── setup/
│   ├── api.py              # REST API route registration
│   └── mcp.py              # MCP server registration
├── app/                    # REST API endpoints
│   ├── health_check/
│   ├── auth/
│   └── <your_api>/
├── servers/                # MCP servers
│   ├── google/
│   │   ├── gmail/
│   │   ├── drive/
│   │   └── <your_service>/
│   ├── druling/
│   └── <your_provider>/
├── core/
│   ├── service/            # Base MCP server class
│   ├── middleware/         # Auth and context middleware
│   ├── exceptions/         # Custom exceptions
│   └── utils/              # Utility functions
└── clients/
    └── backend/            # Backend API client

Key Concepts

MCP Server

  • Extends BaseMCPServer from src.core.service

  • Provides tools (functions) and prompts for AI agents

  • Uses @self._mcp.tool() decorator to register tools

  • Uses mcp_meta() for tool metadata

  • Access user context via self.get_context()

REST API

  • Uses FastAPI's APIRouter

  • Registered via app.include_router()

  • Standard REST conventions with proper status codes

Backend Client

  • Use BackendClient from src.clients.backend.client to call backend services

  • Supports get(), post(), put(), delete() methods

  • Pass context for authenticated requests

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/druling/mcp-server'

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