Skip to content

Github Usage Guide

Overview

This guide shows how to use the Github with different MCP clients and integration methods.

Tool Discovery

# Start interactive mode
mcp_platform interactive

# List available tools
mcpp> tools github
# Discover tools using CLI
mcp_platform tools github
from mcp_platform.client import MCPClient

async def discover_tools():
    client = MCPClient()
    tools = client.list_tools("github")
    for tool in tools:
        print(f"Tool: {tool['name']} - {tool['description']}")

Available Tools

add_comment_to_pending_review

Description: Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure).

Parameters: - body (string) (required): The text of the review comment - line (number) (optional): The line of the blob in the pull request diff that the comment applies to. For multi-line comments, the last line of the range - owner (string) (required): Repository owner - path (string) (required): The relative path to the file that necessitates a comment - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name - side (string) (optional): The side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state - startLine (number) (optional): For multi-line comments, the first line of the range that the comment applies to - startSide (string) (optional): For multi-line comments, the starting side of the diff that the comment applies to. LEFT indicates the previous state, RIGHT indicates the new state - subjectType (string) (required): The level at which the comment is targeted

add_issue_comment

Description: Add a comment to a specific issue in a GitHub repository.

Parameters: - body (string) (required): Comment content - issue_number (number) (required): Issue number to comment on - owner (string) (required): Repository owner - repo (string) (required): Repository name

add_sub_issue

Description: Add a sub-issue to a parent issue in a GitHub repository.

Parameters: - issue_number (number) (required): The number of the parent issue - owner (string) (required): Repository owner - replace_parent (boolean) (optional): When true, replaces the sub-issue's current parent issue - repo (string) (required): Repository name - sub_issue_id (number) (required): The ID of the sub-issue to add. ID is not the same as issue number

assign_copilot_to_issue

Description: Assign Copilot to a specific issue in a GitHub repository.

This tool can help with the following outcomes: - a Pull Request created with source code changes to resolve the issue

More information can be found at: - https://docs.github.com/en/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot

Parameters: - issueNumber (number) (required): Issue number - owner (string) (required): Repository owner - repo (string) (required): Repository name

cancel_workflow_run

Description: Cancel a workflow run

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

create_and_submit_pull_request_review

Description: Create and submit a review for a pull request without review comments.

Parameters: - body (string) (required): Review comment text - commitID (string) (optional): SHA of commit to review - event (string) (required): Review action to perform - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

create_branch

Description: Create a new branch in a GitHub repository

Parameters: - branch (string) (required): Name for new branch - from_branch (string) (optional): Source branch (defaults to repo default) - owner (string) (required): Repository owner - repo (string) (required): Repository name

create_issue

Description: Create a new issue in a GitHub repository.

Parameters: - assignees (array) (optional): Usernames to assign to this issue - body (string) (optional): Issue body content - labels (array) (optional): Labels to apply to this issue - milestone (number) (optional): Milestone number - owner (string) (required): Repository owner - repo (string) (required): Repository name - title (string) (required): Issue title

create_or_update_file

Description: Create or update a single file in a GitHub repository. If updating, you must provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations.

Parameters: - branch (string) (required): Branch to create/update the file in - content (string) (required): Content of the file - message (string) (required): Commit message - owner (string) (required): Repository owner (username or organization) - path (string) (required): Path where to create/update the file - repo (string) (required): Repository name - sha (string) (optional): Required if updating an existing file. The blob SHA of the file being replaced.

create_pending_pull_request_review

Description: Create a pending review for a pull request. Call this first before attempting to add comments to a pending review, and ultimately submitting it. A pending pull request review means a pull request review, it is pending because you create it first and submit it later, and the PR author will not see it until it is submitted.

Parameters: - commitID (string) (optional): SHA of commit to review - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

create_pull_request

Description: Create a new pull request in a GitHub repository.

