Skip to main content
Glama

Quip MCP Server

A Model Context Protocol (MCP) server for Quip document operations that enables direct interaction with Quip documents from AI assistants like Claude.

Features

  • Read Documents: Fetch and display Quip document content by ID

  • Append Content: Add content to the end of existing documents

  • Prepend Content: Add content to the beginning of documents

  • Replace Content: Update document content

  • Create Documents: Intended support for creating new documents (currently redirects to web interface)

Related MCP server: Claude MCP x Google Docs

How It Works

This MCP server acts as a bridge between Claude and Quip documents. It works by:

  1. Receiving requests from Claude through the MCP protocol

  2. Executing a Python script (quip_edit_fixed.py) with the appropriate parameters

  3. Returning the results back to Claude

Prerequisites

  • Node.js v18 or higher

  • TypeScript

  • Python with quip library installed

  • A valid Quip access token

Installation

  1. Clone this repository:

    git clone https://github.com/AvinashBole/quip-mcp-server.git
    cd quip-mcp-server
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build
  4. Configure your MCP settings:

    {
      "mcpServers": {
        "quip": {
          "command": "node",
          "args": ["path/to/quip-server/build/index.js"],
          "env": {
            "QUIP_ACCESS_TOKEN": "your-quip-access-token",
            "QUIP_BASE_URL": "https://platform.quip.com"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }

Usage

Once connected, the following MCP tools become available to Claude:

  • quip_read_document: Read a Quip document by its thread ID

  • quip_append_content: Append content to a document

  • quip_prepend_content: Add content to the beginning of a document

  • quip_replace_content: Replace document content

  • quip_create_document: Create a new document (currently unsupported)

Example usage in Claude:

<use_mcp_tool>
<server_name>quip</server_name>
<tool_name>quip_read_document</tool_name>
<arguments>
{
  "threadId": "YOUR_DOCUMENT_ID"
}
</arguments>
</use_mcp_tool>

Python Script Integration

The server expects a Python script called quip_edit_fixed.py in the path specified by the PYTHON_SCRIPT_PATH constant. This script should support the following operations:

  • read: Read document content

  • append: Add content to the end of a document

  • prepend: Add content to the beginning of a document

  • replace: Update document content

License

ISC License

Author

AvinashBole

Available Tools

5 tools
quip_append_contentC

Append content to an existing Quip document

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYesThe Quip document thread ID
contentYesMarkdown content to append to the document

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Append content') but lacks details on permissions required, whether the operation is idempotent, how content is formatted (beyond markdown in schema), error conditions, or what happens if the threadId is invalid. This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like side effects, error handling, or return values, which are critical for an agent to use this tool effectively. The high schema coverage doesn't compensate for these gaps in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (threadId and content) adequately. The description adds no additional meaning beyond implying that content is appended to a document, which is redundant with the tool name. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Append content') and target resource ('to an existing Quip document'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'quip_prepend_content' or 'quip_replace_content' beyond the verb 'append', which slightly limits its distinctiveness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing document), exclusions, or comparisons to siblings like 'quip_prepend_content' or 'quip_replace_content', leaving the agent to infer usage context solely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quip_create_documentC

Create a new Quip document

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the new document
contentYesInitial markdown content for the document

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't disclose important traits like permission requirements, whether the operation is idempotent, rate limits, or what happens on failure. It provides minimal behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states exactly what the tool does with zero wasted words. It's appropriately sized for a simple creation tool and is front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (e.g., document ID, success status), error conditions, or behavioral nuances. Given the complexity of document creation and lack of structured metadata, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (title and content) clearly documented in the schema. The description doesn't add any parameter semantics beyond what the schema already provides, so it meets the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('new Quip document'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like quip_append_content or quip_prepend_content, which also modify documents but in different ways.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of when this tool is appropriate (e.g., for creating entirely new documents) versus when to use sibling tools like quip_append_content (for adding to existing documents) or quip_read_document (for viewing).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quip_prepend_contentA

Add content to the beginning of an existing Quip document

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYesThe Quip document thread ID
contentYesMarkdown content to prepend to the document

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Add[s] content' (implying a write/mutation operation) but does not disclose permissions required, rate limits, whether changes are reversible, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action and resource without any wasted words. It is appropriately sized for the tool's complexity and gets straight to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (a mutation operation with 2 parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavioral aspects like permissions or response format, which are important for a write tool. It meets the minimum viable standard but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with clear descriptions for both parameters (threadId and content). The description does not add any additional meaning or context beyond what the schema provides, such as format details or examples. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Add content to the beginning') and target resource ('an existing Quip document'), using precise language that distinguishes it from sibling tools like quip_append_content (which adds to the end) and quip_replace_content (which replaces content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying 'an existing Quip document,' which suggests this tool is not for creating new documents (use quip_create_document) or reading documents (use quip_read_document). However, it does not explicitly state when not to use it or name alternatives, leaving some ambiguity compared to explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quip_read_documentC

Read the content of a Quip document by its thread ID

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYesThe Quip document thread ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool reads content, implying it's a read-only operation, but doesn't clarify aspects like authentication requirements, rate limits, error handling, or what the output looks like (e.g., format of the returned content). For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main action and resource, making it easy to parse. There's no wasted information, earning it a top score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't address behavioral traits (e.g., read-only nature, potential errors), output details, or usage context relative to siblings. For a tool with no structured support, the description should do more to fill these gaps, making it inadequate overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal semantic value beyond the input schema, which has 100% coverage. It mentions the thread ID parameter but doesn't explain what a thread ID is, how to obtain it, or its format. Since the schema already documents the parameter adequately, the baseline score of 3 is appropriate, as the description doesn't compensate with additional insights.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Read') and resource ('content of a Quip document'), making the purpose immediately understandable. It specifies the required parameter ('by its thread ID'), which adds precision. However, it doesn't explicitly differentiate from sibling tools like quip_append_content or quip_replace_content, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios where reading is appropriate (e.g., retrieving content without modification) or contrast it with siblings that modify content (e.g., quip_append_content for adding text). This lack of contextual direction leaves the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quip_replace_contentC

Replace content in an existing Quip document

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYesThe Quip document thread ID
contentYesNew markdown content to replace the document content

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool replaces content, implying a mutation operation, but lacks details on permissions required, whether changes are reversible, rate limits, or error handling. For a write tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and risks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly. Every part of the sentence earns its place by conveying essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like side effects, return values, or error conditions. While the schema covers parameters well, the overall context for safe and effective use is lacking, especially for a tool that modifies existing resources.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with both parameters ('threadId' and 'content') clearly documented in the input schema. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Replace content') and target resource ('in an existing Quip document'), making the purpose immediately understandable. It distinguishes itself from siblings like 'quip_append_content' and 'quip_prepend_content' by specifying replacement rather than addition. However, it doesn't explicitly contrast with 'quip_read_document' or 'quip_create_document', keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing document), exclusions (e.g., not for new documents), or comparisons to siblings like 'quip_append_content' for adding content without replacement. Without such context, users must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific document operations: create, read, append, prepend, and replace content. There is no overlap in functionality, making it easy for an agent to select the correct tool for any document editing task.

Naming Consistency5/5

All tools follow a consistent 'quip_verb_noun' pattern with snake_case, using descriptive verbs like create, read, append, prepend, and replace. This uniformity enhances predictability and readability across the toolset.

Tool Count5/5

With 5 tools, the server is well-scoped for document management in Quip, covering essential CRUD-like operations (create, read) and specific content modifications (append, prepend, replace). Each tool earns its place without bloat or gaps.

Completeness4/5

The toolset provides strong coverage for core document operations, including creation, reading, and various content edits. A minor gap exists in lacking a delete or archive tool for document lifecycle management, but agents can still handle most workflows effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AvinashBole/quip-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server