oshaani MCP Marketplace
Sign in

← Documentation

GitHub MCP Source control

Browse repositories, pull requests, issues, files and Actions runs on GitHub or GitHub Enterprise.

1 credits / tool call

Quick start

  1. Add a GitHub connection with the settings below, then click Test configuration.
  2. Create an API key for your agent.
  3. Paste the key below, click Test endpoint, and copy the configuration for your platform.
Endpointhttps://market.oshaani.com/github (your default connection) or https://market.oshaani.com/github/<connection-id>
TransportStreamable HTTP (stateless, JSON responses). MCP protocol versions 2024-11-05 to 2025-11-25 and 2026-07-28.
AuthenticationAuthorization: Bearer <API key>, using a key from the API keys page.

Agent configuration

The default URL uses your organisation's default GitHub connection; a URL with an ID pins one connection.
Get a key
The key is filled into the snippets below. It stays in this page and is only sent with the test request.
Runs initialize and tools/list against the endpoint, exactly like an agent. No credits are charged.

Any MCP client that supports remote (Streamable HTTP) servers with custom headers.

{
  "name": "github",
  "transport": "streamable-http",
  "url": "https://market.oshaani.com/github",
  "headers": {
    "Authorization": "Bearer YOUR_API_KEY"
  }
}

Connection settings

Entered once per connection on market.oshaani.com. Secrets are encrypted and never shown again or sent to agents.

SettingTypeDescription
Personal access token
token required secret
string Fine-grained token with read access to the repositories (plus Issues/Actions write for write tools)
API URL
api_url
string (uri)
default "https://api.github.com"
Change only for GitHub Enterprise Server, e.g. https://github.example.com/api/v3
min length 1, max length 2083
Allow creating issues, comments and re-running workflows
allow_write_actions
boolean
default false
Off by default: agents can only read data until this is enabled

Tools (12)

list_repositories read-only

List repositories for a user or organisation, or those the token can access

ArgumentTypeDescription
owner string User or organisation; omit for repositories the token can access
pattern ^[A-Za-z0-9-]+$
per_page integer
default 30
Number of results (max 100)
min 1, max 100
page integer
default 1
Page number, starting at 1
min 1

get_repository read-only

Get a repository's details

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$

list_pull_requests read-only

List pull requests in a repository

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
state "open" | "closed" | "all"
default "open"
base string Only pull requests into this branch
per_page integer
default 30
Number of results (max 100)
min 1, max 100
page integer
default 1
Page number, starting at 1
min 1

get_pull_request read-only

Get a pull request with its description, changed files and review decisions

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
number required integer Pull request or issue number
min 1

list_issues read-only

List issues in a repository (pull requests are excluded)

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
state "open" | "closed" | "all"
default "open"
labels string Comma-separated label names
assignee string Username, 'none' or '*'
per_page integer
default 30
Number of results (max 100)
min 1, max 100
page integer
default 1
Page number, starting at 1
min 1

get_issue read-only

Get an issue with its description and recent comments

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
number required integer Pull request or issue number
min 1

search_issues read-only

Search issues and pull requests with GitHub search syntax

ArgumentTypeDescription
query required string e.g. 'repo:octocat/hello-world is:pr is:open label:bug'
min length 1
per_page integer
default 30
Number of results (max 100)
min 1, max 100

get_file_contents read-only

Read a file from a repository (text files only, truncated when long)

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
path required string File path, e.g. src/app.py
min length 1
ref string Branch, tag or commit; defaults to the default branch
max_chars integer
default 50000

min 500, max 200000

list_workflow_runs read-only

List recent GitHub Actions workflow runs

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
branch string
status "completed" | "in_progress" | "queued" | "failure" | "success" | "cancelled" Filter by status or conclusion
per_page integer
default 20
Number of results (max 100)
min 1, max 100

create_issue

Create an issue

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
title required string
min length 1, max length 256
body string
labels array of string
assignees array of string

add_comment

Comment on an issue or pull request

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
number required integer Pull request or issue number
min 1
body required string
min length 1, max length 65536

rerun_failed_jobs

Re-run the failed jobs of a workflow run

ArgumentTypeDescription
repo required string Repository as owner/name, e.g. octocat/hello-world
pattern ^[\w.-]+/[\w.-]+$
run_id required integer
min 1

Billing & errors

Each successful tool call costs 1 oshaani.com credit. initialize, tools/list, failed calls and timeouts are free.

JSON-RPC codeMeaning
-32054 (HTTP 401)Missing, unknown or revoked API key
-32053 (HTTP 404)No GitHub connection configured for your organisation, or the connection ID is wrong
-32055 (HTTP 403)Connection disabled or origin not allowed
-32052 (HTTP 429)Rate limit reached; retry after a minute
-32050Not enough oshaani.com credits for the call
-32051Billing temporarily unavailable; the call was not run

Errors from GitHub itself (bad IDs, permissions) come back as tool results with isError: true so the agent can read and correct them. See the GitHub API documentation.