Skip to main content
Glama

MCP OpsBridge

Production MCP (Model Context Protocol) server exposing real DevOps tools for AI agents.

What It Does

Exposes 12 tools across 4 services that any MCP-compatible client (Claude Desktop, Claude Code, Cursor, custom) can discover and call:

Service

Tools

GitHub

search_issues, get_repo_stats, create_pr

Database

execute_query, list_tables, describe_table

Slack

send_message, list_channels, get_thread

Calendar

query_events, create_event, find_free_slots

Related MCP server: MCP-NG

Architecture

┌──────────────────────────────────────────────────┐
│  CLIENTS                                         │
│  Claude Desktop (stdio) │ Custom Client (HTTP)   │
└────────────┬─────────────────────┬───────────────┘
             │                     │
             ▼                     ▼
┌──────────────────────────────────────────────────┐
│  MCP SERVER                                      │
│  ┌────────────────────────────────────────────┐  │
│  │ Transport: stdio | Streamable HTTP         │  │
│  │ Rate Limiter: 100 req/min user, 1000/hr IP │  │
│  │ Auth: Scoped tokens per service            │  │
│  │ Validation: Zod schemas on all inputs      │  │
│  └────────────────────────────────────────────┘  │
└────────────┬─────────────────────┬───────────────┘
             │                     │
             ▼                     ▼
┌──────────────────────────────────────────────────┐
│  EXTERNAL APIs                                   │
│  GitHub │ Google Calendar │ PostgreSQL │ Slack    │
└──────────────────────────────────────────────────┘

Quick Start

With Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "opsbridge": {
      "command": "npx",
      "args": ["-y", "@saadahmad/opsbridge-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_...",
        "DATABASE_URL": "postgresql://...",
        "SLACK_TOKEN": "xoxb-...",
        "CALENDAR_TOKEN": "ya29..."
      }
    }
  }
}

With Docker

cp .env.example .env
# Edit .env with your tokens
docker compose up -d

Local Development

npm install
npm run build
npm run dev

Environment Variables

Variable

Required

Description

GITHUB_TOKEN

No*

GitHub personal access token (*required for private repos and create_pr)

DATABASE_URL

No*

PostgreSQL connection string (*required for DB tools)

SLACK_TOKEN

No*

Slack bot token (xoxb-...) (*required for Slack tools)

CALENDAR_TOKEN

No*

Google Calendar OAuth token (*required for Calendar tools)

TRANSPORT

No

stdio (default) or http

PORT

No

HTTP port (default: 3002)

Security

  • Read-only database: PostgreSQL session set to READ ONLY + write keyword blocklist

  • Rate limiting: LRU cache, 100 requests/minute per user, 1000/hour per IP

  • Scoped tokens: Each service requires its own token — tokens are not shared across services

  • Input validation: All tool inputs validated with Zod schemas

  • No secrets in code: All tokens loaded from environment variables

Development

npm run build    # Compile TypeScript
npm run dev      # Start dev server (stdio)
npm test         # Run Vitest (23 tests)
npm run lint     # Type check
npm run format   # Prettier format

Tech Stack

  • TypeScript 5.5+

  • @modelcontextprotocol/sdk v1.29 (MCP protocol)

  • Zod (input validation)

  • @octokit/rest (GitHub API)

  • pg (PostgreSQL)

  • lru-cache (rate limiting)

  • Vitest (testing)

License

MIT

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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/SaADii09/MCP-OpsBridge'

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