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.
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:trueorfalseMCP_TRANSPORT:stdioorhttp; defaults tostdioHOST: HTTP host, defaults to0.0.0.0PORT: HTTP port, defaults to8000LOG_LEVEL: optional Python logging level; defaults toINFOGITHUB_TOKENGITHUB_OWNERGITHUB_REPONOTION_TOKENNOTION_DATABASE_IDNOTION_DATA_SOURCE_ID: optional; use when targeting a specific Notion data sourceGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETGOOGLE_REFRESH_TOKENGOOGLE_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_taskhealth_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
- Create a new Web Service from your repository.
- Use Python as the runtime.
- Set the build command:
pip install -r requirements.txt
- Set the start command:
python server.py
- 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
- Create a new Railway project from your repository.
- Set the start command:
python server.py
- 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.jsonorcredentials.json. - Use
.env.examplefor placeholders only. - Start with
DRY_RUN=trueto verify the workflow safely. - Set
DRY_RUN=falseonly after GitHub, Notion, and Google Calendar credentials are configured.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。