Tiro MCP tools are designed around a Progressive Disclosure pattern — load metadata first, details only when needed. The workflows below show how to chain tools for common tasks while keeping token usage minimal.Documentation Index
Fetch the complete documentation index at: https://api-docs.tiro.ooo/llms.txt
Use this file to discover all available pages before exploring further.
How to Find a Meeting and Read What Was Discussed
Tiro’s note-discovery surface is a 3-tier progression: start lightweight withlist_notes, deepen to search_notes when you need document content, and only reach for get_note_transcript when verbatim spoken words are required. Most user questions stop at tier 1 or tier 2.
Step-by-step
List candidate notes (cheapest)
list_notes with an optional query.keyword and filter to narrow the result. Returns metadata only (~50 tokens per note).filter.folderId to scope to a specific folder, or omit query.keyword entirely to browse a folder by date.Read documents for matched notes
search_notes with a required keyword. The response carries each matched note’s primary documents (one-pager, custom) inline, HTML-stripped and capped at 5KB per document.Fetch a single AI summary (optional)
get_note with include: ["summary"].Load the full transcript (last resort)
get_note_transcript. Returns timestamped paragraphs and a markdown-friendly transcription string (~3,000–5,000 tokens per hour of meeting).Token Usage
| Approach | Tokens | Speed |
|---|---|---|
list_notes only (find candidates) | ~50 per note | Fastest |
list_notes → search_notes (read documents) | ~1,500 per note | Fast |
Direct get_note_transcript load | ~3,000–5,000 per hour | Slowest |
| Savings vs. transcript | 70–80% | — |
Frequently Asked Questions
When do I use list_notes vs search_notes?
When do I use list_notes vs search_notes?
list_notes when you need to know which notes exist — by folder, by date, or by keyword presence. Returns metadata only.Use search_notes when you need to understand the context behind a topic — its decisions, action items, or conclusions. Returns matched notes with their documents inline. Keyword is required.What if list_notes returns no results?
What if list_notes returns no results?
- Drop or shorten the
query.keyword. - Widen the
filter.createdAtFrom/createdAtTorange or remove it. - Verify the note is “Completed” in your Tiro Dashboard — incomplete notes are excluded automatically.
Should I prefer search_notes documents or get_note_transcript?
Should I prefer search_notes documents or get_note_transcript?
search_notes. Curated documents are typically 10× more compact than the raw transcript and capture the team’s decisions, action items, and conclusions in their intended structure. Use get_note_transcript only when you need verbatim spoken words for a direct quote.What date format do createdAtFrom / createdAtTo accept?
What date format do createdAtFrom / createdAtTo accept?
2026-04-01T00:00:00Z. Date-only formats like 2026-04-01 are not accepted. The range is half-open [from, to).Can I use a team API key for keyword search?
Can I use a team API key for keyword search?
list_notes and search_notes requires a user-scoped API key — team-only API keys with keyword set return 400. Listing without a keyword (folder-scoped or unfiltered) works on team API keys.How to Generate Structured Documents from Meeting Notes
AI agents can extract action items, decisions, and key takeaways from any meeting using Tiro’s template-based document system. Each document is structured into sections defined by a template.Step-by-step
Browse available templates
list_document_templates to see what document types are available.id, title, and description.Find the target meeting
list_notes to locate the meeting by keyword (or folder, or date range).Retrieve the documents
get_note with include: ["documents"] to fetch all generated documents for the note in one call.Frequently Asked Questions
How do I know which template to use?
How do I know which template to use?
list_document_templates first. Each template includes a description field explaining its purpose. Use get_document_template with a specific templateId to see the full section structure before requesting documents.What if no document exists yet for a note?
What if no document exists yet for a note?
get_note(include: ["documents"]) returns an empty array. Documents must be generated from the Tiro app first — the MCP server provides read access to existing documents. Ask the note owner to generate the document in Tiro.Tips for AI Agent Developers
Token Optimization
- Always start with
list_notes(~50 tokens per note); deepen tosearch_notes(~1,500 tokens per note) only when document content is needed; reach forget_note_transcriptonly when verbatim quoting is required. - Use
pagination.sizeto bound results:list_notesdefaults to20(max100);search_notesdefaults to10(max30— smaller because each result includes documents). - Prefer
MARKDOWNformat on summaries and documents — more structured and easier for LLMs to parse.
Error Handling
401and403responses includeaction_urlanddocs_urlfields — surface these to you for self-service resolution429responses include aRetry-Afterheader — respect it before retrying- See Troubleshooting for a full error reference
Choosing the Right Tool
| User Intent | Start With | Then |
|---|---|---|
| ”Which meetings do I have on topic X?” | list_notes | — (metadata is enough) |
| “What was discussed in this meeting?” | search_notes | (documents inline; usually enough) |
| “Quote what they actually said” | list_notes | get_note_transcript |
| ”Give me the action items” | list_notes | get_note with include: ["documents"] |
| ”What document templates are available?” | list_document_templates | get_document_template |
| ”Am I authenticated?” | auth_status | — |