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.
- 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.
- Loads
- 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.
- Provides MCP tools (
- 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
andtools/call
methods.
- Node.js (v16+ recommended for ES Modules and top-level await)
- npm (or yarn)
- Redis server running and accessible
-
Clone Repository:
git clone <your-repo-url> cd dt-mcp-server
-
Install Dependencies:
npm install
-
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 toredis://localhost:6379
.RTDQ_DIR
: (Optional) Absolute path to the directory containing your.rtdq
files. Defaults to a subdirectory namedrtdq_files
within the project.PORT
: (Optional) Port for the server to listen on. Defaults to3000
.
-
Create RTDQ Directory: Ensure the directory specified by
RTDQ_DIR
(or the defaultrtdq_files
subdirectory) exists. Place your.rtdq
files inside it.
npm start