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: Notion 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:

  2. Notion 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.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A Model Context Protocol server that enables AI assistants to interact with Notion's API for reading, creating, and modifying Notion content through natural language interactions.
    -