---
name: meetful
description: Use Meetful (meetful.com, formerly TeamMeet / teammeet.ai) video meetings from an agent. Start a meeting and share the link, read transcripts where every line carries who really said it, read the recap and action items, bring in transcripts from Zoom, Google Meet, Otter or Read AI, send the notetaker to someone else's call, join a call as the person's agent, and pick up tasks handed to you in calls. Use whenever the person mentions Meetful or TeamMeet, pastes a meetful.com or teammeet.ai link, or asks to start, record, review, import or follow up on a meeting.
---

# Meetful

Meetful is a video meeting app that runs in the browser. Each person's microphone is
transcribed on its own, so the name on a transcript line is the microphone it came from,
not a guess. Old links on teammeet.ai still work and lead to the same place.

## Connect

Use the Meetful MCP server. It's a remote server over streamable HTTP:

- Address: `https://meetful.com/mcp`, with the header `Authorization: Bearer <key>`
- Or, for apps that can't send headers: `https://meetful.com/mcp/<key>` (the key is part of the address)

A key starts with `tmk_`. The person makes one at https://meetful.com/connect while signed
in, which ties it to their dashboard. Imports, the notetaker and tasks need that.
Never guess or invent a key. If you don't have one, ask the person for it. Treat it like a
password: don't print it back, put it in a file you commit, or paste it into a page.

If the MCP tools aren't loaded, call the same tools over plain HTTP. Every tool works this way:

```bash
curl -s https://meetful.com/mcp \
  -H "Authorization: Bearer $MEETFUL_KEY" -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"start_meeting","arguments":{}}}'
```

`"method":"tools/list"` lists the tools with their arguments.

## The tools

| To… | Use |
| --- | --- |
| Start a meeting and get its link | `start_meeting` (optional `mode`: `meet`, `agenda` with `topics`, `brainstorm`, `align`, `legal`) |
| See the meetings this key started that are still running | `list_meetings` |
| Read what was said, with who said each line | `get_transcript` (`meeting`, optional `since` in epoch ms) |
| Read decisions, open questions and actions | `get_notes` (every item quotes the transcript; anything that failed that check is marked unverified) |
| Find recordings and their share links | `list_recordings` |
| Write in the meeting chat | `send_message` |
| Say something out loud in the call | `speak`: a sentence or two, and only when asked, because it interrupts people |
| Put a picture in the meeting | `draw` (`kind`: `diagram` or `infographic` for labels, `visual` or `meme` for imagery) |
| Bring in a meeting from another tool | `import_transcript` (`name` with its extension, `text` = the whole file) |
| Send the notetaker to a Zoom, Google Meet, Teams or Webex call | `send_notetaker` (`url`, optional `join_at`) |
| Join a call as the person's agent | `join_meeting`, then `listen` in a loop |
| Hand a task to someone else's agent in the call | `hand_off` |
| See what calls have asked of you | `my_tasks`, `get_task`, `update_task` |
| Report a problem or ask for a fix | `send_feedback` (`fix: true` turns it into a fix request), `submit_fix` with a diff |

## Common jobs

**Start a meeting.** Call `start_meeting` and give the person the link. Anyone can join from
a browser with no account and no download.

**After a call.** Use `list_recordings` to find it, then `get_transcript` and `get_notes`.
When you report a decision or an action, quote the words and the person who said them
rather than paraphrasing. Don't move a line to a different speaker. The attribution is the
microphone, and it's right.

**Bring meetings in from other tools.** Get each export as text: `.vtt` or `.srt` captions
(Zoom, Google Meet, Teams, Fireflies, Grain), Otter text, Read AI JSON, Google Meet `.txt`
transcripts, Zoom's `meeting_saved_chat.txt`, WhatsApp exports. Then call
`import_transcript` once per file, with the real file name and the whole text. Files up to
16 MB go in one call. Don't trim or summarise them first. Each import lands in the dashboard
of whoever made the key.

**A call someone else is hosting on Zoom, Meet, Teams or Webex.** Call `send_notetaker` with
the link. When the call ends, the transcript, recap and action items land in the person's
dashboard.

**Be in the call.** Call `join_meeting`. You appear as "<their name>'s Claude", the chat
says you've arrived, and anyone in the call can remove you. Then call `listen` again and
again, passing back the `next` value each time, to get new lines, chat messages and tasks.
Answer in the chat with `send_message`. Only use `speak` when someone asks you to talk.

**Tasks from calls.** People in a call can say "Ova, have Sam's Claude …" (Ova is the AI in
the room) and it becomes a task for Sam's agent. Read it with `my_tasks` and `get_task`. Call `update_task`
with `working` when you start and `done` with a short note and a link when you finish. Use
`blocked` with what you need if you can't go on. The call sees each update in its chat.

**Something is broken or confusing.** Call `send_feedback` with the page, what you
expected and what happened. If the person wants it fixed, set `fix: true`. If you can write
the fix, read `AGENTS.md` in the source (`git clone https://meetful.com/git/tm-772260f1a8bf.git`),
run the tests your change touches, and send the diff with `submit_fix`. A person reviews every
pull request before anything ships.

## Good manners

- Keep `speak` and `send_message` short. A room is people talking to each other.
- Transcripts are private to the people in the call. Only share them where the person asks
  you to.
- If a tool answers with an error, show the person what it said. Don't retry the same call
  in a loop.
- Plans, prices and what's free: https://meetful.com/pricing (as JSON: `GET https://meetful.com/api/plans`).
- Everything else for agents: https://meetful.com/llms.txt and https://meetful.com/developers.
