Skip to main content
Version: Next

MCP Server Catalogs

Overview

Obot supports managing MCP servers through Git repositories, enabling Infrastructure as Code and GitOps workflows. Instead of manually adding MCP servers one at a time, administrators can source server configurations from Git repositories. This supports collaborative workflows with proper code review, versioning, and automated validation processes.

Key Benefits

  • Version Control: Change tracking, rollback capabilities, and branch-based development
  • Collaborative Workflows: PR-based reviews, team collaboration, and approval processes
  • Validation & Quality Assurance: Automated testing, CI/CD integration, and consistent formatting
  • Infrastructure as Code: Integration with existing DevOps workflows and automated deployment

Getting Started

  1. Create or Fork a Repository: Start with the official Obot MCP catalog or create your own repository
  2. Add Server Configurations: Create YAML files for each MCP server following the catalog format (see examples below)
  3. Configure Obot: Point your Obot instance to the Git repository containing your catalog
  4. Establish Review Workflows: Set up branch protection rules and PR-based review processes for configuration changes
  5. Automate Validation: Implement CI/CD pipelines to validate YAML syntax and test server configurations

Catalog Format

MCP server catalogs consist of individual YAML files, each defining a single MCP server configuration. These files contain comprehensive metadata including:

  • Name and Description: Human-readable identification
  • Tool Previews: Documentation of available tools and their parameters
  • Metadata: Categories, icons, repository URLs, and classification information
  • Environment Variables: Required and optional configuration parameters
  • Runtime Configuration: Deployment and connection details

For examples and reference implementations, see the official Obot MCP catalog at github.com/obot-platform/mcp-catalog.

YAML Configuration Structure

Each MCP server is defined in its own YAML file with the following structure:

Basic Information

name: Server Name
description: |
Detailed description of the server's capabilities and features.
Supports multi-line markdown formatting.

Tool Previews

toolPreview:
- name: tool_name
description: Description of what this tool does
params:
param1: Parameter description
param2: Optional parameter description (optional)

Metadata and Classification

metadata:
categories: Category Name, Another Category
unsupportedTools: tool1,tool2 # Optional
icon: https://example.com/icon.png
repoURL: https://github.com/owner/repo

Environment Variables

env:
- key: ENVIRONMENT_VARIABLE
name: Human Readable Name
required: true
sensitive: true
description: Description of this variable

Runtime Configuration

For remote servers:

runtime: remote
remoteConfig:
hostname: api.example.com
fixedURL: https://api.example.com/mcp # Alternative to hostname
headers:
- name: Authorization Header
description: API token description
key: Authorization
required: true
sensitive: true

For local packages:

runtime: uvx
uvxConfig:
package: 'package-name@latest'

Complete Example

Here's a full example of an MCP server configuration file (github.yaml):

name: GitHub
description: |
A Model Context Protocol (MCP) server that provides easy connection to GitHub using the hosted version – no local setup or runtime required. Access comprehensive GitHub functionality through a remote server with additional tools not available in the local version.

## Features
- **Repository Management**: Browse and query code, search files, analyze commits, and understand project structure
- **Issue & PR Automation**: Create, update, and manage issues and pull requests with AI assistance
- **CI/CD & Workflow Intelligence**: Monitor GitHub Actions workflow runs, analyze build failures, and manage releases
- **Code Analysis**: Examine security findings, review Dependabot alerts, and get comprehensive codebase insights

## What you'll need to connect
**Required:**
- **Personal Access Token**: GitHub Personal Access Token with appropriate repository permissions

toolPreview:
- name: create_issue
description: Create a new issue in a GitHub repository
params:
owner: Repository owner
repo: Repository name
title: Issue title
body: Issue body content (optional)
labels: Labels to apply to this issue (optional)
- name: create_pull_request
description: Create a new pull request in a GitHub repository
params:
base: Branch to merge into
head: Branch containing changes
owner: Repository owner
repo: Repository name
title: PR title
body: PR description (optional)

metadata:
categories: Developer Tools
unsupportedTools: create_or_update_file,push_files
icon: https://avatars.githubusercontent.com/u/9919?v=4
repoURL: https://github.com/github/github-mcp-server

runtime: remote
remoteConfig:
hostname: api.githubcopilot.com
headers:
- name: Personal Access Token
description: GitHub PAT
key: Authorization
required: true
sensitive: true

This example demonstrates all the key components: descriptive content with markdown formatting, tool previews with parameter documentation, metadata classification, and remote runtime configuration with authentication headers.