DevLoom MCPサーバー
コミット 2026年10月21日自然言語を通じて、AIクライアントがGitHubと連携し、ブランチ、プルリクエスト、Issue、リポジトリの管理を行えるようにします。
別名 saraKhan200/Devloom
- スター
- 1
- ツール
- —
- ダウンロード数(30日間)
- —
- 最新バージョン
- —
- 最終コミット
- 2026年10月21日
- ライセンス
- MIT
DevLoom MCPとは
DevLoomはMCPサーバーです。 自然言語を通じて、AIクライアントがGitHubと連携し、ブランチ、プルリクエスト、Issue、リポジトリの管理を行えるようにします。.
プロジェクトのREADMEから生成された概要
DevLoom MCP server について
DevLoomは、ソフトウェアエンジニアやメンテナーが自然言語での対話を通じてGitHubリポジトリを管理することを可能にします。このMCP serverは18個の特化型ツールを提供し、AIクライアントが手動でのAPIリクエストや、ターミナルとブラウザの切り替えを行うことなく、一般的な開発タスクを実行できるようにします。ユーザーは日常的な言葉によるプロンプトを使用して、ブランチ、プルリクエスト、Issue、リリースを操作できます。
開発者は、このサーバーをローカル環境またはSSEベースのトランスポート経由で使用できます。動作には、適切な権限を持つGitHubのパーソナルアクセストークンと、エージェントワークフロー用のGemini APIキーが必要です。サーバーはOctokitを使用してGitHubと通信し、生のJSONオブジェクトの代わりに人間が読みやすいテキストを返します。読み取りと書き込みの両方の操作をサポートしているため、提供された認証情報によって許可されていれば、AIが新しいブランチを作成したり、プルリクエストを開いたり、コードをマージしたりすることも可能です。
できること
- 1リポジトリのアクティビティに関する概要把握最近のコミットの要約や、オープン状態のプルリクエストの一覧を依頼することで、状況を素早く把握できます。
プロジェクトの 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のパーソナルアクセストークンとGemini APIキーが必要です。