DevLoom MCP server
2026년 10월 21일 커밋자연어를 통해 AI 클라이언트가 GitHub의 브랜치, pull request, issue, repository를 관리할 수 있게 합니다.
다른 이름 saraKhan200/Devloom
- 스타
- 1
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 10월 21일
- 라이선스
- MIT
DevLoom MCP란?
DevLoom은(는) MCP server입니다. 자연어를 통해 AI 클라이언트가 GitHub의 브랜치, pull request, issue, repository를 관리할 수 있게 합니다.
프로젝트 README에서 생성된 요약
DevLoom MCP server 정보
DevLoom은 소프트웨어 엔지니어와 메인테이너가 자연어 대화로 GitHub repository를 관리할 수 있도록 지원합니다. 이 MCP server는 AI 클라이언트가 수동으로 API를 요청하거나 터미널과 브라우저를 번갈아 사용할 필요 없이 일반적인 개발 작업을 수행할 수 있도록 18개의 특화된 도구를 제공합니다. 사용자는 일상적인 언어 프롬프트를 사용하여 브랜치, pull request, issue, release와 상호작용할 수 있습니다.
개발자는 이 server를 로컬에서 사용하거나 SSE 기반 전송 방식을 통해 사용할 수 있습니다. 정상적인 작동을 위해서는 적절한 권한을 가진 GitHub personal access token과 에이전트 워크플로우를 위한 Gemini API key가 필요합니다. 이 server는 GitHub와 통신하기 위해 Octokit을 사용하며, 가공되지 않은 JSON 객체 대신 사람이 읽기 쉬운 텍스트를 반환합니다. 읽기 및 쓰기 작업을 모두 지원하므로, 제공된 자격 증명으로 권한을 부여받으면 AI가 새로운 브랜치를 생성하거나, pull request를 열거나, 코드를 머지할 수도 있습니다.
활용 사례
- 1repository 활동 브리핑최근 커밋 요약이나 열려 있는 pull request 목록을 요청하여 빠르게 상황을 파악할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
구성
GITHUB_TOKEN
| 이름 | 설명 | 유형 |
|---|---|---|
| GITHUB_TOKEN | — |
자동 검사
2026년 11월 15일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능sarakhan200/devloom is public and reachablegithub.com/sarakhan200/devloom ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-10-21github.com/sarakhan200/devloom ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기DevLoom
[!NOTE] This branch "main" is based on to run locally , for production ready code see the branch production
Turn GitHub busywork into a conversation. DevLoom is a Developer first GitHub assistant built around the Model Context Protocol (MCP). Ask for repository context in plain language; Gemini can choose from DevLoom's GitHub tools, run them through MCP, and turn the results into a concise response.
The project includes a browser demo and an SSE-based MCP server. It gives teams a practical starting point for exploring natural-language developer workflows and building new MCP-powered ideas together.
Why DevLoom
During a hackathon, incident, release rush, or focused coding session or even a morning code recall news :D, changing context between an editor, GitHub pages, and the terminal costs time. DevLoom brings common repository actions into one prompt-driven workflow: inspect branches and pull requests, find issues, look up releases, or perform selected write actions without hand-building each API request.
[!TIP] You can try the Live website demo of the MCP here , its hosted on reder.com so it might take less than 1 minute time to load if not visited recently :) .
Useful for:
- Software engineers who need a quick repository briefing before reviewing or contributing.
- Hackathon teams coordinating issues, branches, and pull requests under time pressure.
- Maintainers preparing releases or catching up on repository activity.
- Developer-tool builders learning how MCP tools can be exposed to an LLM and reused by a separate MCP client.
- Voice-assistant and accessibility prototypes that benefit from short, conversational summaries.
What It Can Do
DevLoom currently registers 18 GitHub MCP tools and have more in-mind ;). The browser chat gives Gemini access to those tools; an MCP client can call the tools directly through the SSE transport. Reads and writes both use the permissions of the supplied GitHub token.
Branches And Commits
| MCP tool | Inputs | Capability |
|---|---|---|
github_list_branches |
owner, repo |
List repository branches with commit SHAs and URLs. |
github_create_branch |
owner, repo, newBranchName; optional baseBranch (defaults to main) |
Create a branch from the selected base branch. Writes to GitHub. |
github_get_commits |
owner, repo, since; optional baseBranch (defaults to main) |
Request commits on a branch since an ISO date, such as 2026-10-01T00:00:00Z. |
Issues And Comments
| MCP tool | Inputs | Capability |
|---|---|---|
github_get_issues |
owner, repo; optional mentioned, creator |
List repository issues, optionally filtering by mentioned user or creator. |
github_create_issue |
owner, repo, title, body |
Create an issue. Writes to GitHub. |
github_create_comment_on_issue |
owner, repo, issueNumber, body |
Comment on an issue or pull request. Writes to GitHub. |
Pull Requests
| MCP tool | Inputs | Capability |
|---|---|---|
github_list_prs |
owner, repo, state, sort |
List PRs using state open, closed, or all; sort by created, updated, popularity, or long-running. |
github_make_pull_request |
owner, repo, head, base, title, body |
Open a PR from head into base. Writes to GitHub. |
github_merge_pull_request |
owner, repo, pullNumber, commitTitle, commitMessage |
Merge a PR with the supplied commit metadata. Writes to GitHub. |
Releases
| MCP tool | Inputs | Capability |
|---|---|---|
github_list_releases |
owner, repo; optional page |
List releases for a repository. |
github_get_tag_releases |
owner, repo, tag |
Fetch the release associated with a tag. |
Search
| MCP tool | Inputs | Capability |
|---|---|---|
github_search_topics |
q; optional page |
Search GitHub topics. |
github_search_repos |
q; optional page |
Search repositories. Use GitHub search syntax in q for qualifiers. |
github_search_issues_and_prs |
q; optional sort, page |
Search issues and PRs. Sort supports comments, reactions, reactions-+1, reactions--1, reactions-smile, reactions-thinking_face, reactions-heart, reactions-tada, interactions, created, or updated (default updated). |
github_search_users |
q; optional page |
Search GitHub users. |
Repositories And Account Actions
| MCP tool | Inputs | Capability |
|---|---|---|
github_create_repo |
name, description, isPrivate |
Create a repository for the authenticated account. Writes to GitHub. |
github_create_fork |
owner, repo |
Fork a repository for the authenticated account. Writes to GitHub. |
github_accept_repo_invite |
owner, repo, invitationId |
Accept a repository invitation by ID. Writes to GitHub. |
All tool inputs are validated using Zod schemas in src/schemas/github.schemas.ts. The tools call GitHub through Octokit and return human-readable text rather than raw GitHub API objects.
How The Pieces Fit
Browser demo -- POST /api/chat --> Express on :3000
|
Gemini agent loop
|
in-memory MCP client/server
|
registered MCP tools
|
Octokit
|
GitHub API
The Gemini path and the standalone MCP transport are two entry points to the same registered tool layer:
- The browser sends a prompt plus the user's Gemini and GitHub credentials to
POST /api/chat. - Express validates the request and calls
runGeminiAgent. - The agent gives Gemini tool declarations, receives any requested calls, and executes each through an in-memory MCP client connected to
createMcpServer(). - The user's GitHub token is added to the MCP tool arguments by the server-side agent, not included in Gemini's tool declarations.
- Tool results are returned to Gemini for a final response. Each chat request is independent; conversation history is not persisted.
Separately, an MCP client can connect to GET /sse. The server assigns that connection a session ID and accepts its MCP JSON-RPC messages at POST /messages?sessionId=....
HTTP Routes
| Method and path | Purpose |
|---|---|
GET / and static paths |
Serve the demo files from public/ when using Express directly. |
POST /api/chat |
Run the Gemini-to-MCP workflow. Body: { "prompt": "...", "geminiApiKey": "...", "githubToken": "..." }. Success returns { "response": "..." }. |
GET /sse |
Open an MCP Server-Sent Events session. Use an MCP-compatible client; it negotiates the session and message endpoint. |
POST /messages?sessionId=<id> |
Send MCP JSON-RPC messages for an active SSE session. An MCP client uses this route to list and call the registered tools. |
The chat route checks the prompt and credentials before starting a request. MCP tools are selected by name and invoked through MCP, giving the browser agent and MCP clients access to the same GitHub capabilities.
Requirements
- Node.js and npm compatible with the installed Vite release.
- A GitHub personal access token with the minimum repository/account permissions needed for the actions you intend to try.
- A Gemini API key accepted by the Gemini API and access to the model configured in
src/agent/gemini.ts. - Network access to GitHub and Gemini APIs.
The browser demo uses both tokens for chat requests. An MCP client can provide the GitHub token in the Authorization: Bearer <token> header or as a tool's optional token argument. GITHUB_TOKEN is also supported as a fallback for tools that do not receive a token.
Run Locally
git clone <repository-url>
cd devloom
npm install
Start the backend and frontend in separate terminals:
npm run dev:server
The Express backend listens on http://localhost:3000 by default. In a second terminal:
npm run dev:ui
Open http://localhost:5173. Vite proxies /api, /sse, and /messages to the backend on port 3000. To use the Express-served static UI instead, open http://localhost:3000/ while the backend is running.
PORT can configure the Express backend; the Vite proxy forwards requests to port 3000 by default.
Credentials And Configuration
Create a root .env file only if you need backend configuration or the MCP token fallback:
PORT=3000
GITHUB_TOKEN=github_pat_replace_with_your_token
The .env file is ignored by Git. Enter the Gemini key in the browser demo; it is sent to the backend with the prompt. The demo keeps entered credentials in JavaScript memory until the page reloads.
Use a fine-grained GitHub token, grant only the permissions required for the repositories and write operations you will test, and never commit real credentials. Actions such as creating or merging a PR, creating a branch/issue/repository, commenting, forking, and accepting invitations mutate GitHub state. Review the requested action and target repository before sending a prompt.
Try It
Set the Gemini API key and GitHub token in the demo, then try prompts such as:
- “List the open pull requests in
owner/repo, sorted by most recently updated.” - “Show issues created by
octocatinowner/repo.” - “Find repositories about MCP servers written in TypeScript.”
- “Create a branch named
hackathon/demofrommaininowner/repo.” - “Create an issue in
owner/repotitledAdd onboarding docswith a short checklist in the body.” - “Summarize releases for
owner/repoand include the latest tag.”
For the clearest results, include the owner, repository, branch names, PR targets, titles, and bodies. Gemini chooses the best match from DevLoom's registered tools to carry out each request.
Build And Inspect
npm run build
This builds the frontend assets with Vite. During development, npm run dev:server runs the TypeScript backend directly with tsx and watches for changes.
For MCP development, connect an MCP-compatible inspector/client to http://localhost:3000/sse, list tools, and call them using their registered names. The inspect npm script is available for exploring the server during development.
Project Map
| Path | Responsibility |
|---|---|
src/app.ts |
Express middleware, static files, SSE and message routes, chat route. |
src/mcp/server.ts |
MCP server metadata and all 18 registered tools. |
src/schemas/github.schemas.ts |
Zod inputs and inferred tool input types. |
src/mcp/tools/github/ |
Octokit-backed GitHub actions, grouped by domain. |
src/agent/gemini.ts |
Gemini function declarations and agent loop using the in-memory MCP client. |
src/agent/executor.ts |
Maps GitHub tool names to their implementations for agent workflows. |
src/config.ts |
Loads root .env; configures PORT (default 3000). |
public/ |
Demo HTML, CSS, JavaScript, and logo. |
vite.config.ts |
Vite root, UI port, and backend proxies. |
scripts/github.ts |
Small direct GitHub function experiment, not the application entry point. |
Ideas To Build Next
DevLoom is designed to grow through small, useful integrations. Developers could add:
- Add a confirmation step for actions that create or change GitHub content.
- Bring in code search, workflow summaries, review requests, checks, or release drafting.
- Add richer result formatting, direct links, and conversational follow-up context.
- Connect voice input and spoken responses through an assistant integration.
- Add another developer platform using the existing schema-and-tool pattern.
- Build a polished credential flow and team-friendly deployment setup for shared demos.
Contributing
When adding a capability, define and validate its input schema, implement the provider operation, register it in src/mcp/server.ts, and add a matching Gemini function declaration if the browser agent should be able to choose it. Keep read and write actions clearly described, document required token permissions, and add tests for both successful results and provider failures.
DevLoom is built for fast experiments and collaborative demos. Bring a repetitive GitHub task, make the tool boundary explicit, and turn it into a workflow a teammate can understand at a glance.
At the end i would say even though the functionality is limited for now,its idea,s domain in pretty bigand thus it would need time and more development to flourish on a global state but for this Amazon Hackathon its pretty well designed given the idea and bare bone implementation are solid :D .
DevLoom MCP 질문
어떤 인증이 필요한가요?
GitHub personal access token과 Gemini API key가 필요합니다.