mcp-trial
Provides tools for interacting with GitHub repositories, including fetching repository summaries, recent commit messages, and raw README files, as well as a prompt template for assessing a repository as a portfolio piece.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-trial summarize the repo facebook/react and show its recent commits"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-trial
Me learning the Model Context Protocol by building a server for the GitHub API. Python SDK v2, running over stdio and hooked into Claude Code.
What it does
Two tools, one for a repo's summary and one for its recent commit messages. There's also a resource that serves a repo's raw README, and a prompt template for assessing a repo as a portfolio piece.
Related MCP server: GitHub MCP Server
Running it
uv sync
uv run mcp dev server.py # opens the inspector
uv run python test_server.py # calls the server directly, no host neededTo register it with Claude Code:
claude mcp add gh-lab -- uv run --directory /path/to/mcp-trial mcp run server.pyWhat I learned
Your type hints are the actual API contract, since the SDK builds the tool's JSON
schema straight from the function signature. Writing limit: int = 5 also makes that
parameter optional, so the model can skip it.
Docstrings mattered more than I expected, because they get sent to the model as the tool description and decide which tool it picks. I asked Claude Code whether a repo was actively maintained, and it called both tools and worked it out, which only happened because the descriptions made them look combinable.
Everything a tool returns becomes text in the model's context, so each field costs tokens. GitHub hands back about a hundred fields and I return five.
Raising an error beats returning one, since raising sets a flag the host checks and the message reaches the model as something it can act on.
Async doesn't make anything faster. A single call takes the same time either way.
What await does is park the function and free the event loop so other calls can run
during the wait.
Notes
mcp-reference.md has my working notes from building this.
Available Tools
2 toolsget_repoA
Get summary info for a GitHub repository: description, stars, language, last push.
Inputs: repo (required), owner (required).
recent_commitsB
List the most recent commit messages on a repository's default branch.
Inputs: repo (required), owner (required), limit. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
get_repo and recent_commits are clearly distinct: one fetches repository metadata, the other lists recent commit messages. There is no ambiguity between them.
Both names use snake_case but follow different patterns: get_repo uses a verb_noun construction while recent_commits is an adjective_noun phrase. The inconsistency is minor but noticeable.
With only 2 tools, the server feels thin for a GitHub-related purpose. It is slightly under the typical well-scoped range, though acceptable for a narrow read-only trial.
The tools only cover repository metadata and recent commits. Obvious gaps like branches, issues, pull requests, and other common repository operations are missing, which would significantly hinder agents needing broader repo access.
Maintenance
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
A MCP server built for developers enabling Git based project management with project and personal…
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables analyzing and querying GitHub repositories through the GitHub Chat API, allowing users to index repositories and ask questions about their code, architecture and tech stack.290MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides tools for interacting with the GitHub API, enabling AI assistants to query repositories, pull requests, issues, commits, users, and more.494 npmISC
- FlicenseNot gradedqualityDmaintenanceA read-only MCP server that exposes GitHub user profiles, repository info, and search via tools for AI assistants like Claude.-
- AlicenseAqualityDmaintenanceMCP server that enables AI assistants to look up and analyze GitHub repositories, including stars, forks, description, open issues, and README content.237 npmMIT