How jakewan/overstory works
Overstory is a manifest-driven GitHub project-management MCP server: an MCP client requests structured project facts, the server resolves repository conventions, fetches GitHub data, and computes reductions for the caller to render. Its major reads cover backlog grooming, project orientation, milestone tracks, authored activity, and maintenance activity, including batch variants. The excerpts show concrete project-summary and milestone-track orchestration; the source index identifies other server integrations but does not expose their handler bodies, so those links are limited to indexed evidence.
Main entry points: server.go Tool Server · project_summary.go Project Summary · graphql.go GraphQL Fetcher · deferred.go Backlog Review
Components 16
MCP Runtime
- stdio Entrypoint
cmd/overstory/main.go - Tool Server
internal/server/server.go
Repository Conventions
- Manifest Resolver
internal/manifest/manifest.go
GitHub Data
- GraphQL Fetcher
internal/github/graphql.go
Project Analysis
- Project Summary
internal/server/project_summary.go - Milestone Tracks
internal/server/milestone_tracks.go - Backlog Review
internal/backlog/deferred.go - Critical Path
internal/criticalpath/criticalpath.go - Dependency Analysis
internal/dependency/dependency.go - Summary Reductions
internal/summary/recommendations.go - Track Parser
internal/summary/milestonetracks.go - Authored Activity
internal/authored/authored.go - Maintenance Activity
internal/maintenance/maintenance.go - Shared Reductions
internal/reduce/issuerefs.go
Other components
- MCP Client
- GitHub API
Connections 22
- MCP Client → stdio Entrypoint: calls over stdio
cmd/overstory/main.go - stdio Entrypoint → Tool Server: constructs server
cmd/overstory/main.go - Tool Server → MCP Client: serves MCP tools
- Tool Server → Manifest Resolver: resolves conventions
- Tool Server → GraphQL Fetcher: fetches repository data
internal/server/server.go - GraphQL Fetcher → GitHub API: queries GraphQL
README.md - Project Summary → Manifest Resolver: resolves configuration
internal/server/project_summary.go - Project Summary → GraphQL Fetcher: fetches issues
internal/server/project_summary.go - Project Summary → Summary Reductions: computes summary
internal/server/project_summary.go - Project Summary → Dependency Analysis: classifies dependencies
internal/server/project_summary.go - Project Summary → Shared Reductions: projects issue set
internal/server/project_summary.go - Milestone Tracks → Manifest Resolver: resolves conventions
internal/server/milestone_tracks.go - Milestone Tracks → GraphQL Fetcher: fetches milestones
internal/server/milestone_tracks.go - Milestone Tracks → Track Parser: reduces track descriptions
internal/server/milestone_tracks.go - Tool Server → Backlog Review: registers backlog review
internal/server/server.go - Backlog Review → Critical Path: uses gate reduction
internal/backlog/deferred.go - Backlog Review → Dependency Analysis: uses dependency reduction
internal/backlog/deferred.go - Backlog Review → Shared Reductions: uses shared projections
internal/backlog/deferred.go - Tool Server → Authored Activity: registers authored reads
internal/server/server.go - Tool Server → Maintenance Activity: registers maintenance reads
internal/server/server.go - Authored Activity → Shared Reductions: uses rate-limit facts
internal/authored/authored.go - Maintenance Activity → GraphQL Fetcher: consumes fetched events