Skip to main content
Glama

Server Details

Read your personalized Referna meeting recaps with an AI assistant.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
97.9% over 26 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: list_meeting_recaps returns the collection, while get_meeting_recap retrieves a single recap by ID. There is no meaningful overlap or ambiguity between them.

Naming Consistency5/5

Both names follow the same predictable verb_noun pattern (list_meeting_recaps, get_meeting_recap). Naming is clean and consistent across the entire small tool set.

Tool Count3/5

Only two tools are provided, which is thin even for a read-only recap retrieval server. They are well-scoped individually, but the surface feels minimal and lacks options like search or filtering.

Completeness4/5

The list-and-get pair covers the core retrieval lifecycle for meeting recaps, including access restrictions and mixer checklist details. Minor gaps exist around searching or filtering recaps, but agents can work around this by listing first.

Available Tools

2 tools
get_meeting_recapGet my meeting recapA
Read-onlyIdempotent
Inspect

Get one personalized Referna meeting recap by ID from the list. Returns not found when the key owner cannot access it.

NameRequiredDescriptionDefault
sessionIdYesRecap ID returned as sessionId by list_meeting_recaps. Mixer IDs have mixer:<mixerId>:<occurrenceId> format.

Output Schema

NameRequiredDescription
recapYes

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 recapsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
limitNoNumber of recaps, from 1 to 50. Default 20.
offsetNoNumber of newer recaps to skip. Default 0.

Output Schema

NameRequiredDescription
recapsYes
nextOffsetYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 2 tool updates
    • Changedget_meeting_recap1 field changed
      • changedOutput 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"
        +}
    • Changedlist_meeting_recaps1 field changed
      • changedOutput 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"
        +}
  2. 1 tool update
    • Changedget_meeting_recap1 field changed
      • changedInput schema / properties / sessionId / description
        Previous 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."
  3. 2 tool updates
    • First observedget_meeting_recap
    • First observedlist_meeting_recaps

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Access your meetings, transcripts, summaries, and action items from Convo, an AI meeting assistant. Cross-meeting intelligence: prepare for calls with past context, get weekly digests, and track action items across all meetings. Works before, during, and after your meetings.
    12
    70 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to query and update a persistent relationship ledger, providing pre-meeting context briefs, structured post-meeting extraction, and tracking of commitments, agreements, and open loops.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables assistants to search meetings, transcripts and dictations, gather decisions and action items by person and deadline, locate who said what and when, and transcribe audio or video from links or files. Sign-in is via OAuth account access, with reading free and transcription charged per minute.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources