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

๐Ÿ”— Links

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

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