home / mcp / mpo mcp server

MPO MCP Server

This is a repo to set up MCP server for Git hub, confluence and Databricks tools

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "bsangars-mcp": {
      "command": "python",
      "args": [
        "-m",
        "mpo_mcp.server"
      ],
      "env": {
        "GITHUB_ORG": "YOUR_ORG",
        "GITHUB_TOKEN": "YOUR_GITHUB_TOKEN",
        "CONFLUENCE_URL": "https://your-domain.atlassian.net",
        "DATABRICKS_HOST": "https://your-workspace.databricks.com",
        "DATABRICKS_TOKEN": "YOUR_DATABRICKS_TOKEN",
        "ANTHROPIC_API_KEY": "YOUR_ANTHROPIC_API_KEY",
        "DATABRICKS_CATALOG": "YOUR_CATALOG",
        "CONFLUENCE_USERNAME": "YOUR_EMAIL",
        "CONFLUENCE_API_TOKEN": "YOUR_CONFLUENCE_API_TOKEN",
        "CONFLUENCE_SPACE_KEY": "YOUR_SPACE",
        "DATABRICKS_WAREHOUSE_ID": "YOUR_WAREHOUSE_ID"
      }
    }
  }
}

You run a dedicated MCP server that exposes a rich set of tools to enable AI assistants and MCP clients to interact with GitHub, Confluence, and Databricks Unity Catalog. This server is built with FastMCP for reliable, decorator-based integration and can be configured to enable only the services you need while keeping credentials secure via environment variables.

How to use

You start the MCP server locally to expose tooling through the Model Context Protocol. Run it in a development environment to test interactive usage or connect Claude Desktop and other MCP clients to orchestrate tool calls across your GitHub, Confluence, and Databricks resources. You can also invoke tools directly via the command-line interface to perform specific tasks without starting a full assistant.

How to install

# Prerequisites
Python 3.10 or higher
pip (or uvx) for package management

# Install from source and set up environment
git clone https://example.com/owner/mpo-mcp.git
cd mpo-mcp
pip install -r requirements.txt

# Optional: install as package to get CLI tools
pip install -e .

# Create configuration file if it does not exist
cp .env.example .env  # If an example exists

# Add credentials and configuration details to .env (see Configuration section)
# Start the MCP server via stdio configuration (recommended for local development)
python -m mpo_mcp.server

# Or run as a package if installed
mpo-mcp-server
``"

Configuration

Configure credentials and service settings in a .env file at the project root. Provide tokens and endpoints for the services you intend to use. The server validates configurations at startup and exposes only the tools for which valid credentials exist.

# Example .env configuration (placeholders shown)
# Anthropic for the Interactive LLM Assistant
ANTHROPIC_API_KEY=your_anthropic_api_key_here

# GitHub
GITHUB_TOKEN=your_github_token_here
GITHUB_ORG=your_default_org_or_username

# Confluence
CONFLUENCE_URL=https://your-domain.atlassian.net
[email protected]
CONFLUENCE_API_TOKEN=your_confluence_api_token
CONFLUENCE_SPACE_KEY=your_default_space_key

# Databricks
DATABRICKS_HOST=https://your-workspace.databricks.com
DATABRICKS_TOKEN=your_databricks_token
DATABRICKS_CATALOG=your_default_catalog
DATABRICKS_WAREHOUSE_ID=your_sql_warehouse_id

Usage notes

Partial configurations are supported. If you configure only GitHub, only GitHub tools will be exposed. The server validates credentials at startup and provides clear error messages if required credentials are missing.

Security considerations

Treat API keys and tokens as secrets. Store them in the environment or a secure secret manager and avoid committing them to source control. When running in shared environments, limit the scope of tokens to just the necessary permissions for each service.

Troubleshooting

If tools do not appear in your MCP client or the server fails to start, verify that your credentials are present in the .env file, confirm the .env file is in the project root, and restart the MCP client after changes. Check for Python version compatibility (3.10+) and reinstall dependencies if needed.

Available tools

github_list_repositories

List repositories for a user or organization with optional limits and metadata.

github_get_repository_info

Fetch detailed information about a single GitHub repository.

github_search_code

Search code across GitHub repositories with optional repo scoping and result limits.

github_get_file_contents

Read file contents from a repository at a given path and ref.

github_list_branches

List branches of a repository with optional limit.

github_get_pull_requests

Retrieve pull requests for a repository with state and limit options.

confluence_list_pages

List pages within a Confluence space, with optional limit.

confluence_get_page_content

Get full content and metadata of a Confluence page.

confluence_search_pages

Search for Confluence pages across spaces with a query.

confluence_get_page_by_title

Find a Confluence page by exact title within a space.

confluence_list_spaces

List available Confluence spaces with basic metadata.

databricks_list_catalogs

List all Unity Catalog catalogs.

databricks_list_schemas

List schemas within a catalog.

databricks_list_tables

List tables within a schema.

databricks_get_table_schema

Get detailed schema for a specific table.

databricks_search_tables

Search for tables by name pattern across catalogs.

databricks_get_catalog_info

Get detailed catalog information.

databricks_get_schema_info

Get detailed schema information for a schema.

databricks_execute_query

Execute a SQL query against Databricks and return results.

databricks_list_warehouses

List available SQL warehouses.

databricks_list_sql_warehouses

Alias for listing SQL warehouses