Skip to main content
Glama
Project Tracker MCP Server

Project Tracker MCP Server

by spranab

Project Tracker MCP Server

A Model Context Protocol (MCP) server for managing projects, epics, and stories. This allows AI agents (Claude, GPT-5, etc.) to interact with your project tracking system in a structured way.

Features

  • Hierarchical Structure: Projects → Epics → Stories

  • Issue Tracking: Bug tracking, technical debt, and project issues tied to projects

  • PostgreSQL Backend: Persistent storage with relational database

  • MCP Integration: Compatible with Claude Desktop, GPT agents, and other MCP clients

  • Full CRUD Operations: Create, read, update, and delete for all entities

  • Content Storage: Store summaries, status updates, and conversation context

  • No File Clutter: AI-generated content stored in database instead of markdown files

  • 40 Tools: Comprehensive API for managing all aspects of project tracking

Related MCP server: Saga MCP

Setup

1. Install Dependencies

npm install

2. Configure Database

Create a .env file based on .env.example:

cp .env.example .env

Edit .env and set your PostgreSQL connection details:

DATABASE_URL=postgresql://username:password@localhost:5432/project_tracker

3. Create Database and Run Migrations

Create the database in PostgreSQL:

CREATE DATABASE project_tracker;

Then run the migration script to create tables:

npm run build
npm run db:migrate

4. Start the Server

npm run dev

Or for production:

npm run build
npm start

Database Schema

Projects

  • id: UUID (Primary Key)

  • name: VARCHAR(255)

  • description: TEXT

  • status: VARCHAR(50) (active, on_hold, completed, archived)

  • created_at: TIMESTAMP

  • updated_at: TIMESTAMP

Epics

  • id: UUID (Primary Key)

  • project_id: UUID (Foreign Key → projects)

  • name: VARCHAR(255)

  • description: TEXT

  • status: VARCHAR(50) (idea, planned, in_progress, completed, cancelled)

  • priority: VARCHAR(50) (low, medium, high, critical)

  • created_at: TIMESTAMP

  • updated_at: TIMESTAMP

Stories

  • id: UUID (Primary Key)

  • epic_id: UUID (Foreign Key → epics)

  • title: VARCHAR(255)

  • description: TEXT

  • status: VARCHAR(50) (todo, in_progress, review, done, blocked)

  • priority: VARCHAR(50) (low, medium, high, critical)

  • estimated_hours: INTEGER

  • actual_hours: INTEGER

  • created_at: TIMESTAMP

  • updated_at: TIMESTAMP

MCP Tools Available

Project Management

  • create_project: Create a new project

  • list_projects: List all projects with optional status filter

  • get_project: Get project details with all epics and stories

  • update_project: Update project information

  • delete_project: Delete a project (cascades to epics and stories)

Epic Management

  • create_epic: Create a new epic in a project

  • list_epics: List epics for a project

  • get_epic: Get epic details with all stories

  • update_epic: Update epic information

  • delete_epic: Delete an epic (cascades to stories)

Story Management

  • create_story: Create a new story in an epic

  • list_stories: List stories for an epic

  • get_story: Get story details

  • update_story: Update story information

  • delete_story: Delete a story

Summary Management

  • create_summary: Save AI-generated summaries

  • list_summaries: List summaries with filters

  • get_summary: Get specific summary

  • search_summaries: Full-text search

  • update_summary: Update summary

  • delete_summary: Remove summary

Status Update Management

  • create_status_update: Track progress, blockers, achievements

  • list_status_updates: List status updates with filters

  • get_status_update: Get specific status update

  • search_status_updates: Search status updates

  • update_status_update: Update status update

  • delete_status_update: Remove status update

Context Management

  • create_context: Save conversation context and decisions

  • list_context: List context entries with filters

  • get_context: Get specific context

  • search_context: Search saved context

  • update_context: Update context

  • delete_context: Remove context

Issue Tracking

  • create_issue: Report bugs, technical debt, security issues

  • list_issues: List issues with filters (severity, status, assigned_to)

  • get_issue: Get specific issue details

  • search_issues: Search issues by keyword

  • update_issue: Update issue status, assignment, resolution

  • delete_issue: Remove issue

Utility

  • get_project_summary: Get a comprehensive overview of all projects

Using with AI Agents

Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "project-tracker": {
      "command": "node",
      "args": ["__BASE_DIR__/dist/index.js"],
      "env": {
        "DATABASE_URL": "postgresql://username:password@localhost:5432/project_tracker"
      }
    }
  }
}

Other MCP Clients

Connect via stdio transport to the compiled JavaScript file.

Example Usage

Once connected, AI agents can:

Create a project called "Mobile App Redesign"
→ Creates project in database

Add an epic "User Authentication" to the Mobile App Redesign project
→ Creates epic linked to project

Create a story "Implement login form" in the User Authentication epic
→ Creates story linked to epic

Create a status update for this sprint
→ Saves status report in database instead of markdown file

Save this conversation as context
→ Preserves discussion for future reference

Show me all projects with their current status
→ Retrieves and displays all projects

Get detailed view of Mobile App Redesign project
→ Shows project with all epics and stories

Additional Documentation

Development

Watch mode for development:

npm run watch

Then in another terminal:

npm start

Available Scripts

  • npm run build - Compile TypeScript

  • npm start - Run the server

  • npm run dev - Build and run

  • npm run watch - Watch mode for development

  • npm run db:migrate - Run database migrations

  • npm run db:verify - Verify database schema

  • npm run db:test - Test database connection

  • npm run db:diagnose - Diagnose database issues

License

MIT

Available Tools

40 tools
create_contextB

