Skip to main content
Glama
Quip MCP Server
by lzongren

Quip MCP Server

CI License: MIT

A Model Context Protocol (MCP) server that provides native access to Quip documents from any MCP-compatible AI client (Claude Desktop, Claude Code, or custom integrations). Search, browse, and read Quip documents as clean markdown — enabling powerful workflows like querying interview schedules, reviewing application materials across folders, or generating preparation plans from scattered documents.

Features

  • Search documents — Full-text search across your Quip workspace

  • Browse folders — List folder contents or recursively explore folder trees

  • Read documents — Fetch document content converted to clean markdown

  • User info — Get current user profile and root folder IDs

Related MCP server: Reader MCP Server

Tools

Tool

Description

Parameters

quip_get_user

Get current user info and folder IDs

—

quip_get_folder

List threads and subfolders in a folder

folder_id

quip_get_document

Fetch document content as markdown

thread_id, max_length? (default 50k)

quip_search

Search documents by query

query, count? (default 20)

quip_browse_folder_tree

Recursively explore folder hierarchy

folder_id, max_depth? (default 3)

Setup

Prerequisites

Install & Build

npm install
npm run build

Configure with MCP Clients

Claude Code

claude mcp add -s user \
  -e QUIP_ACCESS_TOKEN="<your-token>" \
  -e QUIP_API_BASE="https://platform.quip.com" \
  quip -- node /path/to/quip-local-mcp/build/index.js

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "quip": {
      "command": "node",
      "args": ["/absolute/path/to/quip-local-mcp/build/index.js"],
      "env": {
        "QUIP_ACCESS_TOKEN": "<your-token>",
        "QUIP_API_BASE": "https://platform.quip.com"
      }
    }
  }
}

Note: For custom Quip domains, change QUIP_API_BASE accordingly (e.g., https://yourcompany.quip.com).

Development

npm run dev          # Watch mode (recompile on changes)
npm run lint         # Type check (tsc --noEmit)
npm test             # Run tests
npm run test:watch   # Run tests in watch mode
npm run test:coverage # Run tests with coverage report

Architecture

src/
├── index.ts              # MCP server entry point (stdio transport)
├── quip-client.ts        # Quip REST API client (auth, rate limiting, retries)
├── html-converter.ts     # HTML → Markdown via Turndown with Quip-specific rules
├── types.ts              # TypeScript interfaces for Quip API responses
└── tools/
    ├── get-user.ts       # quip_get_user
    ├── get-folder.ts     # quip_get_folder
    ├── get-document.ts   # quip_get_document
    ├── search.ts         # quip_search
    └── browse-tree.ts    # quip_browse_folder_tree

Key Design Decisions

  • HTML → Markdown via Turndown — Quip returns HTML; Turndown converts it to clean markdown for LLM consumption with custom rules for Quip-specific elements (checklists, section wrappers, embedded spreadsheets).

  • Client-side rate limiting — Token bucket at 40 req/min (conservative vs Quip's 50/min limit) with exponential backoff on 429 responses.

  • Errors as text content — MCP best practice: errors are returned in tool output so the LLM can see and respond to them.

  • Large document truncation — Default 50k character limit with clear warning to prevent token overflow.

License

MIT

Available Tools

5 tools
quip_browse_folder_treeA

Recursively browse a Quip folder hierarchy, showing documents and subfolders as an indented tree

Inputs: folder_id (required), max_depth.

quip_get_documentA

Get a Quip document's content as markdown

Inputs: thread_id (required), max_length.

quip_get_folderB

Get a Quip folder's contents, listing its child documents and subfolders

Inputs: folder_id (required).

quip_get_userA

Get the current authenticated Quip user's profile, including name, email, and key folder IDs

Inputs: no named parameters.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct resource or action: user, folder contents, document content, search, and folder tree browsing. Even get_folder and browse_folder_tree differ in depth (single level vs. recursive tree), avoiding confusion.

    Naming Consistency5/5

    All tools share the 'quip_' prefix and use a consistent verb_noun pattern (get_user, get_folder, get_document, search, browse_folder_tree). Renaming 'search' to 'search_documents' would be slightly more uniform, but the existing style is very predictable.

    Tool Count5/5

    Five tools is well-scoped for a read-only Quip client, covering user, folder, document, search, and hierarchical browsing. Each tool earns its place without redundancy or bloat.

    Completeness3/5

    The set is strong for reading and searching Quip content, but lacks any mutation tools (create, update, delete) for documents or folders. If the server is intended to be read-only, it's fairly complete; otherwise, it has notable gaps.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers