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.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • A Model Context Protocol server for Wix AI tools

View all MCP Connectors

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