petertilsen/quip-mcp
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.
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
- Copy the example environment file:
cp .env.example .env
- 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
- Using the console script:
quip-mcp-server
- Using Python module:
python -m quip_mcp_server
- Using Docker:
docker-compose up
Available Tools
The server provides the following MCP tools:
Tool Name | Description | Parameters | Example Usage |
---|---|---|---|
read_document | Read a document's content | thread_id | "Show me the content of the Quip document with thread ID 'ABC123'" |
search_documents | Search for documents | query , count (optional) | "Find all Quip documents containing 'project planning'" or "Show me the 5 most recent documents about AWS" |
create_document | Create a new document | title , content | "Create a new Quip document titled 'Meeting Notes' with content 'Agenda items for today:'" |
append_content | Add content to end | thread_id , content | "Add 'Action items completed' to the end of document ABC123" |
prepend_content | Add content to beginning | thread_id , content | "Insert 'DRAFT:' at the start of document ABC123" |
replace_content | Replace document content | thread_id , content | "Replace the content of document ABC123 with 'Updated project timeline'" |
get_folder | Get details of a specific folder | folder_id | "Show me the contents of the Quip folder with ID 'XYZ789'" |
get_folders | Get a list of folders | ids (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
- Add the MCP server to Q CLI:
q mcp add quip http://localhost:8080
- 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