Skip to main content
Glama
Nikhil-Patil-RI

Github-Oauth MCP Server

get_user_repositories

Fetch repositories for authenticated GitHub users to manage and access their code projects through OAuth-secured connections.

Instructions

Fetch the repositories of the authenticated user.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function for the 'get_user_repositories' tool. It is decorated with @mcp.tool() for registration and implements the logic to retrieve and format the user's GitHub repositories using the GitHub API and the stored access token.
    @mcp.tool()
    async def get_user_repositories() -> str:
        """Fetch the repositories of the authenticated user."""
        global access_token
    
        if not access_token:
            return "You are not authorized. Please authorize first."
    
        url = f"{GITHUB_API_BASE}/user/repos"
        headers = {
            "Authorization": f"Bearer {access_token}",
            "User-Agent": USER_AGENT,
            "Accept": "application/vnd.github.v3+json",
        }
        data = await make_request(url, headers)
        if not data:
            return "Unable to fetch repositories."
    
        if isinstance(data, list):
            repos = []
            for repo in data:
                repos.append(f"Name: {repo['name']}, URL: {repo['html_url']}, Language: {repo.get('language', 'Unknown')}")
            return "\n---\n".join(repos)
    
        return "No repositories found."
  • Helper utility function used by get_user_repositories to perform authenticated HTTP requests to the GitHub API.
    async def make_request(url: str, headers: dict[str, str], params: dict[str, str] = None) -> Optional[dict[str, Any]]:
        """Make an HTTP GET request with error handling."""
        async with httpx.AsyncClient() as client:
            try:
                response = await client.get(url, headers=headers, params=params, timeout=30.0)
                response.raise_for_status()
                return response.json()
            except Exception as e:
                print(f"Request failed: {e}")
                return None

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nikhil-Patil-RI/MCP-Github-Oauth'

If you have feedback or need assistance with the MCP directory API, please join our Discord server