README.md•2.02 kB
# dt_mcp Server (Decision Tree & Task Management MCP Server)
This project implements a Node.js-based Model Context Protocol (MCP) server designed to manage and interact with decision trees defined in `.rtdq` files and handle a basic to-do list. It uses Redis as a backend for storing parsed `.rtdq` data and the to-do list.
## Features
* **RTDQ Handling:**
* Loads `.rtdq` files (v2.1 format) from a specified directory.
* Parses `.rtdq` files asynchronously.
* Stores parsed decision tree data in Redis.
* Provides an MCP tool (`get_dt_node_from_redis`) to retrieve specific nodes from a loaded tree.
* **To-Do Management:**
* Provides MCP tools (`add_todo`, `list_todos`, `mark_todo_done`) to manage a simple to-do list.
* Stores to-do items in Redis.
* **MCP Integration:**
* Acts as a standard MCP server.
* Communicates via HTTP Server-Sent Events (SSE) on the `/mcp` endpoint.
* Exposes capabilities via standard MCP `tools/list` and `tools/call` methods.
## Prerequisites
* Node.js (v16+ recommended for ES Modules and top-level await)
* npm (or yarn)
* Redis server running and accessible
## Setup
1. **Clone Repository:**
```bash
git clone <your-repo-url>
cd dt-mcp-server
```
2. **Install Dependencies:**
```bash
npm install
```
3. **Configure Environment:**
Create a `.env` file in the project root (and add it to `.gitignore`) or set environment variables:
* `REDIS_URL`: The connection URL for your Redis server (e.g., `redis://localhost:6379`). Defaults to `redis://localhost:6379`.
* `RTDQ_DIR`: (Optional) Absolute path to the directory containing your `.rtdq` files. Defaults to a subdirectory named `rtdq_files` within the project.
* `PORT`: (Optional) Port for the server to listen on. Defaults to `3000`.
4. **Create RTDQ Directory:**
Ensure the directory specified by `RTDQ_DIR` (or the default `rtdq_files` subdirectory) exists. Place your `.rtdq` files inside it.
## Running the Server
```bash
npm start