Parameters: - base (string) (required): Branch to merge into - body (string) (optional): PR description - draft (boolean) (optional): Create as draft PR - head (string) (required): Branch containing changes - maintainer_can_modify (boolean) (optional): Allow maintainer edits - owner (string) (required): Repository owner - repo (string) (required): Repository name - title (string) (required): PR title

create_repository

Description: Create a new GitHub repository in your account

Parameters: - autoInit (boolean) (optional): Initialize with README - description (string) (optional): Repository description - name (string) (required): Repository name - private (boolean) (optional): Whether repo should be private

delete_file

Description: Delete a file from a GitHub repository

Parameters: - branch (string) (required): Branch to delete the file from - message (string) (required): Commit message - owner (string) (required): Repository owner (username or organization) - path (string) (required): Path to the file to delete - repo (string) (required): Repository name

delete_pending_pull_request_review

Description: Delete the requester's latest pending pull request review. Use this after the user decides not to submit a pending review, if you don't know if they already created one then check first.

Parameters: - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

delete_workflow_run_logs

Description: Delete logs for a workflow run

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

dismiss_notification

Description: Dismiss a notification by marking it as read or done

Parameters: - state (string) (optional): The new state of the notification (read/done) - threadID (string) (required): The ID of the notification thread

download_workflow_run_artifact

Description: Get download URL for a workflow run artifact

Parameters: - artifact_id (number) (required): The unique identifier of the artifact - owner (string) (required): Repository owner - repo (string) (required): Repository name

fork_repository

Description: Fork a GitHub repository to your account or specified organization

Parameters: - organization (string) (optional): Organization to fork to - owner (string) (required): Repository owner - repo (string) (required): Repository name

get_code_scanning_alert

Description: Get details of a specific code scanning alert in a GitHub repository.

Parameters: - alertNumber (number) (required): The number of the alert. - owner (string) (required): The owner of the repository. - repo (string) (required): The name of the repository.

get_commit

Description: Get details for a commit from a GitHub repository

Parameters: - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name - sha (string) (required): Commit SHA, branch name, or tag name

get_dependabot_alert

Description: Get details of a specific dependabot alert in a GitHub repository.

Parameters: - alertNumber (number) (required): The number of the alert. - owner (string) (required): The owner of the repository. - repo (string) (required): The name of the repository.

get_discussion

Description: Get a specific discussion by ID

Parameters: - discussionNumber (number) (required): Discussion Number - owner (string) (required): Repository owner - repo (string) (required): Repository name

get_discussion_comments

Description: Get comments from a discussion

Parameters: - after (string) (optional): Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs. - discussionNumber (number) (required): Discussion Number - owner (string) (required): Repository owner - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name

get_file_contents

Description: Get the contents of a file or directory from a GitHub repository

Parameters: - owner (string) (required): Repository owner (username or organization) - path (string) (optional): Path to file/directory (directories must end with a slash '/') - ref (string) (optional): Accepts optional git refs such as refs/tags/{tag}, refs/heads/{branch} or refs/pull/{pr_number}/head - repo (string) (required): Repository name - sha (string) (optional): Accepts optional commit SHA. If specified, it will be used instead of ref

get_issue

Description: Get details of a specific issue in a GitHub repository.

Parameters: - issue_number (number) (required): The number of the issue - owner (string) (required): The owner of the repository - repo (string) (required): The name of the repository

get_issue_comments

Description: Get comments for a specific issue in a GitHub repository.

Parameters: - issue_number (number) (required): Issue number - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name

get_job_logs

Description: Download logs for a specific workflow job or efficiently get all failed job logs for a workflow run

Parameters: - failed_only (boolean) (optional): When true, gets logs for all failed jobs in run_id - job_id (number) (optional): The unique identifier of the workflow job (required for single job logs) - owner (string) (required): Repository owner - repo (string) (required): Repository name - return_content (boolean) (optional): Returns actual log content instead of URLs - run_id (number) (optional): Workflow run ID (required when using failed_only) - tail_lines (number) (optional): Number of lines to return from the end of the log

get_me

Description: Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.

Parameters: - No parameters required

get_notification_details

Description: Get detailed information for a specific GitHub notification, always call this tool when the user asks for details about a specific notification, if you don't know the ID list notifications first.

Parameters: - notificationID (string) (required): The ID of the notification

get_pull_request

Description: Get details of a specific pull request in a GitHub repository.

Parameters: - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

get_pull_request_comments

Description: Get comments for a specific pull request.

Parameters: - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

get_pull_request_diff

Description: Get the diff of a pull request.

Parameters: - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

get_pull_request_files

Description: Get the files changed in a specific pull request.

Parameters: - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

get_pull_request_reviews

Description: Get reviews for a specific pull request.

Parameters: - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

get_pull_request_status

Description: Get the status of a specific pull request.

Parameters: - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

get_secret_scanning_alert

Description: Get details of a specific secret scanning alert in a GitHub repository.

Parameters: - alertNumber (number) (required): The number of the alert. - owner (string) (required): The owner of the repository. - repo (string) (required): The name of the repository.

get_tag

Description: Get details about a specific git tag in a GitHub repository

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - tag (string) (required): Tag name

get_workflow_run

Description: Get details of a specific workflow run

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

get_workflow_run_logs

Description: Download logs for a specific workflow run (EXPENSIVE: downloads ALL logs as ZIP. Consider using get_job_logs with failed_only=true for debugging failed jobs)

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

get_workflow_run_usage

Description: Get usage metrics for a workflow run

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

list_branches

Description: List branches in a GitHub repository

Parameters: - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name

list_code_scanning_alerts

Description: List code scanning alerts in a GitHub repository.

Parameters: - owner (string) (required): The owner of the repository. - ref (string) (optional): The Git reference for the results you want to list. - repo (string) (required): The name of the repository. - severity (string) (optional): Filter code scanning alerts by severity - state (string) (optional): Filter code scanning alerts by state. Defaults to open - tool_name (string) (optional): The name of the tool used for code scanning.

list_commits

Description: Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).

Parameters: - author (string) (optional): Author username or email address to filter commits by - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name - sha (string) (optional): Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA.

list_dependabot_alerts

Description: List dependabot alerts in a GitHub repository.

Parameters: - owner (string) (required): The owner of the repository. - repo (string) (required): The name of the repository. - severity (string) (optional): Filter dependabot alerts by severity - state (string) (optional): Filter dependabot alerts by state. Defaults to open

list_discussion_categories

Description: List discussion categories with their id and name, for a repository

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name

list_discussions

Description: List discussions for a repository

Parameters: - after (string) (optional): Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs. - category (string) (optional): Optional filter by discussion category ID. If provided, only discussions with this category are listed. - direction (string) (optional): Order direction. - orderBy (string) (optional): Order discussions by field. If provided, the 'direction' also needs to be provided. - owner (string) (required): Repository owner - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name

list_issues

Description: List issues in a GitHub repository.

Parameters: - direction (string) (optional): Sort direction - labels (array) (optional): Filter by labels - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name - since (string) (optional): Filter by date (ISO 8601 timestamp) - sort (string) (optional): Sort order - state (string) (optional): Filter by state

list_notifications

Description: Lists all GitHub notifications for the authenticated user, including unread notifications, mentions, review requests, assignments, and updates on issues or pull requests. Use this tool whenever the user asks what to work on next, requests a summary of their GitHub activity, wants to see pending reviews, or needs to check for new updates or tasks. This tool is the primary way to discover actionable items, reminders, and outstanding work on GitHub. Always call this tool when asked what to work on next, what is pending, or what needs attention in GitHub.

Parameters: - before (string) (optional): Only show notifications updated before the given time (ISO 8601 format) - filter (string) (optional): Filter notifications to, use default unless specified. Read notifications are ones that have already been acknowledged by the user. Participating notifications are those that the user is directly involved in, such as issues or pull requests they have commented on or created. - owner (string) (optional): Optional repository owner. If provided with repo, only notifications for this repository are listed. - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (optional): Optional repository name. If provided with owner, only notifications for this repository are listed. - since (string) (optional): Only show notifications updated after the given time (ISO 8601 format)

