RAG_0 MCP Task Planner

RAG_0 MCP Task Planner

A local Python MCP server that creates a GitHub issue, Notion task page, and Google Calendar event from a single task description, enabling project management across multiple platforms.

Category
Visit Server

README

RAG_0 MCP Task Planner

RAG_0 is a local Python MCP server built with FastMCP. It turns one project task into connected work items across GitHub, Notion, and Google Calendar.

The main tool, create_project_task, validates a task, creates a GitHub issue, creates a Notion task page with the GitHub link, creates a Google Calendar event with both links, then updates the Notion page with the Calendar event URL.

Connected Tools

  • GitHub Issues: tracks the engineering task.
  • Notion Database: stores the task, status, priority, due date, and links.
  • Google Calendar: schedules focused work time for the task.

Setup

Create and activate a virtual environment:

python -m venv .venv
.\.venv\Scripts\Activate.ps1

Install dependencies:

python -m pip install -r requirements.txt

Create your local environment file:

Copy-Item .env.example .env

Edit .env with your real credentials. Keep DRY_RUN=true until you are ready to call real APIs.

Required Environment Variables

  • DRY_RUN: true or false
  • MCP_TRANSPORT: stdio or http; defaults to stdio
  • HOST: HTTP host, defaults to 0.0.0.0
  • PORT: HTTP port, defaults to 8000
  • LOG_LEVEL: optional Python logging level; defaults to INFO
  • GITHUB_TOKEN
  • GITHUB_OWNER
  • GITHUB_REPO
  • NOTION_TOKEN
  • NOTION_DATABASE_ID
  • NOTION_DATA_SOURCE_ID: optional; use when targeting a specific Notion data source
  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • GOOGLE_REFRESH_TOKEN
  • GOOGLE_CALENDAR_ID

Run Locally

The default transport is stdio, which is best for local MCP clients and MCP Inspector:

python server.py

To run the HTTP transport locally:

$env:MCP_TRANSPORT="http"
$env:DRY_RUN="true"
python server.py

The HTTP transport uses the MCP SDK streamable HTTP transport and listens on HOST and PORT. By default, that is 0.0.0.0:8000.

The server exposes these MCP tools:

  • create_project_task
  • health_check

Test DRY_RUN

Run all tests:

python -m pytest tests -q

Run only the local dry-run workflow test:

python -m pytest tests\test_dry_run_workflow.py -q

Run the assignment evals:

python -m pytest evals -q

When DRY_RUN=true, no real GitHub, Notion, or Google Calendar API calls are made. The services return fake IDs and URLs.

Deploy on Render or Railway

This server can run in deployment using HTTP transport. Keep DRY_RUN=true for first deployment checks, then switch to DRY_RUN=false only after all production credentials are configured.

Render

  1. Create a new Web Service from your repository.
  2. Use Python as the runtime.
  3. Set the build command:
pip install -r requirements.txt
  1. Set the start command:
python server.py
  1. Add environment variables in the Render dashboard:
MCP_TRANSPORT=http
DRY_RUN=true
HOST=0.0.0.0
PORT=8000
GITHUB_TOKEN=your-production-github-token
GITHUB_OWNER=your-github-owner
GITHUB_REPO=your-repo-name
NOTION_TOKEN=your-production-notion-token
NOTION_DATABASE_ID=your-notion-database-id
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REFRESH_TOKEN=your-google-refresh-token
GOOGLE_CALENDAR_ID=primary

Do not put real secrets in README.md, .env.example, or source code. Add production values only in the Render environment variable dashboard.

Railway

  1. Create a new Railway project from your repository.
  2. Set the start command:
python server.py
  1. Add the same environment variables in the Railway Variables dashboard:
MCP_TRANSPORT=http
DRY_RUN=true
HOST=0.0.0.0
PORT=8000

Then add the GitHub, Notion, and Google Calendar production variables in the dashboard. Railway may provide its own PORT; if it does, use Railway's provided value.

For deployed HTTP transport, MCP clients should connect to the hosted service's /mcp endpoint unless your hosting or MCP client requires a different URL format.

Connect to MCP Client

Use this server as a local stdio MCP server. Run your MCP client from the project root so server.py and .env resolve correctly.

Example MCP client configuration:

{
  "mcpServers": {
    "task-planner": {
      "command": "python",
      "args": ["server.py"],
      "env": {
        "DRY_RUN": "true"
      }
    }
  }
}

In real usage, secrets should be loaded from .env, not written directly into the MCP client config. The env block above is only useful for simple local overrides like DRY_RUN=true.

On Windows, activate the virtual environment before running the MCP client or Inspector from the project root:

.\.venv\Scripts\Activate.ps1

You can test the server with MCP Inspector:

npx @modelcontextprotocol/inspector python server.py

Then open the Inspector URL shown in the terminal, select the Tools tab, choose create_project_task, and run it with a dry-run payload such as:

{
  "title": "Finish MCP Report",
  "description": "Write documentation and prepare demo",
  "due_date": "2026-07-10",
  "duration_minutes": 60,
  "priority": "High",
  "assignee": null
}

Example Tool Input

{
  "title": "Finish MCP Report",
  "description": "Write documentation and prepare demo",
  "due_date": "2026-07-10",
  "duration_minutes": 60,
  "priority": "High",
  "assignee": null
}

Security Notes

  • Never commit .env.
  • Never commit OAuth files such as token.json or credentials.json.
  • Use .env.example for placeholders only.
  • Start with DRY_RUN=true to verify the workflow safely.
  • Set DRY_RUN=false only after GitHub, Notion, and Google Calendar credentials are configured.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured