Skip to main content
Glama
psikosen

Decision Tree MCP Server

by psikosen
README.md
# 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

Maintenance

ActivityInactive
ResponsivenessNo issues