Skip to main content
Glama
kongyo2

GitHub URL MCP Server

by kongyo2

GitHub URL MCP Server

Ask DeepWiki

An MCP (Model Context Protocol) server for handling GitHub URLs with validation and parsing capabilities.

This server provides tools to convert between GitHub repository information and URLs, with intelligent validation to distinguish between public repositories, private repositories, and non-existent repositories.

Background

This tool was created to solve the problem where LLMs often struggle to properly handle GitHub-related tasks and fail to appropriately call MCP tools for GitHub operations. Many LLMs have difficulty constructing correct GitHub URLs from repository information, parsing GitHub URLs to extract meaningful components, or knowing when to use available MCP tools for GitHub-related requests. This server provides specialized tools that make these operations reliable and consistent for AI applications.

Note: This issue might be specific to the LLMs I commonly use, but providing dedicated tools ensures consistent behavior across different AI systems. Or perhaps I should just quietly invest a fortune in Claude Code's max plan instead.

Related MCP server: GitHub Prod MCP

Features

  • URL Building: Convert owner/repo pairs to properly formatted GitHub URLs

  • URL Parsing: Extract owner, repository, and path information from GitHub URLs

  • Smart Repository Validation: Distinguish between public, private, and non-existent repositories

  • Private Repository Detection: Identify when a repository exists but is private

  • Comprehensive Status Reporting: Clear status indicators for repository accessibility

  • Error Handling: Detailed error messages for invalid inputs

  • No Authentication Required: Works without GitHub API tokens

  • Timeout Protection: Network requests have built-in timeouts

Tools

github/build_url

Converts GitHub owner and repository name into a properly formatted GitHub URL with validation.

Parameters:

  • owner (string): GitHub username or organization name

  • repo (string): Repository name

Example:

{
  "owner": "microsoft",
  "repo": "vscode"
}

Returns:

  • https://github.com/microsoft/vscode (for public repositories)

  • https://github.com/owner/repo + 🔒 Note (for private repositories)

  • https://github.com/owner/repo + ⚠️ Warning (for non-existent repositories)

  • https://github.com/owner/repo + ❌ Error (for validation errors)

github/parse_url

Parses a GitHub URL to extract owner, repository name, and additional path information with validation.

Parameters:

  • url (string): GitHub URL to parse

Example:

{
  "url": "https://github.com/microsoft/vscode/tree/main/src"
}

Returns:

{
  "owner": "microsoft",
  "repo": "vscode",
  "url": "https://github.com/microsoft/vscode",
  "additionalPath": "tree/main/src",
  "status": "public",
  "accessible": true
}

Status Values:

  • "public": Repository is publicly accessible

  • "private": Repository exists but is private

  • "not_found": Repository does not exist

  • "error": Validation error occurred

Additional Fields:

  • accessible: Boolean indicating if the repository is publicly accessible

  • note: Information message for private repositories

  • warning: Warning message for non-existent repositories

  • error: Error message for validation failures

Development

Setup

npm install

Start the server

npm run start

Development mode with CLI interaction

npm run dev

Testing

npm run test

Linting and formatting

npm run lint
npm run format

Build

npm run build

Available Tools

2 tools
github/build_urlA
Read-only

Converts GitHub owner and repository name into a properly formatted GitHub URL with validation

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesGitHub username or organization name (e.g., 'microsoft', 'facebook')
repoYesRepository name (e.g., 'vscode', 'react')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and openWorldHint=false, indicating this is a safe, deterministic operation. The description adds value by mentioning 'validation', which implies error-checking or formatting rules beyond basic concatenation, but does not detail specific behaviors like rate limits, authentication needs, or exact validation rules. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Converts GitHub owner and repository name into a properly formatted GitHub URL') and adds a useful detail ('with validation'). There is no wasted text, and every word contributes to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 2 parameters, 100% schema coverage, and annotations indicating safety and determinism, the description is largely complete. It covers the purpose, hints at validation, and distinguishes from siblings. However, without an output schema, it could briefly mention the return type (e.g., a string URL) to enhance completeness, though this is a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear descriptions for both parameters (owner and repo). The description adds minimal semantics by contextualizing the parameters as 'GitHub owner and repository name' and hinting at validation, but does not provide additional details beyond what the schema already covers. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Converts'), the resources involved ('GitHub owner and repository name'), and the output ('properly formatted GitHub URL with validation'). It distinguishes itself from the sibling tool github/parse_url by focusing on construction rather than parsing of URLs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'GitHub owner and repository name' and 'validation', suggesting it should be used when you have these components and need a valid URL. However, it does not explicitly state when to use this tool versus alternatives like manual string concatenation or the sibling parse_url tool, nor does it provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

github/parse_urlA
Read-only

Parses a GitHub URL to extract owner, repository name, and additional path information with validation

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesGitHub URL to parse (e.g., 'https://github.com/microsoft/vscode' or 'https://github.com/facebook/react/tree/main/packages')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and openWorldHint=false, which already inform the agent that this is a safe, deterministic read operation. The description adds value by specifying 'with validation', which is a behavioral trait not covered by annotations, but does not detail error handling, rate limits, or output format. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the tool's purpose, what it extracts, and a key behavioral trait ('with validation'). It is front-loaded with essential information and has no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (single parameter, no output schema, simple annotations), the description is mostly complete. It covers the parsing action and validation, but could benefit from mentioning the output structure (e.g., what fields are returned) since there is no output schema. However, it adequately addresses the core functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'url' fully documented in the schema including examples. The description adds minimal semantic context by mentioning what is extracted from the URL, but does not provide additional details beyond what the schema already covers. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb 'parses' and the resource 'GitHub URL', and specifies what it extracts: 'owner, repository name, and additional path information with validation'. It distinguishes from the sibling tool 'github/build_url' by focusing on parsing rather than constructing URLs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'GitHub URL' and providing examples, but does not explicitly state when to use this tool versus alternatives like the sibling 'github/build_url' or other parsing methods. It gives clear context for when to use it (parsing GitHub URLs) but lacks explicit exclusions or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.1/5.0
Disambiguation5/5

The two tools have clearly distinct and complementary purposes: one builds URLs from components, the other parses URLs into components. There is no overlap in functionality, and an agent would easily differentiate between them based on their input/output needs.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (build_url, parse_url) under the same 'github/' namespace. The naming is predictable and aligned, making it easy for agents to understand their roles without confusion.

Tool Count3/5

With only 2 tools, the server feels thin for a GitHub-related purpose, as typical GitHub MCP servers offer more comprehensive operations (e.g., managing repos, issues, PRs). However, for the narrow scope of URL handling, it is minimally functional but limited in broader utility.

Completeness4/5

For the specific domain of GitHub URL manipulation, the tools provide complete coverage: building and parsing URLs. A minor gap might be the lack of tools for validating URLs without parsing or building, but the core operations are well-covered for this focused task.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/kongyo2/GitHub-URL-MCP'

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