Install
$ agentstack add mcp-druling-mcp-server ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 downto 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
pytestto 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///
__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
/(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//
__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/
│ └── /
├── servers/ # MCP servers
│ ├── google/
│ │ ├── gmail/
│ │ ├── drive/
│ │ └── /
│ ├── druling/
│ └── /
├── 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
BaseMCPServerfromsrc.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
BackendClientfromsrc.clients.backend.clientto call backend services - Supports
get(),post(),put(),delete()methods - Pass
contextfor authenticated requests
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: druling
- Source: druling/mcp-server
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.