list_pull_requests

Description: List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.

Parameters: - base (string) (optional): Filter by base branch - direction (string) (optional): Sort direction - head (string) (optional): Filter by head user/org and branch - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name - sort (string) (optional): Sort by - state (string) (optional): Filter by state

list_secret_scanning_alerts

Description: List secret scanning alerts in a GitHub repository.

Parameters: - owner (string) (required): The owner of the repository. - repo (string) (required): The name of the repository. - resolution (string) (optional): Filter by resolution - secret_type (string) (optional): A comma-separated list of secret types to return. All default secret patterns are returned. To return generic patterns, pass the token name(s) in the parameter. - state (string) (optional): Filter by state

list_sub_issues

Description: List sub-issues for a specific issue in a GitHub repository.

Parameters: - issue_number (number) (required): Issue number - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (default: 1) - per_page (number) (optional): Number of results per page (max 100, default: 30) - repo (string) (required): Repository name

list_tags

Description: List git tags in a GitHub repository

Parameters: - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name

list_workflow_jobs

Description: List jobs for a specific workflow run

Parameters: - filter (string) (optional): Filters jobs by their completed_at timestamp - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

list_workflow_run_artifacts

Description: List artifacts for a workflow run

Parameters: - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

list_workflow_runs

Description: List workflow runs for a specific workflow

Parameters: - actor (string) (optional): Returns someone's workflow runs. Use the login for the user who created the workflow run. - branch (string) (optional): Returns workflow runs associated with a branch. Use the name of the branch. - event (string) (optional): Returns workflow runs for a specific event type - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name - status (string) (optional): Returns workflow runs with the check run status - workflow_id (string) (required): The workflow ID or workflow file name

list_workflows

Description: List workflows in a repository

Parameters: - owner (string) (required): Repository owner - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - repo (string) (required): Repository name

manage_notification_subscription

Description: Manage a notification subscription: ignore, watch, or delete a notification thread subscription.

Parameters: - action (string) (required): Action to perform: ignore, watch, or delete the notification subscription. - notificationID (string) (required): The ID of the notification thread.

manage_repository_notification_subscription

Description: Manage a repository notification subscription: ignore, watch, or delete repository notifications subscription for the provided repository.

Parameters: - action (string) (required): Action to perform: ignore, watch, or delete the repository notification subscription. - owner (string) (required): The account owner of the repository. - repo (string) (required): The name of the repository.

mark_all_notifications_read

Description: Mark all notifications as read

Parameters: - lastReadAt (string) (optional): Describes the last point that notifications were checked (optional). Default: Now - owner (string) (optional): Optional repository owner. If provided with repo, only notifications for this repository are marked as read. - repo (string) (optional): Optional repository name. If provided with owner, only notifications for this repository are marked as read.

merge_pull_request

Description: Merge a pull request in a GitHub repository.

Parameters: - commit_message (string) (optional): Extra detail for merge commit - commit_title (string) (optional): Title for merge commit - merge_method (string) (optional): Merge method - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

push_files

Description: Push multiple files to a GitHub repository in a single commit

Parameters: - branch (string) (required): Branch to push to - files (array) (required): Array of file objects to push, each object with path (string) and content (string) - message (string) (required): Commit message - owner (string) (required): Repository owner - repo (string) (required): Repository name

remove_sub_issue

Description: Remove a sub-issue from a parent issue in a GitHub repository.

Parameters: - issue_number (number) (required): The number of the parent issue - owner (string) (required): Repository owner - repo (string) (required): Repository name - sub_issue_id (number) (required): The ID of the sub-issue to remove. ID is not the same as issue number

reprioritize_sub_issue

