Skip to main content
Glama
Fellow MCP Server
by liba2k

Unofficial Fellow MCP Server

Disclaimer: This is an unofficial, community-maintained MCP server for the Fellow.ai API. It is not affiliated with, endorsed by, or associated with Fellow, Inc. "Fellow" is a registered trademark of Fellow, Inc.

A local MCP (Model Context Protocol) server that wraps the Fellow.ai API, providing tools to access meeting data, transcripts, summaries, action items, and participants.

Features:

  • Local SQLite database for caching meeting data

  • Automatic incremental sync to keep action items fresh

  • Full-text search across cached notes

  • Find meetings by participant

Installation

npm install -g unofficial-fellow-mcp

Related MCP server: Granola MCP Server

Setup

1. Get your Fellow API credentials

  1. Log into your Fellow account

  2. Navigate to Developer API settings in your User settings

  3. Generate a new API key

  4. Note your workspace subdomain (the part before .fellow.app in your URL)

2. Configure your MCP client

Add the following to your MCP client configuration (e.g., ~/.config/opencode/opencode.json):

{
  "mcp": {
    "fellow": {
      "type": "local",
      "command": ["npx", "-y", "unofficial-fellow-mcp"],
      "environment": {
        "FELLOW_API_KEY": "YOUR_FELLOW_API_KEY_HERE",
        "FELLOW_SUBDOMAIN": "YOUR_SUBDOMAIN"
      },
      "enabled": true
    }
  }
}

Available Tools

API Tools (Direct Fellow API calls)

search_meetings

Search for meetings/recordings in Fellow.

Parameters:

  • title (optional): Filter by meeting title (case-insensitive partial match)

  • created_at_start (optional): Filter meetings created after this date (ISO format)

  • created_at_end (optional): Filter meetings created before this date (ISO format)

  • limit (optional): Maximum number of results (1-50, default 20)

get_meeting_transcript

Get the full transcript of a meeting recording with speaker labels and timestamps.

Parameters:

  • recording_id (optional): The ID of the recording

  • meeting_title (optional): Search by meeting title

get_meeting_summary

Get the meeting summary/notes content including agenda items, discussion topics, and decisions.

Parameters:

  • note_id (optional): The ID of the note

  • recording_id (optional): Get the summary for a recording's associated note

  • meeting_title (optional): Search by meeting title

get_action_items

Extract action items from a single meeting's notes.

Parameters:

  • note_id (optional): The ID of the note

  • meeting_title (optional): Search by meeting title

get_meeting_participants

Get the list of participants/attendees for a meeting.

Parameters:

  • note_id (optional): The ID of the note

  • meeting_title (optional): Search by meeting title

Database Tools (Local SQLite cache)

sync_meetings

Sync meetings from Fellow API to local database.

Parameters:

  • force (optional, default: false): If true, performs full re-sync. Otherwise does incremental sync (only new/updated since last sync)

  • include_transcripts (optional, default: false): If true, also fetches and stores transcripts (slower)

get_all_action_items

Get all action items from the local database. Automatically performs incremental sync first to ensure data is fresh.

Parameters:

  • assignee (optional): Filter by assignee name (partial match)

  • show_completed (optional, default: false): If true, includes completed action items

  • since (optional): Only return action items from meetings on or after this date (ISO format: YYYY-MM-DD)

get_meetings_by_participants

Find meetings that included specific participants.

Parameters:

  • emails (required): List of email addresses to search for

  • require_all (optional, default: false): If true, only return meetings where ALL specified participants attended

search_cached_notes

Full-text search across all cached meeting notes (titles and content).

Parameters:

  • query (required): Search query

get_sync_status

Get the current sync status and database statistics.

Local Database

Meeting data is cached in a local SQLite database at ~/.unofficial-fellow-mcp/fellow.db. This enables:

  • Fast local searches

  • Querying across all action items

  • Finding meetings by participant

  • Offline access to cached data

The database stores:

  • Notes (meeting summaries, agendas, content)

  • Recordings (with optional transcripts)

  • Action items (parsed from notes with assignee/due date extraction)

  • Participants (email addresses)

Environment Variables

Variable

Required

Description

FELLOW_API_KEY

Yes

Your Fellow API key

FELLOW_SUBDOMAIN

Yes

Your Fellow workspace subdomain

Development

# Clone the repository
git clone <repo-url>
cd unofficial-fellow-mcp

# Install dependencies
npm install

# Create .env file with your credentials
echo "FELLOW_API_KEY=your_api_key_here" > .env
echo "FELLOW_SUBDOMAIN=your_subdomain" >> .env

# Watch mode for development
npm run dev

# Build
npm run build

# Test API connection
node --env-file=.env test-api.js

# Test MCP server
FELLOW_API_KEY=your_key FELLOW_SUBDOMAIN=your_subdomain node test-mcp.js

Requirements

  • Node.js >= 18.0.0

  • A Fellow.ai account with API access

License

MIT

API Reference

This MCP server wraps the Fellow Developer API. The API uses:

  • X-API-KEY header for authentication

  • POST requests for list operations (with JSON body for filters/pagination)

  • GET requests for retrieving individual resources

Available Tools

10 tools
get_action_itemsC

Get action items from a meeting. Extracts action items from the meeting notes content.

Inputs: note_id, meeting_title.

get_all_action_itemsA

Get all action items from the local database. Automatically performs incremental sync first to ensure data is fresh. Can filter by assignee, completion status, or date range.

Inputs: assignee, show_completed, since.

get_meeting_participantsC

Get the list of participants/attendees for a meeting. Returns email addresses of people who were invited to the calendar event.

Inputs: note_id, meeting_title.

get_meetings_by_participantsC

Find meetings that included specific participants. Searches the local database.

Inputs: emails (required), require_all.

get_meeting_summaryC

Get the meeting summary/notes content. Returns the structured notes including agenda items, discussion topics, and decisions made.

Inputs: note_id, recording_id, meeting_title.

get_meeting_transcriptA

Get the full transcript of a meeting recording. Returns diarized (speaker-labeled) and timestamped transcript segments.

Inputs: recording_id, meeting_title.

get_sync_statusB

Get the current sync status and database statistics.

Inputs: no named parameters.

search_cached_notesB

Full-text search across all cached meeting notes. Searches titles and content.

Inputs: query (required).

search_meetingsC

Search for meetings/recordings in Fellow. Can filter by title, date range, or event ID. Returns a list of meetings with basic metadata.

Inputs: title, created_at_start, created_at_end, limit.

sync_meetingsA

Sync meetings from Fellow API to local database. By default does incremental sync (only new/updated since last sync). Use force=true for full re-sync.

Inputs: force, include_transcripts, page_size.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 10 tools

    Disambiguation4/5

    Most tools have distinct purposes, such as get_action_items for extracting from notes versus get_all_action_items for querying the database, but there is some potential confusion between get_meeting_summary and get_meeting_transcript as both relate to meeting content. The descriptions clarify the differences, but overlap exists in the meeting data domain.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with clear verb_noun structure, such as get_action_items, search_meetings, and sync_meetings. This uniformity makes the tool set predictable and easy to navigate for an agent.

    Tool Count5/5

    With 10 tools, the server is well-scoped for managing meetings and action items in Fellow, covering key operations like retrieval, search, and synchronization. Each tool serves a specific function without redundancy, making the count appropriate for the domain.

    Completeness4/5

    The tool set provides comprehensive coverage for reading and searching meeting data, action items, and sync status, but lacks write operations such as creating or updating meetings or action items. This minor gap may require workarounds but does not severely hinder core workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers