Skip to main content
Glama
README.md
# Coda MCP Read-Only Server

This project implements a Model Context Protocol (MCP) server that acts as a bridge to interact with the [Coda](https://coda.io/) API. It allows an MCP client (like an AI assistant) to perform actions on Coda pages, such as listing and reading.

## Acknowledgments

This project is a fork of the original [Coda MCP server](https://github.com/orellazri/coda-mcp).

**Credits to [Orel Lazri](https://github.com/orellazri)** for the original implementation and the foundation of this tool.

## Features

The server exposes the following tools to the MCP client:

- **`coda_list_documents`**: Lists all documents available to the user.
- **`coda_list_pages`**: Lists all pages within the configured Coda document with pagination support.
- **`coda_get_page_content`**: Retrieves the content of a specified page (by ID or name) as markdown.
- **`coda_peek_page`**: Peek into the beginning of a page and return a limited number of lines.
- **`coda_resolve_link`**: Resolve metadata given a browser link to a Coda object.
- **`coda_list_tables`**: List tables in a document.
- **`coda_list_columns`**: List columns in a table.
- **`coda_list_rows`**: List rows in a table with optional filtering and sorting.
- **`coda_get_row`**: Get a single row from a table.

## Usage

Add the MCP server to Cursor/Claude Desktop/etc. like so:

```json
{
  "mcpServers": {
    "coda-readonly": {
      "command": "npx",
      "args": ["-y", "coda-mcp-readonly@latest"],
      "env": {
        "API_KEY": "..."
      }
    }
  }
}
```

Required environment variables:

- `API_KEY`: Your Coda API key. You can generate one from your Coda account settings.

## Local Setup

1.  **Prerequisites:**

    - Node.js
    - pnpm

2.  **Clone the repository:**

    ```bash
    git clone <repository-url>
    cd coda-mcp
    ```

3.  **Install dependencies:**

    ```bash
    pnpm install
    ```

4.  **Build the project:**
    ```bash
    pnpm build
    ```
    This compiles the TypeScript code to JavaScript in the `dist/` directory.

## Running the Server

The MCP server communicates over standard input/output (stdio). To run it, set the environment variables and run the compiled JavaScript file - `dist/index.js`.

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

The tools are mostly distinct, but coda_get_page_content and coda_peek_page serve similar purposes—both retrieve page content with slight differences in format and length. This overlap could cause confusion, but all other tools clearly target different resources or actions.

Naming Consistency5/5

All tool names follow a consistent coda_ prefix followed by a verb_noun pattern (e.g., list_documents, get_page_content, resolve_link). The naming is uniform, using snake_case throughout, making it easy to predict tool functions.

Tool Count5/5

With 9 tools, the server is well-scoped for a read-only Coda API. Each tool serves a clear purpose in reading documents, pages, tables, and rows, without unnecessary bloat or missing essential operations.

Completeness4/5

For a read-only server, the tool surface covers the core lifecycle of reading Coda objects: documents, pages, tables, columns, and rows. Minor gaps exist, such as no separate tool to fetch a single column or table metadata, but these can be worked around with existing list endpoints.

Maintenance

ActivityInactive
ResponsivenessNo issues