Granola notes to a Linear ticket, without an export step
Granola runs an MCP server and Specky does too. Put both in the same MCP client, then hand the approved result to Linear — the path from a customer call to a ticket stops involving a human clipboard.
- Steps
- 5
- Tools
- 6
- Metrics
- 3
- Read
- 4 min
A six-person team where the founder takes most of the customer calls in Granola, one engineer picks up whatever lands in Linear, and nobody owns the gap between the two.
Composite blueprint. This is the loop and the wiring — assembled from workflows our early design partners run — not a single named customer’s audited results. Every number on this page is a metric to instrument, not a result we’re claiming.
What the week looked like
The notes were good. They just stayed in Granola, where nothing downstream could read them.
Turning a call into a ticket meant re-reading the notes, deciding what mattered, and retyping it — a twenty-minute tax per call, and the first thing dropped on a busy week.
Tickets carried the conclusion but not the quote, so engineering couldn’t tell a one-off gripe from a pattern.
Two calls a month apart said the same thing. Nobody noticed, because nothing held both.
One agent holds three connections. It reads the call where it already lives, checks the claim against every other signal in the graph, writes a spec that cites the sentence behind each requirement, and Linear picks the work up with that evidence attached.
The tools this loop runs on
Native connectors where they exist, and an honest label where they don't — anything else reaches Specky over MCP, the REST API, or an automation hop.
Granola runs its own hosted MCP server, authenticated with your Granola account. The agent reads meeting notes in place — no export, no forward, no paste.
The Product Graph. Checks the new note against every prior signal, clusters it into a theme, and drafts the spec with citations back to source nodes.
If your Linear plan and agent client support external MCP sources, triage can query Specky directly. Otherwise Specky pushes the approved ticket through its native Linear integration.
Tickets pushed from the approved spec, with the acceptance criteria and the evidence intact.
The harness holding all three connections. Any MCP client works — this is not a Claude-specific setup.
Where the readable version lands for everyone who doesn’t live in Linear.
How it actually runs
Every step is labelled by who does it. The steps marked 'you review' are the ones worth keeping human.
Two servers, one client
AutomaticAdd Granola and Specky to the same MCP client. If your Linear setup supports external MCP sources, add that as a third connection; otherwise use Specky’s native Linear handoff after approval. There is no export or field mapping to maintain in the core path.
The note lands somewhere that remembers
AgentThe agent reads today’s call and writes what it learned into Specky as a typed signal. That’s the step that makes the next four possible — a note in Granola is a record of one conversation, a node in the graph is comparable to every other conversation you’ve had.
One call becomes a pattern — or doesn’t
AgentSpecky checks the claim against everything already in the graph. Sometimes the answer is “nine accounts have said this since March.” Sometimes it’s “only this one.” Both are useful; the second is the one that saves you a quarter.
You approve the problem
You reviewThe spec lands in the PM Inbox with a confidence score and clickable citations. This is the only synchronous step. It takes minutes, and it’s the step that makes the rest safe to automate.
Linear picks it up with the receipts
AgentTickets carry the acceptance criteria and the customer’s own words. If your Linear setup can read external MCP sources, triage can query Specky for the answer; otherwise the evidence arrives in the ticket created from the approved spec.
The numbers to watch — not the ones we'd like to quote
We're not going to invent a percentage for you. These are the three metrics that tell you whether the loop is real, and how to compute each one from data the graph already holds.
Calls that produce a traceable artifact
All of them — a call with no downstream node didn’t happen
Count graph nodes sourced from meeting notes against calls recorded in the period. The gap is the twenty-minute tax, still being paid.
Call ended → spec approved
Same day
Transcript node created_at → PRD approved_at. If it’s still a week, the agent isn’t running unattended and you’ve automated the typing but not the loop.
Tickets containing a verbatim customer quote
Every ticket that came from a call
Search ticket descriptions for a cited evidence node. This is the metric engineering actually notices, because it’s the one that changes how a ticket reads.
Start here, not everywhere
Connect Granola and Specky to the same client first
Both are hosted MCP servers, so this is two config entries and no infrastructure. Do this before you touch Linear — the read-and-remember half is where the value is, and it’s testable in one call.
Give the agent one instruction, not five
“Read today’s Granola calls, check each claim against the Specky graph, and draft a spec for anything backed by more than one account.” Long prompts here produce long specs. The constraint is the point.
Use the optional Linear agent handoff
If your Linear plan supports external MCP sources, let its agent read Specky on demand. If it does not, use Specky’s native Linear integration to push the approved ticket with the evidence attached. Both paths keep the source of truth in the Product Graph.
https://www.specky.space/api/mcpClaude Code · Codex · Cursor · Claude Desktop · ChatGPT · n8n
Frequently asked questions
Do I need Claude Code specifically?+
No. Any MCP client that supports multiple servers works — Claude Code, Claude Desktop, Codex, Cursor, Windsurf, or an n8n agent node. The flow is a property of the three servers, not of one harness. Specky implements the Streamable HTTP transport, so if your client speaks MCP it can be one of the three.
What if we use Fathom, Fireflies, or Otter instead of Granola?+
The same shape works — the question is only whether your notetaker exposes an MCP server or an API. If it does, swap it in directly. If it doesn’t, an n8n or Zapier hop posts transcripts to Specky’s capture endpoint and everything downstream is identical. Gong and Zoom have native Specky connectors.
Does this need a Granola paid plan?+
Granola’s MCP server is theirs, authenticated with your Granola account, and which plans include it is their call — check with them rather than taking our word for it. Nothing on the Specky side is gated differently depending on how the notes arrive.
Run this loop on your own product.
One source, one agent, one approval gate. You’ll know inside a week whether it holds.
14-day free trial · No credit card required · Cancel anytime