JUHE API Marketplace
Nawaf-TBE avatar
MCP Server

MCP Server

A Node.js/TypeScript server implementing the Model Context Protocol that provides integrations with GitHub and Notion, allowing automated workflow between these platforms via API endpoints.

0
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

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

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

🔗 Links

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source