get_contact
ChatGPTGet details for a specific Blinq contact by contact ID. Use this tool when you need to: - Inspect contact details such as name, company, job title, emails, phone numbers, URLs, addresses, tags, text_notes, ai_notetaker_notes, and meeting overview - Fetch either a personal contact or a business contact scoped to a workspace Behavior: - If workspace_id is provided, the contact must match that workspace type: INDIVIDUAL workspaces return personal contacts, TEAM workspaces return business contacts - If workspace_id is omitted, the tool checks the user's personal workspace first, then team workspaces - Returns contact_not_found when the contact is not found in the requested scope <examples> get_contact(contact_id="contact-id") get_contact(contact_id="contact-id", workspace_id="workspace-id") </examples> <hints> - Use list_contacts to discover contact IDs, then call this tool for full detail - Use list_workspaces when the user needs to choose a workspace - text_notes are the contact's saved text notes. - ai_notetaker_notes are AI-notetaker note summaries linked to this contact; call get_note with a returned id for the full transcript (team members' notes require workspace admin/owner rights), and use list_notes to browse all notetaker notes. </hints>
get_contact
ChatGPTGet details for a specific Blinq contact by contact ID. Use this tool when you need to: - Inspect contact details such as name, company, job title, emails, phone numbers, URLs, addresses, tags, text_notes, ai_notetaker_notes, and meeting overview - Fetch either a personal contact or a business contact scoped to a workspace Behavior: - If workspace_id is provided, the contact must match that workspace type: INDIVIDUAL workspaces return personal contacts, TEAM workspaces return business contacts - If workspace_id is omitted, the tool checks the user's personal workspace first, then team workspaces - Returns contact_not_found when the contact is not found in the requested scope <examples> get_contact(contact_id="contact-id") get_contact(contact_id="contact-id", workspace_id="workspace-id") </examples> <hints> - Use list_contacts to discover contact IDs, then call this tool for full detail - Use list_workspaces when the user needs to choose a workspace - text_notes are the contact's saved text notes. - ai_notetaker_notes are AI-notetaker note summaries linked to this contact; call get_note with a returned id for the full transcript (team members' notes require workspace admin/owner rights), and use list_notes to browse all notetaker notes. </hints>
get_note
ChatGPTGet full detail for a specific AI notetaker note by note ID. Use this tool when you need to: - Read full note content - Inspect voice note or phone call transcript details - See linked contacts, source, and call phone number details for one note Behavior: - Returns the authenticated user's own notes, plus team members' notes when the user is an admin or owner of that workspace - Returns full content and transcript fields for the note - Transcript fields are only populated once the related voice note or phone call is completed - Returns note_not_found when the note does not exist or is not accessible <examples> get_note(note_id="note-id") </examples> <hints> - Use list_notes or search_notes to discover note IDs, then call this tool for full detail. - Use query_notes to ask a question across notes and get a synthesised, cited answer. - Use get_contact with a linked contact id to fetch full contact detail. - This tool returns one full AI-notetaker note; for the AI-notetaker note summaries linked to a specific contact, use get_contact and read ai_notetaker_notes. </hints>
get_note
ChatGPTGet full detail for a specific AI notetaker note by note ID. Use this tool when you need to: - Read full note content - Inspect voice note or phone call transcript details - See linked contacts, source, and call phone number details for one note Behavior: - Returns the authenticated user's own notes, plus team members' notes when the user is an admin or owner of that workspace - Returns full content and transcript fields for the note - Transcript fields are only populated once the related voice note or phone call is completed - Returns note_not_found when the note does not exist or is not accessible <examples> get_note(note_id="note-id") </examples> <hints> - Use list_notes or search_notes to discover note IDs, then call this tool for full detail. - Use query_notes to ask a question across notes and get a synthesised, cited answer. - Use get_contact with a linked contact id to fetch full contact detail. - This tool returns one full AI-notetaker note; for the AI-notetaker note summaries linked to a specific contact, use get_contact and read ai_notetaker_notes. </hints>
list_contacts
ChatGPTList Blinq contacts across the user's personal workspace and team workspaces they own or admin. Returns a lightweight summary per contact (id, workspace, type, name, company, job title, creation date). For full detail such as emails, phone numbers, URLs, addresses, tags, and notes (text and notetaker), call get_contact with the returned id. Use this tool when you need to: - Browse recent contacts across all accessible workspaces - Filter contacts by creation date range - Search contacts by name, job title, company, or the text of their notes - Scope to one or more workspaces via workspace_ids Behavior: - Business contacts only appear for TEAM workspaces where the user is OWNER or ADMIN, so some workspaces may be absent - Results are sorted by real contact creation date, newest first - Results are capped at limit per page. When has_more is true, pass next_cursor as cursor to fetch the next page - The first page includes total_count for the current filters; later pages return null <examples> list_contacts() list_contacts(workspace_ids=["ws-id"]) list_contacts(search="acme") list_contacts(date_from="2024-01-01T00:00:00Z", date_to="2024-12-31T23:59:59Z") </examples> <hints> - Use list_workspaces to discover workspace IDs before scoping with workspace_ids. - Use get_contact to fetch full detail for a contact returned here. </hints>
list_contacts
ChatGPTList Blinq contacts across the user's personal workspace and team workspaces they own or admin. Returns a lightweight summary per contact (id, workspace, type, name, company, job title, creation date). For full detail such as emails, phone numbers, URLs, addresses, tags, and notes (text and notetaker), call get_contact with the returned id. Use this tool when you need to: - Browse recent contacts across all accessible workspaces - Filter contacts by creation date range - Search contacts by name, job title, company, or the text of their notes - Scope to one or more workspaces via workspace_ids Behavior: - Business contacts only appear for TEAM workspaces where the user is OWNER or ADMIN, so some workspaces may be absent - Results are sorted by real contact creation date, newest first - Results are capped at limit per page. When has_more is true, pass next_cursor as cursor to fetch the next page - The first page includes total_count for the current filters; later pages return null <examples> list_contacts() list_contacts(workspace_ids=["ws-id"]) list_contacts(search="acme") list_contacts(date_from="2024-01-01T00:00:00Z", date_to="2024-12-31T23:59:59Z") </examples> <hints> - Use list_workspaces to discover workspace IDs before scoping with workspace_ids. - Use get_contact to fetch full detail for a contact returned here. </hints>
list_notes
ChatGPTList the authenticated user's AI notetaker notes. Returns a lightweight summary per note (id, type, title, share URL, linked contacts, creation date). For full note content or transcripts, call get_note with the returned id. Use this tool when you need to: - Browse recent AI notetaker notes - Find note IDs before fetching full detail - Discover linked contact IDs for notes Behavior: - Only returns notes from the authenticated user's own workspace - Returns summaries only; full content and transcripts are intentionally omitted and belong in get_note - Results are sorted newest first by the selected order_by value - Results are capped at limit per page. When has_more is true, pass next_cursor as cursor to fetch the next page - Keep order_by stable across pages; the first page includes total_count and later pages return null <examples> list_notes() list_notes(order_by="updated_at") list_notes(limit=50) list_notes(cursor="<next_cursor from a previous call>") </examples> <hints> - Use search_notes to find notes by keyword or topic instead of browsing chronologically. - Use query_notes to ask a question across notes and get a synthesised, cited answer. - Use get_note with a returned note id for full content or transcripts. - Use get_contact with a linked contact id to fetch full contact detail. - These are the user's AI-notetaker notes; for the AI-notetaker notes linked to a specific contact, use get_contact and read ai_notetaker_notes. </hints>
list_notes
ChatGPTList the authenticated user's AI notetaker notes. Returns a lightweight summary per note (id, type, title, share URL, linked contacts, creation date). For full note content or transcripts, call get_note with the returned id. Use this tool when you need to: - Browse recent AI notetaker notes - Find note IDs before fetching full detail - Discover linked contact IDs for notes Behavior: - Only returns notes from the authenticated user's own workspace - Returns summaries only; full content and transcripts are intentionally omitted and belong in get_note - Results are sorted newest first by the selected order_by value - Results are capped at limit per page. When has_more is true, pass next_cursor as cursor to fetch the next page - Keep order_by stable across pages; the first page includes total_count and later pages return null <examples> list_notes() list_notes(order_by="updated_at") list_notes(limit=50) list_notes(cursor="<next_cursor from a previous call>") </examples> <hints> - Use search_notes to find notes by keyword or topic instead of browsing chronologically. - Use query_notes to ask a question across notes and get a synthesised, cited answer. - Use get_note with a returned note id for full content or transcripts. - Use get_contact with a linked contact id to fetch full contact detail. - These are the user's AI-notetaker notes; for the AI-notetaker notes linked to a specific contact, use get_contact and read ai_notetaker_notes. </hints>
list_workspaces
ChatGPTList the Blinq workspaces available to the authenticated user. Use this tool when you need to: - Find workspace IDs before calling workspace-scoped tools such as get_contact or list_contacts - Determine whether a workspace is personal or business - Show the user which Blinq workspaces they can access Returns workspace ID, name, type, and role for each accessible workspace. <examples> list_workspaces() </examples> <hints> - Use personal workspace IDs for personal contacts. - Use business workspace IDs for business contacts. - Pass the selected workspace ID to get_contact or list_contacts when the user wants a specific workspace scope. </hints>
list_workspaces
ChatGPTList the Blinq workspaces available to the authenticated user. Use this tool when you need to: - Find workspace IDs before calling workspace-scoped tools such as get_contact or list_contacts - Determine whether a workspace is personal or business - Show the user which Blinq workspaces they can access Returns workspace ID, name, type, and role for each accessible workspace. <examples> list_workspaces() </examples> <hints> - Use personal workspace IDs for personal contacts. - Use business workspace IDs for business contacts. - Pass the selected workspace ID to get_contact or list_contacts when the user wants a specific workspace scope. </hints>
query_notes
ChatGPTAnswer a natural-language question using the authenticated user's AI notetaker notes, returning a synthesised answer with inline citations to the source notes. This runs retrieval + generation (RAG): it finds the most relevant notes and has an LLM answer the question from them, citing each claim. It is heavier and slower than search_notes — reach for it when you want a direct, written answer rather than a list of notes. Use this tool when you need to: - Answer a question that synthesises across one or more notes (e.g. "what did we decide about pricing?", "what are my action items from the Acme calls?") - Give the user a written answer with sources, not raw note matches Behavior: - Only uses the authenticated user's own notes - Answers from note titles and AI summaries, not raw transcripts; a detail spoken but absent from the summary may not be reflected - Cites sources inline as [n] markers (1-based) that map to the returned citations array - Says so when the notes do not contain enough information to answer — it will not invent an answer - Pass note_ids to answer strictly from specific notes (e.g. ones returned by search_notes or list_notes) <examples> query_notes(query="what did we agree on about the timeline?") query_notes(query="summarise my action items from the Acme calls", note_ids=["note_123", "note_456"]) </examples> <hints> - Preserve the [n] markers in the answer and surface citations (title + share_url) as the sources so the user can open them. - Use search_notes to find raw matching notes by keyword without a synthesised answer. - Use get_note with a citation's id (as note_id) for a note's full summary, transcript and call details. - Use list_notes to browse notes chronologically when you are not asking a question. </hints>
query_notes
ChatGPTAnswer a natural-language question using the authenticated user's AI notetaker notes, returning a synthesised answer with inline citations to the source notes. This runs retrieval + generation (RAG): it finds the most relevant notes and has an LLM answer the question from them, citing each claim. It is heavier and slower than search_notes — reach for it when you want a direct, written answer rather than a list of notes. Use this tool when you need to: - Answer a question that synthesises across one or more notes (e.g. "what did we decide about pricing?", "what are my action items from the Acme calls?") - Give the user a written answer with sources, not raw note matches Behavior: - Only uses the authenticated user's own notes - Answers from note titles and AI summaries, not raw transcripts; a detail spoken but absent from the summary may not be reflected - Cites sources inline as [n] markers (1-based) that map to the returned citations array - Says so when the notes do not contain enough information to answer — it will not invent an answer - Pass note_ids to answer strictly from specific notes (e.g. ones returned by search_notes or list_notes) <examples> query_notes(query="what did we agree on about the timeline?") query_notes(query="summarise my action items from the Acme calls", note_ids=["note_123", "note_456"]) </examples> <hints> - Preserve the [n] markers in the answer and surface citations (title + share_url) as the sources so the user can open them. - Use search_notes to find raw matching notes by keyword without a synthesised answer. - Use get_note with a citation's id (as note_id) for a note's full summary, transcript and call details. - Use list_notes to browse notes chronologically when you are not asking a question. </hints>
search_notes
ChatGPTSearch the authenticated user's AI notetaker notes by keyword, ranked by relevance. Returns matching notes with their AI summary (content), so you can often answer without a follow-up call. For full transcripts — or a summary that was truncated to fit — call get_note with a returned id. Use this tool when you need to: - Answer a natural-language question about what was discussed or decided in notes - Find notes mentioning a person, company, topic, or keyword - Locate the most relevant notes before fetching full detail Behavior: - Only searches the authenticated user's own notes - Matches note titles and AI summaries, not raw transcripts; a detail spoken but absent from the summary may not match - Results are ordered by relevance, most relevant first, capped at limit - Returns the top matches only and is not paginated; narrow the query to surface different notes - Summaries are returned in full; in a large result set, long summaries may be truncated to fit and truncated is set — call get_note for the full text - Returns an empty list when nothing matches <examples> search_notes(query="acme pricing") search_notes(query="what did we decide about the timeline", limit=5) </examples> <hints> - Use query_notes to get a synthesised, cited answer to a question instead of a list of matching notes. - Use get_note with a returned note id for the full summary, transcript and call details. - Use list_notes to browse notes chronologically when you are not searching by keyword. - Use get_contact with a linked contact id to fetch full contact detail. </hints>
search_notes
ChatGPTSearch the authenticated user's AI notetaker notes by keyword, ranked by relevance. Returns matching notes with their AI summary (content), so you can often answer without a follow-up call. For full transcripts — or a summary that was truncated to fit — call get_note with a returned id. Use this tool when you need to: - Answer a natural-language question about what was discussed or decided in notes - Find notes mentioning a person, company, topic, or keyword - Locate the most relevant notes before fetching full detail Behavior: - Only searches the authenticated user's own notes - Matches note titles and AI summaries, not raw transcripts; a detail spoken but absent from the summary may not match - Results are ordered by relevance, most relevant first, capped at limit - Returns the top matches only and is not paginated; narrow the query to surface different notes - Summaries are returned in full; in a large result set, long summaries may be truncated to fit and truncated is set — call get_note for the full text - Returns an empty list when nothing matches <examples> search_notes(query="acme pricing") search_notes(query="what did we decide about the timeline", limit=5) </examples> <hints> - Use query_notes to get a synthesised, cited answer to a question instead of a list of matching notes. - Use get_note with a returned note id for the full summary, transcript and call details. - Use list_notes to browse notes chronologically when you are not searching by keyword. - Use get_contact with a linked contact id to fetch full contact detail. </hints>
whoami
ChatGPTReturn the authenticated Blinq user behind the current MCP session. Use this tool when you need to: - Confirm which Blinq account the session is acting as - Get the authenticated user ID or email before scoping other calls Behavior: - Returns the user ID and email resolved from the session credentials - Takes no arguments and never reaches outside the current session <examples> whoami() </examples> <hints> - Use list_workspaces to see the workspaces this user can access. </hints>
whoami
ChatGPTReturn the authenticated Blinq user behind the current MCP session. Use this tool when you need to: - Confirm which Blinq account the session is acting as - Get the authenticated user ID or email before scoping other calls Behavior: - Returns the user ID and email resolved from the session credentials - Takes no arguments and never reaches outside the current session <examples> whoami() </examples> <hints> - Use list_workspaces to see the workspaces this user can access. </hints>