GnistAI GnistAI
Log in

GitHub

Public GitHub data — repositories, issues, pull requests, and user profiles.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 5 tools tools 5 5 type: api wrapper type type api wrapper api wrapper lifecycle: maintained lifecycle lifecycle maintained maintained Software

Data source: GitHub API

MCP Endpoint (Streamable HTTP) https://context.gnist.ai/mcp/github/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (5)

search_repos

Search public GitHub repositories by keyword.

Returns up to 10 repositories ranked by star count.

Args:
query: Search terms (e.g. "machine learning framework", "http client").
language: Filter by programming language (e.g. "python", "typescript"). Optional.
stars_min: Minimum star count filter (e.g. 100). Optional.

Returns:
List of repositories with full_name, description, stars, forks, language,
license (SPDX id), last_pushed (ISO 8601), topics, and url.

ParameterTypeRequiredDescription
querystringrequiredSearch terms (e.g. "machine learning framework", "http client").
languageanyoptionalFilter by programming language (e.g. "python", "typescript"). Optional.
stars_minanyoptionalMinimum star count filter (e.g. 100). Optional.
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_repos",
    "arguments": {
      "query": "example"
    }
  }
}
get_readme

Fetch and decode the README for a GitHub repository.

Useful for understanding what a project does before recommending it.

Args:
owner: Repository owner (user or org), e.g. "fastapi".
repo: Repository name, e.g. "fastapi".

Returns:
Object with owner, repo, and content (raw README text, typically Markdown).

ParameterTypeRequiredDescription
ownerstringrequiredRepository owner (user or org), e.g. "fastapi".
repostringrequiredRepository name, e.g. "fastapi".
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_readme",
    "arguments": {
      "owner": "123456789",
      "repo": "example"
    }
  }
}
list_open_issues

List open issues for a public GitHub repository.

Pull requests are excluded. Returns up to 30 issues, newest first.

Args:
owner: Repository owner (user or org), e.g. "django".
repo: Repository name, e.g. "django".
labels: Filter by label names (e.g. ["bug", "help wanted"]). Optional.

Returns:
List of issues with number, title, state, author, labels, created_at,
updated_at, and url.

ParameterTypeRequiredDescription
ownerstringrequiredRepository owner (user or org), e.g. "django".
repostringrequiredRepository name, e.g. "django".
labelsanyoptionalFilter by label names (e.g. ["bug", "help wanted"]). Optional.
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "list_open_issues",
    "arguments": {
      "owner": "123456789",
      "repo": "example"
    }
  }
}
get_repo_stats

Get metadata and statistics for a specific public GitHub repository.

Args:
owner: Repository owner (user or org), e.g. "astral-sh".
repo: Repository name, e.g. "ruff".

Returns:
Repository metadata: full_name, description, stars, forks, language,
license (SPDX id), last_pushed (ISO 8601), topics, and url.

ParameterTypeRequiredDescription
ownerstringrequiredRepository owner (user or org), e.g. "astral-sh".
repostringrequiredRepository name, e.g. "ruff".
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_repo_stats",
    "arguments": {
      "owner": "123456789",
      "repo": "example"
    }
  }
}
report_feedback

Report a bug, feature request, or general feedback for this data source.

Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.

Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: "general")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "report_feedback",
    "arguments": {
      "feedback": "example"
    }
  }
}

Quick Start

Shell
curl -X POST "https://context.gnist.ai/mcp/github/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_repos", "arguments": {"query": "example"}}}'
Python
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/github/",
    headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_repos",
    "arguments": {
      "query": "example"
    }
  }
},
)
print(resp.json())

Related Toolkits (Software)

Resources