Skip to main content
Glama

Server Details

Search and read your recorded meetings: notes, action items, participants, transcripts.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
adamperlis/walkie-mcp
GitHub Stars
1
Server Listing
Walkie for MCP
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation3/5

The set is effectively three capabilities (list, search, read) exposed as five tools, with `fetch`/`get_meeting` and `search`/`search_meetings` being exact duplicates. The descriptions do explicitly explain the duplication (ChatGPT connector compatibility) and warn against misuse, which prevents outright misselection, but an agent still has to reason about which alias to pick.

Naming Consistency2/5

Two naming conventions coexist: bare verbs (`fetch`, `search`) alongside verb_noun names (`get_meeting`, `list_meetings`, `search_meetings`). Worse, the same operation is named differently across the pair (`search` vs `search_meetings`, `fetch` vs `get_meeting`), breaking any predictable pattern.

Tool Count3/5

Five tools is within a reasonable range for a read-only meeting archive, but two of them are pure aliases, so 40% of the surface is redundant. The count is defensible only because of an external platform constraint rather than genuine scope.

Completeness4/5

For a read-only synced-meeting domain, the surface covers the core lifecycle: enumerate the archive, keyword-search across notes/transcript, and read a full meeting with pagination and time-range windows. Minor gaps exist — no cross-meeting action-item aggregation or participant-centric listing — but agents can work around these via search.

Available Tools

5 tools
fetchFetch one recorded meeting (ChatGPT name)A
Read-onlyIdempotent
Inspect

Same read as get_meeting: one meeting's notes, action items, participants, and speaker-labeled transcript with timestamp links where recorded, paged for long meetings — the end of text says how to get the next page (pass its cursor). Cite the closest timestamp for exact quotes and decisions. Exists because ChatGPT's connector surface requires a tool named fetch; other clients should call get_meeting.

Use with an id from search. Do not use to find a meeting by topic (search / search_meetings).

Does not create, edit, or delete meetings. Unknown ids return an error.

NameRequiredDescriptionDefault
idYesMeeting id from search, e.g. "mtg-1786560198190".
cursorNoContinue reading: pass the previous page's next_cursor unchanged. A search hit's cursor works too and opens the transcript at that hit.
end_minuteNoStop before this minute (e.g. 122). With start_minute, reads one stretch of a long meeting; it still pages if the stretch is long.
start_minuteNoStart the transcript at this minute of the meeting (e.g. 60). Ignored when cursor is set.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the description does not need to repeat that. It does add real behavior the annotations cannot express: transcripts are paged, the next-page instruction lives at the end of `text`, and unknown ids return an error. The "does not create, edit, or delete" line restates the destructiveHint annotation rather than adding to it.

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?

The payload-defining sentence comes first, followed by paging, citation guidance, the naming rationale, and then usage constraints. Dense but well ordered. The one meta sentence about ChatGPT's connector surface earns its place as routing guidance, though it is the most expendable line.

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?

With no output schema, the description carries the return-value burden and does so: it names every returned component and explains how to continue past the first page. Combined with the error behavior and citation advice, nothing needed to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters; baseline would be 3. The description goes slightly further by explaining the paging loop (pass the cursor, the end of `text` tells you how) and tying `cursor` to search hits opening at the matched transcript position, which clarifies how the parameters interact across calls.

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?

A specific verb and resource (read one recorded meeting) plus an enumeration of the returned content: notes, action items, participants, speaker-labeled transcript with timestamp links. It explicitly distinguishes itself from get_meeting ("same read as get_meeting") and from the search siblings, so an agent can place it immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives positive usage ("Use with an id from search"), a negative case with the correct alternative ("Do not use to find a meeting by topic (search / search_meetings)"), and a client-based routing rule (other clients should call get_meeting). Both when and when-not are stated with alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_meetingRead one recorded meeting in fullA
Read-onlyIdempotent
Inspect

Read one recorded meeting: AI notes, action items, participants, and the speaker-labeled transcript with timestamp links where recorded, all in text. Cite the closest timestamp for exact quotes and decisions. Long transcripts come back in pages; each page's transcript_page says which lines and minutes it covers, the meeting's total length, how many pages are left, and a next_cursor. To read the whole meeting, keep calling with the same id and cursor = next_cursor until transcript_page.complete is true — never treat one page as the full call. To read one stretch, pass start_minute and/or end_minute; a search hit's cursor opens the transcript at that hit. Notes come on the first page. Takes an id from search_meetings or list_meetings.

Use when you already have a meeting id and need the notes or quotes. Do not use to find a meeting by topic (search_meetings) or to page the archive (list_meetings). ChatGPT clients call the same read as fetch.

Does not create, edit, or delete meetings. Unknown ids return an error, not an empty meeting.

NameRequiredDescriptionDefault
idYesMeeting id from search_meetings or list_meetings, e.g. "mtg-1786560198190".
cursorNoContinue reading: pass the previous page's next_cursor unchanged. A search hit's cursor works too and opens the transcript at that hit.
end_minuteNoStop before this minute (e.g. 122). With start_minute, reads one stretch of a long meeting; it still pages if the stretch is long.
start_minuteNoStart the transcript at this minute of the meeting (e.g. 60). Ignored when cursor is set.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, but the description adds substantial behavior the annotations cannot convey: paginated transcripts, the transcript_page metadata fields, the next_cursor loop and the warning not to treat one page as the full call, notes appearing only on the first page, ignored start_minute when cursor is set, and errors rather than empty results for unknown ids. It also states the non-mutation guarantee explicitly, matching the annotations rather than contradicting them.

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?

Front-loaded with the resource and payload, then pagination, then when-to-use/exclusions. Dense and nearly waste-free, though the pagination paragraph is long and the 'never treat one page as the full call' warning restates the transcript_page.complete instruction already given.

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?

No output schema exists, so the description carries the return-shape burden and does so thoroughly: the `text` field, transcript_page contents (line/minute coverage, total length, pages remaining, next_cursor, complete), and where notes appear. Combined with pagination and error semantics, an agent can call and consume this tool correctly end to end.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description goes beyond it by explaining the pagination protocol (same id, cursor = next_cursor until transcript_page.complete), the start_minute/end_minute range-read pattern, and the precedence rule that a search hit's cursor opens at that hit. Minor residual gap: it does not clarify units or clamping for end_minute beyond the minute-based examples already in the schema.

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?

States a specific verb and resource ('Read one recorded meeting') and enumerates what comes back: AI notes, action items, participants, speaker-labeled transcript with timestamp links. It explicitly names the two siblings it is not (search_meetings for topic lookup, list_meetings for archive paging), so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives both sides of the decision: 'Use when you already have a meeting id and need the notes or quotes' plus explicit 'Do not use to find a meeting by topic (search_meetings) or to page the archive (list_meetings).' It also states the id source (search_meetings or list_meetings) and explains how a search hit's cursor is reused, closing the loop between search and read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_meetingsList recorded meetings as metadataA
Read-onlyIdempotent
Inspect

List the user's synced meetings, newest first, as metadata only — id, title, date, length, and participants, with no notes or transcript. Page by passing each reply's next_cursor back as cursor until next_cursor is null; that walk returns every meeting exactly once.

Use to build an index of the archive. Do not use when you already know what you are looking for (search_meetings) or when you need notes/transcript for one id (get_meeting).

Does not create, edit, or delete meetings. This is metadata only — it will not return what was said.

NameRequiredDescriptionDefault
limitNoMax rows to return. Default 50, cap 200.
cursorNoContinue listing: pass the previous reply's next_cursor unchanged.
offsetNoSkip this many meetings. Prefer cursor, which cannot skip or repeat a meeting when one syncs or is deleted while you page.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavior: the cursor walk returns every meeting exactly once, and the response is metadata only with no notes or transcript. It also states it does not create, edit, or delete, reinforcing the safety profile rather than contradicting it.

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?

Front-loaded with the core action and return shape, then pagination, then routing guidance. Slightly redundant in repeating 'metadata only' twice, but the repetition serves the critical disambiguation from transcript-bearing siblings.

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?

With no output schema, the description still enumerates the returned fields and the next_cursor field needed to page, and it covers the mutation and content boundaries. An agent has everything required to call and iterate this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains the next_cursor-to-cursor loop and the exactly-once guarantee, which the schema alone does not convey. It does not restate the limit cap or offset semantics, leaving those to the schema.

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?

States a specific verb and resource (list the user's synced meetings) plus ordering (newest first) and exact returned fields (id, title, date, length, participants). It explicitly excludes notes/transcript, which separates it cleanly from get_meeting and search_meetings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit positive case (build an index of the archive) and two explicit negative cases with named alternatives: search_meetings when you know what you want, get_meeting when you need notes/transcript for one id. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_meetingsSearch recorded meetings by keywordA
Read-onlyIdempotent
Inspect

Search the user's recorded meetings by keyword or phrase. Matches titles, notes, action items, participant names, and the spoken transcript. Returns ids, titles, dates, participants, note headings and each meeting's transcript hits: the time, the lines around each hit, and a cursor that opens get_meeting right at that point (pass it as get_meeting's cursor).

Use when the user asks what was said, decided, or assigned on a call, or names a person or project in the context of a meeting. Do not use to browse the whole archive (list_meetings) or to open a meeting whose id you already have (get_meeting). ChatGPT clients call the same search as search.

Does not create, edit, or delete meetings. query must be non-empty (a blank query is rejected, not treated as list-everything). Scans at most the 200 most recent synced meetings; truncated means older meetings were not searched, so total is matches in that window, not the lifetime corpus.

NameRequiredDescriptionDefault
limitNoMax matches to return. Default 10, cap 25.
queryYesKeyword or phrase to find. Matched as plain text (case-insensitive) against titles, notes, action items, participants, and transcript — not a boolean query language.
hits_per_meetingNoTranscript hits to show per meeting, each with the lines around it and a cursor for get_meeting. Default 3, cap 10.

Output Schema

NameRequiredDescription
totalNoMatches inside the scanned window.
matchesNo
resultsNo
scannedNoMeetings actually scanned (≤ 200).
truncatedNoTrue if older meetings were not scanned.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive and closed-world, but the description adds behavior the annotations cannot express: no create/edit/delete, blank queries rejected rather than treated as list-all, a 200-most-recent-meeting scan cap, and the meaning of `truncated` and `total` within that window. Those are exactly the runtime caveats an agent needs to interpret results honestly.

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?

The structure is front-loaded and logical: capability, return shape, when-to-use, when-not-to-use, then behavioral caveats. It is dense but nearly every clause carries information; the return-format sentence is somewhat long and partially redundant given the output schema exists.

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 read-only search with a full output schema, this covers everything that matters: what is matched, what comes back, how the cursor links to get_meeting, the alias, and the scanning-window limitation that changes how `total` should be read. Nothing needed to call or interpret it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, and the description does add meaning beyond the schema for `query`: it is plain-text case-insensitive matching, not a boolean query language, and an empty value is rejected rather than widening to everything. It does not add anything for `limit` or `hits_per_meeting` beyond their schema descriptions.

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 opens with a specific verb and resource ('Search the user's recorded meetings by keyword or phrase') and immediately enumerates the searchable fields (titles, notes, action items, participants, transcript). It explicitly names the two siblings it is not (list_meetings for browsing, get_meeting for a known id), so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete positive trigger ('what was said, decided, or assigned on a call, or names a person or project') plus explicit exclusions mapped to the right alternatives. It even resolves the alias ambiguity by noting ChatGPT clients call the same search as `search`, which matters given `search` is a sibling name.

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. 4 tool updates
    • Changedfetch3 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Continue reading: pass the previous page's next_cursor unchanged. A search hit's cursor works too and opens the transcript at that hit.",
        +  "type": "string"
        +}
      • addedInput schema / properties / end_minute
        Added value: +{
        +  "description": "Stop before this minute (e.g. 122). With start_minute, reads one stretch of a long meeting; it still pages if the stretch is long.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / start_minute
        Added value: +{
        +  "description": "Start the transcript at this minute of the meeting (e.g. 60). Ignored when cursor is set.",
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Changedget_meeting3 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Continue reading: pass the previous page's next_cursor unchanged. A search hit's cursor works too and opens the transcript at that hit.",
        +  "type": "string"
        +}
      • addedInput schema / properties / end_minute
        Added value: +{
        +  "description": "Stop before this minute (e.g. 122). With start_minute, reads one stretch of a long meeting; it still pages if the stretch is long.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / start_minute
        Added value: +{
        +  "description": "Start the transcript at this minute of the meeting (e.g. 60). Ignored when cursor is set.",
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Changedlist_meetings2 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Continue listing: pass the previous reply's next_cursor unchanged.",
        +  "type": "string"
        +}
      • changedInput schema / properties / offset / description
        Previous value: -"Skip this many meetings (use with returned total)."New value: +"Skip this many meetings. Prefer cursor, which cannot skip or repeat a meeting when one syncs or is deleted while you page."
    • Changedsearch_meetings1 field changed
      • addedInput schema / properties / hits_per_meeting
        Added value: +{
        +  "description": "Transcript hits to show per meeting, each with the lines around it and a cursor for get_meeting. Default 3, cap 10.",
        +  "maximum": 10,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  2. 5 tool updates
    • First observedfetch
    • First observedget_meeting
    • First observedlist_meetings
    • First observedsearch
    • First observedsearch_meetings

Publisher details

Operator
Walkie · Publisher source
Vendor relationship
First-party
Restrictions
Not available

Related MCP Connectors

Related MCP Servers

  • 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
  • A
    license
    A
    quality
    D
    maintenance
    Read-only access to your Gilbert meetings, transcripts and summaries over MCP — list, search, and fetch transcripts and summaries.
    5
    69 npm
    1
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Enables searching and retrieving local Granola meeting notes, including transcripts, AI-generated summaries, and action items. It supports filtering by date or attendee and automatically reloads when the local Granola cache is updated.
    8
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.