Referna Meeting Recaps
Server Details
Connect AI assistants to a Referna member's personalized live meeting recaps. List available recaps and retrieve the summary for a selected meeting.
- Status
- Healthy
- Uptime
- 100.0% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- Referna Meeting Recaps
TDQS
Scored across 2 tools
The two tools are clearly distinct: list_meeting_recaps retrieves a collection, while get_meeting_recap retrieves a single recap by ID. There is no realistic overlap or misselection risk.
Both names follow the same predictable verb_noun pattern using snake_case: list_meeting_recaps and get_meeting_recap. The resource term is consistently used.
Two tools is quite thin, but it may fit a narrow read-only recap retrieval service. Still, it sits at the borderline of feeling under-scoped for a meeting recap integration.
The read surface is coherent: agents can list recaps and fetch one by ID. There are no write operations or filtering/search tools, but those may be outside the server's purpose.
Available Tools
2 toolsget_meeting_recapGet my meeting recapARead-onlyIdempotentInspect
Get one personalized Referna meeting recap by ID from the list. Returns not found when the key owner cannot access it.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Recap ID returned as sessionId by list_meeting_recaps. Mixer IDs have mixer:<mixerId>:<occurrenceId> format. |
Output Schema
| Name | Required | Description |
|---|---|---|
| recap | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context by disclosing that access failures return not found when the key owner cannot access the recap, which helps an agent interpret error responses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core purpose is front-loaded, followed immediately by the relevant access-failure behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool with one fully documented parameter and an output schema, the description covers the essential purpose and access behavior. No critical calling information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema itself explains that sessionId is the recap ID returned by list_meeting_recaps and may use mixer:<mixerId>:<occurrenceId> format. The description only adds 'by ID from the list,' so the schema does most of the semantic work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: retrieve one personalized Referna meeting recap by ID. It explicitly scopes the operation to a single recap from the list, distinguishing it from the sibling list_meeting_recaps tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from the list' implies the recap ID comes from list_meeting_recaps, which is useful context. However, it does not explicitly name the sibling tool as the discovery path or state when not to use this tool, leaving the guidance implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_meeting_recapsList my meeting recapsARead-onlyIdempotentInspect
List the key owner's personalized Referna intro, general, follow-up, and mixer recaps, newest first. Mixer recaps include the 1:1 checklist for each conversation the member joined.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recaps, from 1 to 50. Default 20. | |
| offset | No | Number of newer recaps to skip. Default 0. |
Output Schema
| Name | Required | Description |
|---|---|---|
| recaps | Yes | |
| nextOffset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior. The description adds useful content context beyond that: it explains that mixer recaps include a 1:1 checklist and that ordering is newest first, though it omits pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the core purpose and ordering front-loaded, followed by a useful detail about mixer recap content. Zero obvious waste, though the second sentence could be trimmed if space were critical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with rich annotations, 100% schema coverage, and an output schema, the description provides enough to call it correctly. Any remaining details, such as pagination defaults and response shape, are already covered by structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both limit and offset are fully documented in the schema. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('meeting recaps'), enumerates the recap types, and specifies ordering ('newest first'). It does not explicitly differentiate from the sibling get_meeting_recap, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The listing purpose is implied by 'List' and ordering, but there is no explicit guidance on when to use this tool versus get_meeting_recap. The reader can infer list-vs-get, but the description does not state the alternative or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
get_meeting_recap1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "recap": { + "additionalProperties": false, + "properties": { + "agendaCoverage": { + "items": { + "additionalProperties": false, + "properties": { + "covered": { + "type": "boolean" + }, + "note": { + "type": "string" + }, + "topicKey": { + "type": "string" + }, + "topicTitle": { + "type": "string" + } + }, + "required": [ + "topicKey", + "topicTitle", + "covered", + "note" + ], + "type": "object" + }, + "type": "array" + }, + "bodyText": { + "type": "string" + }, + "conversations": { + "items": { + "additionalProperties": false, + "properties": { + "agendaCoverage": { + "items": { + "additionalProperties": false, + "properties": { + "covered": { + "type": "boolean" + }, + "note": { + "type": "string" + }, + "topicKey": { + "type": "string" + }, + "topicTitle": { + "type": "string" + } + }, + "required": [ + "topicKey", + "topicTitle", + "covered", + "note" + ], + "type": "object" + }, + "type": "array" + }, + "partnerEmail": { + "type": "string" + }, + "round": { + "type": "integer" + } + }, + "required": [ + "round", + "partnerEmail", + "agendaCoverage" + ], + "type": "object" + }, + "type": "array" + }, + "counterpartEmail": { + "type": [ + "string", + "null" + ] + }, + "kind": { + "type": "string" + }, + "meetingDate": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "summaryCreatedAt": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "sessionId", + "kind", + "title", + "counterpartEmail", + "meetingDate", + "summaryCreatedAt", + "subject", + "bodyText", + "agendaCoverage", + "conversations" + ], + "type": "object" + } + }, + "required": [ + "recap" + ], + "type": "object" +}
- Changed
list_meeting_recaps1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "nextOffset": { + "type": [ + "integer", + "null" + ] + }, + "recaps": { + "items": { + "additionalProperties": false, + "properties": { + "agendaCoverage": { + "items": { + "additionalProperties": false, + "properties": { + "covered": { + "type": "boolean" + }, + "note": { + "type": "string" + }, + "topicKey": { + "type": "string" + }, + "topicTitle": { + "type": "string" + } + }, + "required": [ + "topicKey", + "topicTitle", + "covered", + "note" + ], + "type": "object" + }, + "type": "array" + }, + "bodyText": { + "type": "string" + }, + "conversations": { + "items": { + "additionalProperties": false, + "properties": { + "agendaCoverage": { + "items": { + "additionalProperties": false, + "properties": { + "covered": { + "type": "boolean" + }, + "note": { + "type": "string" + }, + "topicKey": { + "type": "string" + }, + "topicTitle": { + "type": "string" + } + }, + "required": [ + "topicKey", + "topicTitle", + "covered", + "note" + ], + "type": "object" + }, + "type": "array" + }, + "partnerEmail": { + "type": "string" + }, + "round": { + "type": "integer" + } + }, + "required": [ + "round", + "partnerEmail", + "agendaCoverage" + ], + "type": "object" + }, + "type": "array" + }, + "counterpartEmail": { + "type": [ + "string", + "null" + ] + }, + "kind": { + "type": "string" + }, + "meetingDate": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "summaryCreatedAt": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "sessionId", + "kind", + "title", + "counterpartEmail", + "meetingDate", + "summaryCreatedAt", + "subject", + "bodyText", + "agendaCoverage", + "conversations" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "recaps", + "nextOffset" + ], + "type": "object" +}
1 tool update
- Changed
get_meeting_recap1 field changed- changed
Input schema / properties / sessionId / descriptionPrevious value: -"Session ID returned by list_meeting_recaps."New value: +"Recap ID returned as sessionId by list_meeting_recaps. Mixer IDs have mixer:<mixerId>:<occurrenceId> format."
2 tool updates
- First observed
get_meeting_recap - First observed
list_meeting_recaps
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs112 npm29 PyPIMIT
- AlicenseAqualityDmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.