Save conversation context, chat summaries, or important knowledge to preserve understanding across sessions

Inputs: title (required), content (required), tags, metadata, +4 more.

create_epicC

Create a new epic (idea) within a project

Inputs: name (required), project_id (required), status, priority, +1 more.

create_issueC

Create a new issue/bug in a project

Inputs: title (required), project_id (required), tags, metadata, +7 more.

create_projectC

Create a new project to organize epics and stories

Inputs: name (required), status, description.

create_status_updateB

Create a status update/report to track progress, blockers, or achievements

Inputs: title (required), content (required), tags, metadata, +5 more.

create_storyC

Create a new story within an epic

Inputs: title (required), epic_id (required), status, priority, +3 more.

create_summaryC

Create a new summary/note to track important information, decisions, or AI-generated content

Inputs: title (required), content (required), tags, metadata, +3 more.

delete_contextC

Delete a context entry

Inputs: context_id (required).

delete_epicB

Delete an epic and all its associated stories

Inputs: epic_id (required).

delete_issueC

Delete an issue

Inputs: issue_id (required).

delete_projectB

Delete a project and all its associated epics and stories

Inputs: project_id (required).

delete_status_updateC

Delete a status update

Inputs: status_update_id (required).

delete_storyC

Delete a story

Inputs: story_id (required).

delete_summaryC

Delete a summary

Inputs: summary_id (required).

get_contextC

Get a specific context entry by ID

Inputs: context_id (required).

get_epicB

Get detailed information about a specific epic including all its stories

Inputs: epic_id (required).

get_issueA

Get a specific issue by ID

Inputs: issue_id (required).

get_projectB

Get detailed information about a specific project including all its epics and stories

Inputs: project_id (required).

get_project_summaryA

Get a comprehensive summary of all projects with counts of epics and stories

Inputs: no named parameters.

get_status_updateB

Get a specific status update by ID

Inputs: status_update_id (required).

get_storyC

Get detailed information about a specific story

Inputs: story_id (required).

get_summaryC

Get a specific summary by ID

Inputs: summary_id (required).

list_contextC

List saved context entries with optional filters

Inputs: tag, limit, context_type, related_entity_id.

list_epicsC

List all epics for a specific project

Inputs: project_id (required), status.

list_issuesC

List issues for a project with optional filters

Inputs: tag, limit, status, severity, +3 more.

list_projectsC

List all projects with optional status filter

Inputs: status.

list_status_updatesC

List status updates with optional filters

Inputs: tag, limit, status_type, related_entity_id.

list_storiesC

List all stories for a specific epic

Inputs: epic_id (required), status.

list_summariesB

List summaries with optional filters for type, tags, or related entities

Inputs: tag, limit, summary_type, related_entity_id, +1 more.

search_contextB

Search context entries by keyword to find relevant conversations or knowledge

Inputs: keyword (required), limit.

search_issuesB

Search issues by keyword

Inputs: keyword (required), limit, project_id.

search_status_updatesC

Search status updates by keyword

Inputs: keyword (required), limit.

search_summariesC

Search summaries by keyword in title or content

Inputs: keyword (required), limit.

update_contextC

Update an existing context entry

Inputs: context_id (required), tags, title, content, +1 more.

update_epicC

Update epic information

Inputs: epic_id (required), name, status, priority, +1 more.

update_issueC

Update an existing issue

Inputs: issue_id (required), tags, title, status, +6 more.

update_projectD

Update project information

Inputs: project_id (required), name, status, description.

update_status_updateC

Update an existing status update

Inputs: status_update_id (required), tags, title, content, +1 more.

update_storyC

Update story information

Inputs: story_id (required), title, status, priority, +3 more.

update_summaryC

Update an existing summary

Inputs: summary_id (required), tags, title, content, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 40 tools

    Disambiguation4/5

    Each tool maps to a distinct entity and action (project, epic, story, issue, summary, status_update, context), so overlap is minimal. However, get_summary vs. get_project_summary and list_summaries vs. get_project_summary could cause some selection confusion.

    Naming Consistency5/5

    All tool names follow a consistent snake_case verb_noun pattern (create_issue, list_projects, get_epic, delete_story, etc.). Compound entities like status_update are handled uniformly.

    Tool Count2/5

    40 tools is excessive for a project tracker, even with seven entity types. The full CRUD/listing/search surface for every entity creates bloat and increases the risk of agent misselection.

    Completeness5/5

    The tool set provides complete CRUD coverage for projects, epics, stories, issues, summaries, status updates, and context, plus search and summary operations. No obvious lifecycle operations appear to be missing.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      A local Model Context Protocol server providing backend tools for AI agents to manage projects and tasks with persistent storage in SQLite, enabling structured tracking of project tasks with dependencies, priorities, and statuses.
      12
      7 npm
      25
      GPL 3.0
    • A
      license
      B
      quality
      A
      maintenance
      A Jira-like project tracker MCP server for AI agents. SQLite-backed, per-project scoped, with full hierarchy and activity logging — so LLMs never lose track. No more scattered markdown files. saga-mcp gives your AI assistant a structured database to track projects, epics, tasks, subtasks, notes, and decisions across sessions.
      41
      83 npm
      42
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      🧠 A high-performance PostgreSQL-backed MCP server acting as a super memory, task tracker, and dynamic database manager for AI agents. Features built-in connection pooling, a professional tasks schema, and a unique shared multi-agent coordination hub to prevent coding conflicts in real-time.
      12
      4
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A file-backed MCP server for hierarchical project management that enables AI assistants to create, claim, and complete tasks within a project→epic→feature→task structure, with dependency management and Markdown-based storage.
      MIT