The Program Manager maps dependencies across Jira and Asana, watches every milestone for risk, and keeps blockers, decisions and approvals in one graph. Ask about it in Claude or ChatGPT, and approve every change before it happens.
Signup is invite-only right now. Have an access code?
Milestone risk
Critical blocker
Auth service holds 2 milestones
10
Domain MCP tools
3
Live connectors: Jira, Asana, Slack
8
Blocker workflow states
Product
Cross-program visibility without replacing the tools your teams already use.
Cross-program dependency graph
Hard, soft and informational links between work items across Jira and Asana, verified or flagged as suggested.
get_dependency_graph
Milestone risk monitoring
Baseline versus forecast for every milestone, with a deterministic impact preview when an upstream item slips.
analyze_milestone_impact
Blockers and escalations
Eight-state blocker workflow with owners, due dates and the milestones each blocker holds.
list_critical_blockers
Decision log
Options, rationale, approver and follow-up deadline for each decision, linked to the milestones it affects.
decisions · approvals
Approvals for every agent action
Agents propose links and escalations. Nothing is written until a person approves the exact payload.
propose_* → execute_approved_action
Weekly program review
Progress, milestone movement, blockers, decisions and asks, assembled from live data for each program.
get_weekly_program_brief
Works through Claude and ChatGPT
Add The Program Manager as an MCP server in Claude or ChatGPT. Agents read the dependency graph, milestones, blockers and decisions, and every proposed write lands in your approval queue.
Add the MCP server
Paste the server URL into Claude or ChatGPT connectors and sign in once.
Ask about the portfolio
“Which dependencies threaten the Q4 launch?” The agent answers from live program data with evidence.
Approve, then execute
Proposed links and escalations wait for approval with an expiry. Approved actions are executed and recorded in the audit log.
Two upstream items sit on the critical path. Auth service is blocked on a vendor review and pushes Payments GA, which moves the launch by about 9 days.
Proposed: escalate Auth service blocker to Platform lead in Slack
Needs approvalReview in Approvals before anything is sent
How it works
Map your launch
Connect Jira and Asana with an API token and pick the projects that make up each program.
Detect the slip
Dependencies and milestone forecasts update on every sync. Stale sources are labeled, never shown as green.
Escalate with precision
See which blocker holds which milestone, who owns it, and draft the escalation to Slack.
Review and decide
Run the weekly review, log decisions with rationale and approve agent proposals.
Integrations
Available connectors use an API token stored server side. Planned connectors are never shown as connected until they are live.
Jira Cloud
AvailableIssues, epics, status transitions and cross-project links
read:jira-workAsana
AvailableProjects, tasks, sections and task dependencies
defaultSlack
AvailableProgram updates, escalation alerts and status broadcasts
chat:write channels:readPlanned
Security
Row-level security on every table
Organization-scoped isolation enforced in the database. The service role never reaches the browser.
Server-side credential storage
Provider tokens are sent once and stored server side. Never in the browser, never in generic logs.
Every external write is approved
Propose, approve, execute, verify, record. Single-use approvals expire and carry a payload hash.
Provider data is untrusted
Task descriptions and comments from third parties never execute as instructions. No secrets go to tools.
Immutable audit trail
Consequential actions are logged with actor, resource and timestamp.
Fail closed
Stale sources show timestamps and unverified risk. Never a false green status.
MCP tool contract
Every tool returns explicit action statuses, evidence and deep links back to the dashboard.
list_programs, get_program_status, get_dependency_graphanalyze_milestone_impact: deterministic preview, no remote mutationlist_critical_blockers, get_weekly_program_briefpropose_dependency_link, propose_escalation: gated writesexecute_approved_action: verifies the approval, then performs itget_program_changes: normalized change events with source timestamps{
"tools": [
{
"name": "analyze_milestone_impact",
"description": "Deterministic impact preview
for a milestone delay",
"inputSchema": {
"type": "object",
"properties": {
"program_id": { "type": "string" },
"milestone_id": { "type": "string" },
"delay_days": { "type": "number" }
},
"required": ["program_id"]
},
"annotations": {
"readOnlyHint": true,
"destructiveHint": false
}
}
]
}Create an account with your access code, load the sample portfolio and explore every view in under a minute. Connect real sources when you are ready.