DA
OfficialProductivity

Dart MCP Server for Task, Docs, Project Data

Interact with task, doc, and project data via the Dart MCP server to streamline AI-native project management and integrations.

Quick Install
npx -y @its-dart/dart-mcp-server

Overview

The Dart MCP Server provides a lightweight implementation of a Model Context Protocol (MCP) server that stores and exposes task, document, and project data for AI-native workflows. It’s written in Dart and intended to act as a local or self-hosted source-of-truth for contextual data you want to surface into LLMs, agents, or other automation tools. By centralizing project artifacts (tasks, docs, metadata) behind a simple API, the server helps teams and integrations reliably supply context to models and downstream services.

This server is useful when you need a predictable, developer-friendly endpoint for programmatically reading and writing project context. Typical uses include feeding documents and tasks into vector-indexing pipelines, letting agents query current project state, or synchronizing task lists between tools and model-driven assistants. The implementation aims to be minimal, easy to run, and easy to integrate into existing Dart or HTTP-based workflows.

Features

  • CRUD storage for tasks, documents, and projects (create, read, update, delete)
  • HTTP API for programmatic access (REST-style endpoints)
  • Simple configuration via environment variables or a .env file
  • Docker-friendly: build and run as a container for deployment
  • Implements the MCP pattern so model-driven components can request and consume context
  • Low-dependency Dart codebase that’s straightforward to inspect and extend
  • Example request/response formats to make integration predictable

Installation / Configuration

Clone the repository and run with Dart:

git clone https://github.com/its-dart/dart-mcp-server.git
cd dart-mcp-server
dart pub get
dart run bin/server.dart

Run with Docker:

# build the image
docker build -t dart-mcp-server .

# run the container (exposes port 8080 by default)
docker run -p 8080:8080 -e PORT=8080 -e DATABASE_URL="sqlite://data.db" dart-mcp-server

Example environment variables (use a .env file or container env):

PORT=8080
DATABASE_URL=file:./data.db
LOG_LEVEL=info
# optional: AUTH_TOKEN=your-token-here

Notes:

  • The server reads configuration from environment variables; check the repository for exact variable names if you need advanced settings.
  • If the project uses a local SQLite file or other persistence, ensure file permissions allow the server to create and write the database.

Available Resources

  • GitHub repository: https://github.com/its-dart/dart-mcp-server — source code, issues, and examples
  • Example request formats and example clients are included in the repo (see examples/ or docs/ folders)
  • Open an issue on GitHub for API clarifications or feature requests

Common API resources you can expect (exact paths may vary; consult the repo for the definitive schema):

ResourcePurpose
/projectsList, create, update, delete projects
/projects/{id}Retrieve or modify a single project
/tasksCreate and query tasks; supports metadata like status, assignee, due date
/tasks/{id}Task-level operations
/docsUpload or fetch documents, notes, and attachments
/search or /queryQuery context by text or metadata (for indexing/search integrations)

Example: create a document (placeholder URL and payload):

curl -X POST http://localhost:8080/docs \
  -H "Content-Type: application/json" \
  -d '{"projectId":"proj_123","title":"Spec","content":"Design notes...","tags":["spec","design"]}'

Use Cases

  • Feeding project context into an embedding/indexing pipeline
    • Periodically export or stream docs and tasks from the MCP server to an embedding service (e.g., FAISS, Pinecone) so an LLM has up-to-date retrieval capabilities.
  • Agent-driven task management
    • Use an LLM agent to query /tasks and /projects to determine next actions, claim or update tasks, and write results back to the MCP server to maintain single-source-of-truth.
  • Synchronization between tools
    • Integrate the MCP server as a middle layer that normalizes data between a task tracker, documentation system, and model-powered automations. Each tool pushes and pulls from the server rather than directly coupling to other services.
  • Prototyping AI-native features
    • Rapidly prototype model integrations without changing your main project database. Use the Dart MCP server for experiment data and to expose context to models during development.

Getting Started Tips

  • Inspect the repository for example clients and sample payloads to understand the API contract.
  • Run locally behind a reverse proxy in front of the container when deploying (for TLS and routing).
  • If you need authentication, add an API gateway or token check in front of the server; the codebase is small and easy to extend with middleware hooks for auth and rate limiting.
  • Back up any persistent databases used by the server as part of production hygiene.

For full details, API docs, and code examples, consult the GitHub repository: https://github.com/its-dart/dart-mcp-server.