Skip to content
UPG
Blocks
Problem
Frameworks
Connect
Build
Start
UPG v0.7.3 · Open StandardMIT License

You held the product together.
Now your graph can do it for you.

An open specification that turns product knowledge into structured, connected, queryable data. A graph you can build on.

Terminal
claude mcp add upg -- npx @unified-product-graph/mcp-server
01The Building Blocks
The building blocks of every product.
See the graph build itself.

Tell your AI assistant what you're building. Who it's for, what problem it solves, why it matters. UPG turns that conversation into typed entities with real relationships between them.

Claude Code
Graph View
The cards it creates
Explore all 312 types →
Seven entities, six typed edges: the real FitParent graph. The cards are one rendering of the underlying .upg data; tools like Entopo render them in full.
Guided Skills
All skills →

Skills walk you through strategy, research, design, and go-to-market, one question at a time. Every answer becomes a typed entity in your graph.

Start in Claude Code →
02The Problem
Same concept with Ten different names.

Lean Canvas calls it a "Problem." Jobs-to-be-Done calls it a "Struggle." Design Thinking calls it a "Pain Point." Strategyzer calls it a "Customer Pain." Same idea, different label in every framework. UPG maps them all. Every entity type carries vocabulary from the frameworks that use it, so a "need" in UPG is also a "Problem" in Lean Canvas, a "Customer Pain" in Value Proposition Canvas, and a "Struggle" in Jobs-to-be-Done. One concept. One node. Every name.

Every tool speaks
its own dialect.

A Jira ticket could be a bug, a feature, or a strategic initiative. A Notion page could be a PRD, a meeting note, or a persona. The structures inside these tools carry no semantic meaning; they're generic containers. When tools exchange data, both humans and agents have to guess what a "page" or an "issue" actually represents. UPG gives every piece of product knowledge a type, a domain, and explicit relationships to everything else.

Teams are drowning in a sea of documents

A single PRD is ~5,000 words. A product team generates dozens of PRDs, strategy decks, research reports, and specs. That's a lot of unstructured prose for anyone to hold in their head, and even more for an AI to parse. A graph stores the same knowledge as typed entities and explicit connections. Less prose, more structure, clearer answers.

~28
docs per product
~150k
words
~2k
structured in UPG: nodes
A living graph captures things as they happen

Ten frameworks, six tools, twenty-eight documents. They're all describing the same product. A graph holds that knowledge in one place, with typed entities and real relationships between them. Enter it once. See it through any lens.

Read the manifesto →
03Frameworks
Any framework, one graph.

An Opportunity Solution Tree, a Business Model Canvas, and a roadmap are all projections of the same underlying graph. Enter your product knowledge once; see it through any framework lens.

Frameworks are views, not data models
outcomeopportunitysolutionhypothesisexperimentpersonavalue propositionrevenue streamacquisition channelcost structurefeatureepicreleasemilestonemetric
Opportunity Solution Tree
OST
outcomeopportunitysolutionhypothesisexperiment
Business Model Canvas
BMC
personavalue propositionrevenue streamacquisition channelcost structure
Roadmap
Feature Roadmap
featureepicreleasemilestone
RICE Scoring
Reach, Impact, Confidence, Effort
featureopportunitysolutionhypothesis

Click a framework to see which entities light up.

Business Model CanvasOpen framework →
Key Partners
🫱🏻‍🫲🏼Partnership

Who are your key partners and suppliers?

Key Activities
🛠️Key Activity

What key activities does your value prop require?

Value Propositions
Value Proposition

What value do you deliver to the customer?

Customer Relationships
🫶Customer Relationship

What type of relationship does each segment expect?

Customer Segments
🎯Market Segment

For whom are you creating value?

Key Resources
🏭Key Resource

What key resources does your value prop require?

Channels
🚚Distribution Channel

How do you reach your customer segments?

Cost Structure
🧮Cost Structure

What are the most important costs?

Revenue Streams
💵Revenue Stream

For what value are customers willing to pay?

Business Model Canvas by Alexander Osterwalder & Yves Pigneur9 cells · 10×3 grid
See all frameworks →
What every product needs to answer

Together, frameworks span eight questions every product has to answer. UPG types the entities behind each one so any framework can read from the same graph.

01Identity
What is this? Where is it going?
productvisionmissionstrategic theme
02Understanding
Who needs this? What problem are we solving?
personajobneedresearch study
03Discovery
What should we build? What's the opportunity?
opportunitysolutioncompetitorhypothesis
04Reaching
How do people find out about this?
ideal customer profilepositioningmessagingacquisition channel
05Converting
How does money come in?
value propositionpricing tierfunnelfunnel step
06Building
What does the user actually get?
featuretaskepicrelease
07Sustaining
Is this financially viable long-term?
business modelrevenue streamcost structureunit economics
08Learning
Is it working? How do we get better?
outcomemetricobjectivekey result
Explore all entity types →
04Connect Your Tools
The connective layer for everything you already use.

Your team doesn’t live in one tool. Notion holds PRDs, Linear tracks issues, Figma stores designs, the spreadsheet ranks features. UPG turns each of their outputs into typed entities so a single AI agent can read your whole product, not seven dialects.

UPG reads from your tools and writes back where it should.

Notion
Linear
Figma
Spreadsheet
Markdown
GitHub
Unified Product Graph
Typed entities · shared vocabulary · explicit relationships
one .upg file
AI agentsClaude CodeCursorYour SDKSearchReports
Examples
Notion PRDfeature + task
notion adapter
Linear tickettask
linear adapter
Spreadsheet rowmetric
csv adapter
Markdown docpersona + insight
markdown adapter
See it work
Live import
$ upg import notion --workspace=acme
Imported 28 pages →
12 personas, 47 jobs, 18 outcomes,
31 features, 23 tasks
184 relationships resolved
Cross-tool query
“Who is feature X for, and why are we building it?”
feature: Mobile capture · from Linear
↓ feature_addresses_job
job: Ship faster without status meetings
↑ persona_pursues_job
persona: Sarah, Series B PM · from Notion
↓ job_motivates_desired_outcome
desired_outcome: Day-30 retention 65% · from spreadsheet
Questions UPG answers for free
Which features have no owning persona?
Which outcomes have no measuring metric?
Which hypotheses lack experiments?
Which experiments block a roadmap item?
What jobs does this persona pursue?
Which features serve this outcome?
Before vs after
Before · seven dialects
NotionFeature ABC
untyped page · no relationships
LinearPRO-123
ticket · no link to persona
SpreadsheetQ4 NPS = 42
cell · no link to outcome
Markdownresearch/p1.md
prose · no entity type
After · one graph
featureFeature ABC
serves persona Sarah · achieves outcome Retention
taskPRO-123
implements feature ABC
metricNPS Q4 = 42
measures outcome Retention
insightp1 onboarding
derived from research_study research/p1

MIT-licensed. Vendor-neutral. Lives next to your code in a single .upg file.

05Build On It
Build apps on a defined structure.

Every adapter, every AI agent, every dashboard reads from the same typed graph. Build any tool that references your product knowledge.

Install
npm install @unified-product-graph/core
What you can build
Full SDK reference →
06Get Started
Give your product knowledge a home.

Two ways in. Pick one, or both.

Talk to your AI · free
Connect the local MCP server.

Adds UPG to Claude Code, Cursor, or any MCP-compatible AI. Your graph lives in a local .upg file you control.

Terminal
claude mcp add upg -- npx @unified-product-graph/mcp-server
Build on it · TypeScript
Install the SDK.

Read and write .upg files from your code. UPGClient with namespaced node and edge operations, health and search, built on @unified-product-graph/core.

npm install @unified-product-graph/sdk
Explore further