[HN Gopher] Show HN: GitMCP is an automatic MCP server for every...
___________________________________________________________________
Show HN: GitMCP is an automatic MCP server for every GitHub repo
Author : liadyo
Score : 77 points
Date : 2025-04-03 18:28 UTC (4 hours ago)
(HTM) web link (gitmcp.io)
(TXT) w3m dump (gitmcp.io)
| liadyo wrote:
| We built an open source remote MCP server that can automatically
| serve documentation from every Github project. Simply replace
| github.com with gitmcp.io in the repo URL - and you get a remote
| MCP server that serves and searches the documentation from this
| repo (llms.txt, llms-full.txt, readme.md, etc). Works with
| github.io as well. Repo here: https://github.com/idosal/git-mcp
| nlawalker wrote:
| _> searches the documentation from this repo (llms.txt, llms-
| full.txt, readme.md, etc)_
|
| What does _etc_ include? Does this operate on a _single content
| file_ from the specified GitHub repo?
| lukew3 wrote:
| Cool project! I would probably call it an MCP server for every
| Github repo though since project could be confused for Github
| Projects which is their work planning/tracking tool.
| liadyo wrote:
| Thanks!
| the_arun wrote:
| But why would we need an MCP server for a github repo? Sorry, I
| am unable to understand the use case.
| liadyo wrote:
| It's very helpful when working with a specific
| technology/library, and you want to access the project's
| llms.txt, readme, search the docs, etc from within the IDE
| using the MCP client. Check it out, for exmaple, with the
| langgraph docs: https://gitmcp.io/#github-pages-demo It really
| improves the development experience.
| qainsights wrote:
| Same here. Can't we just give the repo URL in Cursor/Windsurf
| to use the search tool to get the context? :thinking:
| adusal wrote:
| As an example, some repositories have huge documents (in some
| cases a few MBs) that agents won't process today. GitMCP
| offers semantic search out of the box.
| jwblackwell wrote:
| Yeah this is one fundamental reason I don't see MCP taking
| off. The only real use cases there are will just be built in
| natively to the tools.
| qwertox wrote:
| That is a complex webserver. https://github.com/idosal/git-
| mcp/tree/main/api
|
| What about private repos in, let's say GitLab or Bitbucket
| instances, or something simpler?
|
| A Dockerfile could be helpful to get it running locally.
| liadyo wrote:
| Yes, this is a fully remote MCP server, so the need for an SSE
| support makes the implementation quite complex. The MCP spec
| updated to use HTTP streaming, but clients do not support it
| yet.
| TechDebtDevin wrote:
| Gemini does I believe. On my list of todos is to add this to
| my fork of mcp-go.
| vessenes wrote:
| +1 for this, I'm so so tired of writing my MCP code in
| python.
| prophesi wrote:
| If you're in Elixir land, Hermes MCP[0] is a fantastic
| library for building out MCP clients/servers with both
| SSE/HTTP support. And will be quite robust given the
| scalability and fault tolerance of the BEAM.
|
| [0] https://github.com/cloudwalk/hermes-mcp
| vessenes wrote:
| ooh cool. Sadly I am far from Elixir land. MCP starting
| out as largely STDIO definitely has made things harder
| for server-side engineers. I expect this will sort itself
| out this year though.
| pfista wrote:
| Do you auto-generate specific MCP tools for the repo? Curious
| what the queries you would use with an AI agent to get a response
| back.
|
| I'm building my own hosted MCP solution (https://skeet.build) and
| have been deliberately choosing which tools to expose depending
| on the use case- since there are tool limits due to the context
| window for apps like Cursor.
| pcwelder wrote:
| Why not have a single mcp server that takes in the repo path or
| url in the tool call args? Changing config in claude desktop is
| painful everytime.
| vessenes wrote:
| I agree - i'd like that option as well.
| liadyo wrote:
| Yes! The generic form is also supported of course.
| https://gitmcp.io/docs does exactly that:
| https://github.com/idosal/git-mcp?tab=readme-ov-file#usage
| thomasfromcdnjs wrote:
| This is awesome, well done!
| kiitos wrote:
| > Simply change the domain from github.com or github.io to
| gitmcp.io and get instant AI context for any GitHub repository.
|
| What does this mean? How does it work? How can I understand how
| it works? The requirements, limitations, constraints? The landing
| page tells me nothing! Worse, it doesn't have any links or
| suggestions as to how I could possibly learn how it works.
|
| > Congratulations! The chosen GitHub project is now fully
| accessible to your AI.
|
| What does this mean??
|
| > GitMCP serves as a bridge between your GitHub repository's
| documentation and AI assistants by implementing the Model Context
| Protocol (MCP). When an AI assistant requires information from
| your repository, it sends a request to GitMCP. GitMCP retrieves
| the relevant content and provides semantic search capabilities,
| ensuring efficient and accurate information delivery.
|
| MCP is a protocol that defines a number of concrete resource
| types (tools, prompts, etc.) -- each of which have very specific
| behaviors, semantics, etc. -- and none of which are identified by
| this project's documentation as what it actually implements!
|
| Specifically what aspects of the MCP are you proxying here?
| Specifically how do you parse a repo's data and transform it into
| whatever MCP resources you're supporting? I looked for this
| information and found it nowhere?
| eagleinparadise wrote:
| Getting "@ SSE error: undefined" in Cursor for a repo I added. Is
| there also not a way to force a MCP server to be used? Haiku
| doesn't pick it up in Cursor.
| adusal wrote:
| The error usually isn't an issue since the agent can use the
| tools regardless. It's a by-product of the current
| implementation's serverless nature and SSE's limitations. We
| are looking into alternative solutions.
| creddit wrote:
| How does this differ from the reference Github MCP server?
|
| https://github.com/modelcontextprotocol/servers/tree/main/sr...
|
| EDIT: Oh wait, lol, I looked closer and it seems that the
| difference is that the server runs on your server instead which
| is like the single most insane thing I can think of someone
| choosing to do when the reference Github MCP server exists.
| creddit wrote:
| This literally looks like spyware to me. Crazy.
___________________________________________________________________
(page generated 2025-04-03 23:00 UTC)