Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

GitHub Integration Hub

БесплатноНе проверен

Provides GitHub OAuth authentication and API access through REST endpoints, CLI tools, and MCP server capabilities with SQLite-based token storage.

GitHubEmbed

Описание

Provides GitHub OAuth authentication and API access through REST endpoints, CLI tools, and MCP server capabilities with SQLite-based token storage.

README

Built by Cristian to demonstrate OAuth orchestration, secure token storage, SDK/CLI tooling, and MCP servers in TypeScript.

Why this project exists

I wanted a hands-on showcase proving I can:

  • Design an OAuth flow (GitHub) with state handling and token persistence.
  • Build a lightweight data layer on SQLite using TypeScript.
  • Expose the same business logic via HTTP routes, an SDK, a CLI, and an MCP server for AI agents.

Everything runs on Node.js LTS with Express, better-sqlite3, and TypeScript.

Feature highlights

  • (OAuth) /auth/github/start and /auth/github/callback wrap the GitHub dance.
  • (Storage) Automatic SQLite table creation plus refresh scaffolding and repository helpers.
  • (Services) Shared orchestration reused by HTTP routes, the CLI, the SDK, and MCP tools.
  • (Tooling) Type-safe IntegrationHubClient SDK together with the github-integration-hub CLI.
  • (Agents) MCP tools github_start_auth, github_list_repos, and github_create_issue.

Getting started

1. Install dependencies

npm install

2. Configure environment

Copy .env.example to .env and set your GitHub OAuth credentials:

PORT=3000
DATABASE_FILE=./github-integration-hub.db
GITHUB_CLIENT_ID=your-client-id
GITHUB_CLIENT_SECRET=your-client-secret
GITHUB_OAUTH_AUTHORIZE_URL=https://github.com/login/oauth/authorize
GITHUB_OAUTH_TOKEN_URL=https://github.com/login/oauth/access_token
GITHUB_API_BASE_URL=https://api.github.com
GITHUB_REDIRECT_URI=http://localhost:3000/auth/github/callback
GITHUB_INTEGRATION_HUB_BASE_URL=http://localhost:3000

Ensure the GitHub OAuth app redirect matches GITHUB_REDIRECT_URI.

3. Run the backend

Development mode with hot reload:

npm run dev

Production-style build + run:

npm run build
npm start

The server logs: GitHub Integration Hub listening on port <port>.

MCP server (for AI agents)

Compile once, then launch the stdio server:

npm run build
npm run start:mcp

Tools available:

  • github_start_auth – returns an authorization URL for a userId.
  • github_list_repos – lists repos for the stored connection.
  • github_create_issue – posts an issue using the saved token.

Point your MCP-aware IDE/CLI (for example Codex) to this stdio process and the tools become callable immediately.

HTTP API reference

Method Path Description
POST /auth/github/start Returns { authUrl } for userId
GET /auth/github/callback Exchanges code + state, saves tokens
GET /connections Lists connections (?userId= optional)
POST /actions/github/list-repos Lists repos via stored token
POST /actions/github/create-issue Creates an issue
GET /health Service heartbeat

CLI (github-integration-hub)

npm run build
npx github-integration-hub connections:list
npx github-integration-hub actions:list-repos --user alice
npx github-integration-hub actions:create-issue --user alice --owner my-org --repo api --title "Hello" --body "Proof from Cristian"

Flags:

  • --base-url overrides GITHUB_INTEGRATION_HUB_BASE_URL.
  • connections:list --user <userId> filters entries.

SDK example

import { IntegrationHubClient } from 'github-integration-hub/sdk';

const client = new IntegrationHubClient({ baseUrl: process.env.GITHUB_INTEGRATION_HUB_BASE_URL! });

async function showcase() {
  const { authUrl } = await client.startGithubAuth('user-123');
  console.log('Send someone to authorize:', authUrl);

  const repos = await client.listGithubRepos('user-123');
  console.log(repos.map((repo) => repo.full_name));
}

Manual OAuth test plan

  1. POST /auth/github/start with { "userId": "demo-user" }.
  2. Visit the returned authUrl, approve the GitHub app.
  3. Callback stores the connection automatically.
  4. Trigger actions using HTTP, the CLI, SDK, or MCP tools.

Project structure

.
|-- cli/               # CLI entry point
|-- sdk/               # TypeScript SDK
|-- src/
|   |-- config/        # Environment helpers
|   |-- db/            # SQLite init + repository
|   |-- mcp/           # MCP server
|   |-- providers/     # GitHub OAuth + API clients
|   |-- routes/        # Express routers
|   `-- services/      # Token manager + actions
|-- .env.example
|-- package.json
|-- tsconfig.json
`-- README.md

Made by Cristian. Ping me if you want to talk about backend integrations, OAuth design, or MCP tooling.

from github.com/crbatista/mcp-cli-github-integration

Установка GitHub Integration Hub

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/crbatista/mcp-cli-github-integration

FAQ

GitHub Integration Hub MCP бесплатный?

Да, GitHub Integration Hub MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для GitHub Integration Hub?

Нет, GitHub Integration Hub работает без API-ключей и переменных окружения.

GitHub Integration Hub — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить GitHub Integration Hub в Claude Desktop, Claude Code или Cursor?

Открой GitHub Integration Hub на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare GitHub Integration Hub with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории data