quip-mcp

petertilsen/quip-mcp

3.3

If you are the rightful owner of quip-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Quip MCP Server is a Model Context Protocol server designed to facilitate interaction with Quip documents, enabling AI assistants to perform various document operations through a standardized interface.

Tools
5
Resources
0
Prompts
0

Quip MCP Server

An MCP (Model Context Protocol) server for interacting with Quip documents. This server enables AI assistants like Amazon Q to read, search, and modify Quip documents through a standardized interface.

Features

  • Document Operations

    • Read document content
    • Search across documents
    • Create new documents
    • Append content to documents
    • Prepend content to documents
    • Replace document content
  • Integration Features

    • MCP protocol support
    • Configurable logging
    • Environment-based configuration
    • Docker support

Installation

From Source

git clone <repository-url>
cd quip-mcp-server
pip install -e .

Development Installation

pip install -e ".[dev]"

Requirements

  • Python 3.8 or higher
  • Required packages (installed automatically):
    • strands-agents>=1.3.0
    • mcp>=1.12.3
    • python-dotenv>=1.0.0
    • requests>=2.25.0
    • uvicorn>=0.23.1
    • httpx>=0.24.0
    • starlette>=0.27.0

Configuration

  1. Copy the example environment file:
cp .env.example .env
  1. Configure your environment variables in .env:
# Quip API credentials
QUIP_ACCESS_TOKEN=your_quip_access_token_here
QUIP_BASE_URL=https://platform.quip-amazon.com

# MCP server configuration
MCP_SERVER_PORT=8080
MCP_SERVER_HOST=localhost

# Logging configuration
LOG_LEVEL=INFO  # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL

Usage

Starting the Server

  1. Using the console script:
quip-mcp-server
  1. Using Python module:
python -m quip_mcp_server
  1. Using Docker:
docker-compose up

Available Tools

The server provides the following MCP tools:

Tool NameDescriptionParametersExample Usage
read_documentRead a document's contentthread_id"Show me the content of the Quip document with thread ID 'ABC123'"
search_documentsSearch for documentsquery, count (optional)"Find all Quip documents containing 'project planning'" or "Show me the 5 most recent documents about AWS"
create_documentCreate a new documenttitle, content"Create a new Quip document titled 'Meeting Notes' with content 'Agenda items for today:'"
append_contentAdd content to endthread_id, content"Add 'Action items completed' to the end of document ABC123"
prepend_contentAdd content to beginningthread_id, content"Insert 'DRAFT:' at the start of document ABC123"
replace_contentReplace document contentthread_id, content"Replace the content of document ABC123 with 'Updated project timeline'"
get_folderGet details of a specific folderfolder_id"Show me the contents of the Quip folder with ID 'XYZ789'"
get_foldersGet a list of foldersids (optional)"List all my Quip folders" or "Show me details of folders ABC123, XYZ789"

Example conversations with Amazon Q:

User: "Can you read my latest meeting notes from Quip?"
Q: Let me search for and read your meeting notes document.
[Uses search_documents followed by read_document]

User: "Create a new Quip document for today's sprint planning"
Q: I'll create a new document with a standard sprint planning template.
[Uses create_document with appropriate title and content]

User: "Add today's action items to my project notes"
Q: I'll append the action items to your project document.
[Uses append_content to add new items]

Using with Amazon Q

  1. Add the MCP server to Q CLI:
q mcp add quip http://localhost:8080
  1. Use in conversations with Q:
@q Use quip___read_document to read the document with ID "ABC123"
@q Search Quip documents for "meeting notes" using quip___search_documents

Development

Project Structure

quip_mcp_server/
ā”œā”€ā”€ __init__.py          # Package initialization
ā”œā”€ā”€ __main__.py          # Entry point
ā”œā”€ā”€ logging_config.py    # Centralized logging configuration
ā”œā”€ā”€ quip.py              # Core Quip API client
ā”œā”€ā”€ quip_edit.py         # Document editing functionality
└── strands_agent.py     # MCP agent implementation

tests/
ā”œā”€ā”€ __init__.py          # Test package initialization
ā”œā”€ā”€ conftest.py          # Test fixtures and configuration
ā”œā”€ā”€ test_logging_config.py  # Tests for logging configuration
ā”œā”€ā”€ test_main.py         # Tests for main module
ā”œā”€ā”€ test_quip.py         # Tests for Quip client
ā”œā”€ā”€ test_quip_edit.py    # Tests for document editing
└── test_strands_agent.py  # Tests for MCP agent

Running Tests

# Install development dependencies
pip install -e ".[dev]"

# Run tests with coverage
pytest

# Generate coverage reports
pytest --cov=quip_mcp_server --cov-report=html

The current test suite provides approximately 50% code coverage, focusing on the core functionality. The main module tests are currently skipped as they require more complex mocking.

Docker Build

docker build -t quip-mcp-server .

License

Apache 2.0