Skip to main content
Glama
TheTeamRAH

scm-broker-mcp

by TheTeamRAH

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITHUB_TOKENNoGitHub personal access token. Required only if using GitHub.
BITBUCKET_EMAILNoBitbucket account email. Required only if using Bitbucket.
BITBUCKET_API_TOKENNoBitbucket API token. Required only if using Bitbucket.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_repositoriesA

List repositories visible to the authenticated provider account.

Args: provider: "github" or "bitbucket". workspace: Optional Bitbucket workspace or GitHub repository scope. page: One-based page number. page_size: Number of results, from 1 through 100. raw: Include provider payloads.

Returns: Page mapping with items, page, page_size, and has_more.

Examples: Input: {"provider": "github", "page": 1, "page_size": 30}. Output: {"items": [{"id": "1", ...}], "page": 1, "page_size": 30, "has_more": False}.

list_pull_requestsA

List pull requests in a repository.

Args: provider: Provider key. repo: Repository in owner/name or workspace/slug form. state: Provider pull-request state filter. page: One-based page number. page_size: Number of results, from 1 through 100. raw: Include provider payloads.

Returns: Page mapping with normalized pull-request items.

Examples: Input: {"provider": "github", "repo": "o/r", "state": "open"}. Output: {"items": [{"id": "7", "state": "open", ...}], ...}.

get_pull_requestA

Get one pull request.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. raw: Include the provider payload.

Returns: Normalized pull-request mapping with id, title, state, and url.

Examples: Input: {"provider": "github", "repo": "o/r", "pull_request_id": "7"}. Output: {"id": "7", "title": "Fix", "state": "open", ...}.

get_pull_request_diffB

Get a pull request unified diff.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier.

Returns: Mapping shaped as {"diff": str, "raw": None}.

Examples: Input: {"provider": "github", "repo": "o/r", "pull_request_id": "7"}. Output: {"diff": "diff --git ...", "raw": None}.

list_pull_request_commitsB

List commits associated with a pull request.

Args: provider: Provider key; repo and pull_request_id identify the PR. page: One-based page number. page_size: Number of results, from 1 through 100. raw: Include provider payloads.

Returns: Page mapping containing normalized commit items.

Examples: Input: {"provider": "github", "repo": "o/r", "pull_request_id": "7"}. Output: {"items": [{"id": "abc", ...}], "page": 1, ...}.

create_pull_requestB

Create a pull request from one branch into another.

Args: provider: Provider key. repo: Repository identity. title: Pull-request title. source_branch: Source branch name. target_branch: Destination branch name. description: Optional body text. raw: Include the provider payload.

Returns: Normalized write-result mapping with identifier, state, and URL fields.

Examples: Input: {"repo": "o/r", "title": "Fix", "source_branch": "bug", "target_branch": "main"}. Output: {"id": "8", "state": "open", "url": "https://...", ...}.

update_pull_requestA

Update a pull-request title or description.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. title: Optional replacement title. description: Optional replacement body. raw: Include the provider payload.

Returns: Normalized write-result mapping.

Examples: Input: {"repo": "o/r", "pull_request_id": "7", "title": "Updated"}. Output: {"id": "7", "title": "Updated", "state": "open", ...}.

update_pull_request_reviewersB

Request reviewers when supported by the provider.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. reviewers: Reviewer usernames or account identifiers.

Returns: Normalized provider write-result mapping.

Examples: Input: {"repo": "o/r", "pull_request_id": "7", "reviewers": ["alice"]}. Output: {"id": "7", "state": "", "raw": None, ...}.

close_pull_requestB

Close or decline a pull request.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. raw: Include the provider payload.

Returns: Normalized write-result mapping with the resulting state.

Examples: Input: {"repo": "o/r", "pull_request_id": "7"}. Output: {"id": "7", "state": "closed", ...}.

merge_pull_requestA

Merge a pull request using an explicit provider-supported method.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. merge_method: One of merge, squash, or rebase. raw: Include the provider payload.

Returns: Normalized write-result mapping with resulting state and URL.

Examples: Input: {"repo": "o/r", "pull_request_id": "7", "merge_method": "squash"}. Output: {"id": "7", "state": "merged", ...}.

add_pull_request_commentB

Add a comment to a pull request.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. body: Comment text. raw: Include the provider payload.

Returns: Normalized write-result mapping.

Examples: Input: {"repo": "o/r", "pull_request_id": "7", "body": "Looks good"}. Output: {"id": "comment-1", "state": "", ...}.

list_pull_request_commentsA

List comments attached to a pull request.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. page: One-based page number. page_size: Number of results, from 1 through 100. raw: Include provider payloads.

Returns: Page mapping containing normalized comment items.

Examples: Input: {"repo": "o/r", "pull_request_id": "7", "page": 1}. Output: {"items": [{"id": "comment-1", ...}], ...}.

list_pull_request_reviewsA

List reviews attached to a pull request.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. page: One-based page number. page_size: Number of results, from 1 through 100. raw: Include provider payloads.

Returns: Page mapping containing normalized review items.

Examples: Input: {"repo": "o/r", "pull_request_id": "7", "page": 1}. Output: {"items": [{"id": "review-1", ...}], ...}.

submit_pull_request_reviewA

Submit an approve, request-changes, or comment review.

Args: provider: Provider key. repo: Repository identity. pull_request_id: Provider pull-request identifier. event: approve, request_changes, or comment. body: Optional review body. raw: Include the provider payload.

Returns: Normalized write-result mapping, or a structured error mapping.

Examples: Input: {"repo": "o/r", "pull_request_id": "7", "event": "approve"}. Output: {"id": "7", "state": "approved", ...} or an error shape.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource-action pair: repository listing versus pull request listing, and PR-specific tools are cleanly separated by diff, commits, comments, reviews, close, merge, and reviewer assignment. Even similar operations like update_pull_request_reviewers and submit_pull_request_review are unambiguous from their names and arguments.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern using list_, get_, create_, update_, close_, merge_, add_, and submit_. The plural/singular variations are grammatical and predictable, making the API easy to navigate.

Tool Count5/5

14 tools is a well-scoped size for an SCM broker covering repository discovery and full pull request workflows. Every tool serves a meaningful purpose without redundancy or filler.

Completeness4/5

The pull request lifecycle is thoroughly covered: reading, creating, updating, closing, merging, commenting, and reviewing. The repository side is thin (only list_repositories, no get/create), and comments/reviews lack update/delete operations, but these are minor gaps agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues