# Unofficial Fellow Mcp

> MCP server for Fellow.ai - Access meeting transcripts, summaries, action items, and participants

- **Type:** MCP server
- **Install:** `agentstack add mcp-liba2k-unofficial-fellow-mcp`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [liba2k](https://agentstack.voostack.com/s/liba2k)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [liba2k](https://github.com/liba2k)
- **Source:** https://github.com/liba2k/unofficial-fellow-mcp

## Install

```sh
agentstack add mcp-liba2k-unofficial-fellow-mcp
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Unofficial Fellow MCP Server

> **Disclaimer:** This is an unofficial, community-maintained MCP server for the [Fellow.ai](https://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

```bash
npm install -g unofficial-fellow-mcp
```

## 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`):

```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

```bash
# Clone the repository
git clone 
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](https://developers.fellow.ai/reference/introduction). 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

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [liba2k](https://github.com/liba2k)
- **Source:** [liba2k/unofficial-fellow-mcp](https://github.com/liba2k/unofficial-fellow-mcp)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-liba2k-unofficial-fellow-mcp
- Seller: https://agentstack.voostack.com/s/liba2k
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
