Skip to main content
Glama

MCP (Model Context Protocol) Server

A Node.js/TypeScript server that implements the Model Context Protocol with integrations for GitHub and Notion.

๐Ÿš€ Features

  • Express.js Server with TypeScript support

  • GitHub Integration using Octokit REST API

  • Notion Integration for task management

  • Docker Support for containerized deployment

  • Webhook Endpoints for GitHub event handling

Related MCP server: GitHub MCP Server

๐Ÿ“‹ Prerequisites

  • Node.js 18+

  • Docker (optional)

  • GitHub Personal Access Token

  • Notion API Key and Database ID

๐Ÿ› ๏ธ Installation

  1. Clone the repository

    git clone <your-repo-url>
    cd MCP
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp env.example .env
    # Edit .env with your API keys
  4. Build the project

    npm run build

๐Ÿ”ง Configuration

Environment Variables

Create a .env file with the following variables:

# GitHub Personal Access Token
GITHUB_TOKEN=your_github_token_here

# Notion API Key
NOTION_API_KEY=your_notion_api_key_here

# Notion Database ID
NOTION_DATABASE_ID=your_database_id_here

# Node environment
NODE_ENV=development

API Keys Setup

  1. GitHub Token:

    • Go to https://github.com/settings/tokens

    • Create a new token with repo scope

  2. Notion Integration:

    • Go to https://www.notion.so/my-integrations

    • Create a new integration

    • Share your database with the integration

๐Ÿƒโ€โ™‚๏ธ Running the Application

Development Mode

npm run dev

Production Mode

npm run build
npm start

Docker

# Build and run
docker-compose up --build

# Run in background
docker-compose up -d

๐Ÿ“ก API Endpoints

  • GET / - Health check endpoint

  • POST /webhook/github - GitHub webhook handler

๐Ÿ› ๏ธ Available Tools

GitHub Tools (src/tools/github.ts)

  • createIssueComment() - Post comments on GitHub issues

  • getIssue() - Get issue details

  • listIssues() - List repository issues

Notion Tools (src/tools/notion.ts)

  • createTaskInNotion() - Create tasks in Notion database

  • getPage() - Get page details

  • getDatabase() - Get database structure

  • queryDatabase() - Query database

๐Ÿงช Testing

Test the webhook endpoint:

curl -X POST http://localhost:3000/webhook/github \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Test Issue",
    "body": "This is a test issue",
    "number": 123
  }'

๐Ÿ“ Project Structure

MCP/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ tools/
โ”‚   โ”‚   โ”œโ”€โ”€ github.ts      # GitHub API integration
โ”‚   โ”‚   โ””โ”€โ”€ notion.ts      # Notion API integration
โ”‚   โ”œโ”€โ”€ index.ts           # Main server file
โ”‚   โ””โ”€โ”€ workflow.ts        # GitHub issue handling
โ”œโ”€โ”€ dist/                  # Compiled JavaScript
โ”œโ”€โ”€ Dockerfile            # Docker configuration
โ”œโ”€โ”€ docker-compose.yml    # Docker Compose setup
โ”œโ”€โ”€ tsconfig.json         # TypeScript configuration
โ””โ”€โ”€ package.json          # Dependencies and scripts

๐Ÿค Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

๐Ÿ“„ License

This project is licensed under the ISC License.

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nawaf-TBE/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server