Description: Reprioritize a sub-issue to a different position in the parent issue's sub-issue list.

Parameters: - after_id (number) (optional): The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified) - before_id (number) (optional): The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified) - issue_number (number) (required): The number of the parent issue - owner (string) (required): Repository owner - repo (string) (required): Repository name - sub_issue_id (number) (required): The ID of the sub-issue to reprioritize. ID is not the same as issue number

request_copilot_review

Description: Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.

Parameters: - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

rerun_failed_jobs

Description: Re-run only the failed jobs in a workflow run

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

rerun_workflow_run

Description: Re-run an entire workflow run

Parameters: - owner (string) (required): Repository owner - repo (string) (required): Repository name - run_id (number) (required): The unique identifier of the workflow run

run_workflow

Description: Run an Actions workflow by workflow ID or filename

Parameters: - inputs (object) (optional): Inputs the workflow accepts - owner (string) (required): Repository owner - ref (string) (required): The git reference for the workflow. The reference can be a branch or tag name. - repo (string) (required): Repository name - workflow_id (string) (required): The workflow ID (numeric) or workflow file name (e.g., main.yml, ci.yaml)

search_code

Description: Search for code across GitHub repositories

Parameters: - order (string) (optional): Sort order - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - query (string) (required): Search query using GitHub code search syntax - sort (string) (optional): Sort field ('indexed' only)

search_issues

Description: Search for issues in GitHub repositories using issues search syntax already scoped to is:issue

Parameters: - order (string) (optional): Sort order - owner (string) (optional): Optional repository owner. If provided with repo, only notifications for this repository are listed. - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - query (string) (required): Search query using GitHub issues search syntax - repo (string) (optional): Optional repository name. If provided with owner, only notifications for this repository are listed. - sort (string) (optional): Sort field by number of matches of categories, defaults to best match

search_orgs

Description: Search for GitHub organizations exclusively

Parameters: - order (string) (optional): Sort order - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - query (string) (required): Search query using GitHub organizations search syntax scoped to type:org - sort (string) (optional): Sort field by category

search_pull_requests

Description: Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr

Parameters: - order (string) (optional): Sort order - owner (string) (optional): Optional repository owner. If provided with repo, only notifications for this repository are listed. - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - query (string) (required): Search query using GitHub pull request search syntax - repo (string) (optional): Optional repository name. If provided with owner, only notifications for this repository are listed. - sort (string) (optional): Sort field by number of matches of categories, defaults to best match

search_repositories

Description: Search for GitHub repositories

Parameters: - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - query (string) (required): Search query

search_users

Description: Search for GitHub users exclusively

Parameters: - order (string) (optional): Sort order - page (number) (optional): Page number for pagination (min 1) - perPage (number) (optional): Results per page for pagination (min 1, max 100) - query (string) (required): Search query using GitHub users search syntax scoped to type:user - sort (string) (optional): Sort field by category

submit_pending_pull_request_review

Description: Submit the requester's latest pending pull request review, normally this is a final step after creating a pending review, adding comments first, unless you know that the user already did the first two steps, you should check before calling this.

Parameters: - body (string) (optional): The text of the review comment - event (string) (required): The event to perform - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

update_issue

Description: Update an existing issue in a GitHub repository.

Parameters: - assignees (array) (optional): New assignees - body (string) (optional): New description - issue_number (number) (required): Issue number to update - labels (array) (optional): New labels - milestone (number) (optional): New milestone number - owner (string) (required): Repository owner - repo (string) (required): Repository name - state (string) (optional): New state - title (string) (optional): New title

update_pull_request

Description: Update an existing pull request in a GitHub repository.

Parameters: - base (string) (optional): New base branch name - body (string) (optional): New description - maintainer_can_modify (boolean) (optional): Allow maintainer edits - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number to update - repo (string) (required): Repository name - state (string) (optional): New state - title (string) (optional): New title

update_pull_request_branch

Description: Update the branch of a pull request with the latest changes from the base branch.

Parameters: - expectedHeadSha (string) (optional): The expected SHA of the pull request's HEAD ref - owner (string) (required): Repository owner - pullNumber (number) (required): Pull request number - repo (string) (required): Repository name

Usage Examples

# Start interactive mode
mcp_platform interactive

# Deploy the template (if not already deployed)
mcpp> deploy github

# List available tools after deployment
mcpp> tools github

Then call tools:

mcpp> call github add_comment_to_pending_review '{"body": "example_value", "line": 123, "owner": "example_value", "path": "example_value", "pullNumber": 123, "repo": "example_value", "side": "example_value", "startLine": 123, "startSide": "example_value", "subjectType": "example_value"}'
mcpp> call github add_issue_comment '{"body": "example_value", "issue_number": 123, "owner": "example_value", "repo": "example_value"}'
mcpp> call github add_sub_issue '{"issue_number": 123, "owner": "example_value", "replace_parent": true, "repo": "example_value", "sub_issue_id": 123}'
# Deploy the template
mcp_platform deploy github

# Check deployment status
mcp_platform status

# View logs
mcp_platform logs github

# Stop the template
mcp_platform stop github
import asyncio
from mcp_platform.client import MCPClient

async def use_github():
    client = MCPClient()

    # Start the server
    deployment = client.start_server("github", {})

    if deployment["success"]:
        deployment_id = deployment["deployment_id"]

        try:
            # Discover available tools
            tools = client.list_tools("github")
            print(f"Available tools: {[t['name'] for t in tools]}")

            # Call add_comment_to_pending_review
            result = client.call_tool("github", "add_comment_to_pending_review", {'body': 'example_value', 'line': 123, 'owner': 'example_value', 'path': 'example_value', 'pullNumber': 123, 'repo': 'example_value', 'side': 'example_value', 'startLine': 123, 'startSide': 'example_value', 'subjectType': 'example_value'})
            print(f"add_comment_to_pending_review result: {result}")

            # Call add_issue_comment
            result = client.call_tool("github", "add_issue_comment", {'body': 'example_value', 'issue_number': 123, 'owner': 'example_value', 'repo': 'example_value'})
            print(f"add_issue_comment result: {result}")

        finally:
            # Clean up
            client.stop_server(deployment_id)
    else:
        print("Failed to start server")

# Run the example
asyncio.run(use_github())

Integration Examples

Add this configuration to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "github": {
      "command": "python",
      "args": ["-m", "mcp_platform", "connect", "github", "--stdio"],
      "env": {
        "LOG_LEVEL": "info"
      }
    }
  }
}

Install the MCP extension and add this to your VS Code settings (.vscode/settings.json):

{
  "mcp.servers": {
    "github": {
      "command": "python",
      "args": ["-m", "mcp_platform", "connect", "github", "--stdio"],
      "env": {
        "LOG_LEVEL": "info"
      }
    }
  }
}
# Get connection details for other integrations
mcp_platform connect github --llm claude
mcp_platform connect github --llm vscode

Configuration

For template-specific configuration options, see the main template documentation. Common configuration methods:

# Deploy with environment variables
mcp_platform deploy github --env KEY=VALUE
# Deploy with configuration
mcp_platform deploy github --config key=value

# Deploy with nested configuration
mcp_platform deploy github --config category__property=value
# Deploy with config file
mcp_platform deploy github --config-file config.json

Troubleshooting

Common Issues

  1. Template not found: Ensure the template name is correct

    mcp_platform list  # List available templates
    

  2. Connection issues: Check if the server is running

    mcp_platform status
    

  3. Tool discovery fails: Try refreshing the tool cache

    mcpp> tools github --refresh
    

Debug Mode

Enable debug logging for troubleshooting:

# Interactive CLI with debug
LOG_LEVEL=debug mcp_platform interactive
# Deploy with debug logging
mcp_platform deploy github --config log_level=debug

For more help, see the main documentation or open an issue in the repository.