-
-
Tell the agent your skills once, and it remembers you for next time.
-
Ask for matches and the agent maps projects to your skills as a live graph.
-
Say "highlight the starred one" and the agent makes that graph node glow — it drives the UI.
-
The agent checks an issue's availability and requirements, then saves it to your dashboard.
-
Your tracked contributions, laid out as a journey from Interested to Merged.
-
Ask "will my PR get reviewed?" and the agent reports real response and merge times.
Inspiration
Almost every developer wants to contribute to open source but stalls at the same wall: where do I start? With 200M+ repos, and endless follow up questions like whether the project is active, whether a PR will get reviewed, or whether an issue is already taken, the research takes hours, and most first contributions never happen. WebMCP made us realize the tedious digging is exactly what an agent is good at, while the judgment is what a human is good at. So we built an app that is better when a person and their agent use it together.
What it does
DiscoveryHub turns "I want to contribute" into "here is a specific, unclaimed, doable issue in a responsive project, plus a plan to fix it." It exposes 19 WebMCP tools and a built in "Ask the Agent" chatbox. You type a goal in plain English, and the agent chains tools to match projects to your skills, measure how responsive a project is, find issues, check if they are actually free, assess their real difficulty beyond the label, draft a contribution plan, and track your progress. Some tools even drive the UI live, so when the agent highlights a project the on screen skill graph reacts, and the human and agent share the same page.
How we built it
Next.js 14, React, and TypeScript, with Tailwind, live GitHub data via Octokit, D3, React Flow, and Recharts for visuals, and the OpenAI API for the agent. The core is a three role split: the WebMCP tools run in the browser, the OpenAI key stays server side behind /api/agent, and a chat loop shuttles between them, which is what lets one sentence trigger a whole chain of tool calls. A couple of tools also think, like draft_contribution_plan, which synthesizes a plan from a repo's README and contributing guide, and we kept the scoring honest and explainable rather than a black box.
Challenges we ran into
Building on an unreleased standard was the hardest part. WebMCP runs behind an experimental browser flag, and we discovered its exact contract by trial: executeTool needs the tool object plus JSON string arguments. React Strict Mode double registered our tools, so we made registration idempotent. We also had to be honest about data limits, since GitHub has no difficulty qualifier, so project search uses a maturity proxy while the real difficulty signal lives per issue.
Accomplishments that we're proud of
One plain English request now carries a user from "I want to contribute" to a concrete plan, with the agent chaining tools on its own. We are proudest of the agent driving the UI, something a normal API cannot do, and of tools that add real value: catching mislabeled "good first issues," flagging already claimed ones, and measuring whether a project will even review your PR. And it stays honest, saying "unknown" when it lacks data instead of guessing.
What we learned
WebMCP shifts the mental model. The agent never touches your app directly. It emits a structured request and your code executes it, so keeping the model on the server and execution in the browser is the key unlock. Good schemas do the heavy lifting, so the user never needs to know a repo is written as owner/repo, because the agent translates. And honesty beats cleverness: the best moments are not just better answers, but shared state the agent can change.
What's next for DiscoveryHub
Next: a draft_pr_description tool and more "act on my behalf" features, expanding beyond GitHub to GitLab with a platform aware data layer, sharper difficulty and responsiveness signals such as filtering out bots and calibrating to a contributor's history, and being ready out of the box as WebMCP graduates from experimental flags into mainstream browsers.
Built With
- ai-agents
- chromium
- d3.js
- framer-motion
- github-api
- javascript
- localstorage
- model-context-protocol
- next.js
- node.js
- octokit
- openai
- react
- react-flow
- react-markdown
- recharts
- tailwindcss
- typescript
- vercel
- webmcp
- zustand
Log in or sign up for Devpost to join the conversation.