Sponsored by Deepsite.site

Quire

Created By
jacob-hartmann5 hours ago
This server allows AI assistants (like Claude) to interact with your Quire projects, tasks, and data securely.
Overview

Quire MCP Server

CI Coverage Status CodeQL OpenSSF Scorecard OpenSSF Best Practices npm version npm downloads License Node

A Model Context Protocol (MCP) server for the Quire project management platform.

This server allows AI assistants (like Claude) to interact with your Quire projects, tasks, and data securely.

Quick Start

Prerequisites

Step 1: Create a Quire OAuth App

  1. Go to Quire App Management
  2. Click Create new app
  3. Set Redirect URL to: http://localhost:3000/callback
  4. Choose the permission scopes you need
  5. Copy the Development Client ID and Development Client Secret

Step 2: Configure Your MCP Client

Choose the setup that matches your MCP client:

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "quire": {
      "command": "npx",
      "args": ["-y", "quire-mcp"],
      "env": {
        "QUIRE_OAUTH_CLIENT_ID": "your-client-id",
        "QUIRE_OAUTH_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Claude Code (CLI)

Add to your Claude Code MCP settings (~/.claude/mcp.json or project-level):

{
  "mcpServers": {
    "quire": {
      "command": "npx",
      "args": ["-y", "quire-mcp"],
      "env": {
        "QUIRE_OAUTH_CLIENT_ID": "your-client-id",
        "QUIRE_OAUTH_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Cursor

In Cursor settings, add an MCP server:

{
  "mcpServers": {
    "quire": {
      "command": "npx",
      "args": ["-y", "quire-mcp"],
      "env": {
        "QUIRE_OAUTH_CLIENT_ID": "your-client-id",
        "QUIRE_OAUTH_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Step 3: First-Time Authorization

On first use, the server will:

  1. Print an authorization URL to the console
  2. Wait for you to open that URL in your browser
  3. After you grant access, Quire redirects to localhost
  4. The server captures the tokens and caches them

Subsequent uses will automatically refresh tokens as needed.

Transport Modes

The server supports two transport modes: stdio (default) and http.

STDIO Mode (Default)

STDIO mode is the simplest setup. The MCP client spawns the server process directly and communicates via JSON-RPC over stdin/stdout.

How it works:

  1. MCP client spawns npx quire-mcp with environment variables
  2. On first tool call, if no cached token exists, the server prints an OAuth URL to stderr
  3. User opens URL in browser and authorizes
  4. Quire redirects to localhost:3000/callback where the server captures the token
  5. Token is cached to disk for future use

Token cache locations:

  • Windows: %APPDATA%\quire-mcp\tokens.json
  • macOS: ~/Library/Application Support/quire-mcp/tokens.json
  • Linux: ~/.config/quire-mcp/tokens.json

HTTP Mode

HTTP mode runs an HTTP server with OAuth 2.0 endpoints. Use this when you need:

  • A long-running server process
  • Multiple clients connecting to the same server
  • Deployment to a remote host (e.g., Cloudflare Workers, cloud VMs)

Important: In HTTP mode, the server must be running before clients can connect. Environment variables are set on the server process, not in client configs.

Running HTTP Mode Locally

Step 1: Start the server:

# Using npx
QUIRE_OAUTH_CLIENT_ID=your-client-id \
QUIRE_OAUTH_CLIENT_SECRET=your-client-secret \
MCP_TRANSPORT=http \
npx quire-mcp

# Or using pnpm (for development)
pnpm dev:http

The server will output:

[quire-mcp] HTTP server listening on 127.0.0.1:3001
[quire-mcp] OAuth metadata: http://localhost:3001/.well-known/oauth-authorization-server
[quire-mcp] MCP endpoint: http://localhost:3001/mcp

Step 2: Configure your MCP client to connect:

{
  "mcpServers": {
    "quire": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

Note: No env section is needed in the client config for HTTP mode—the OAuth credentials are on the server.

Step 3: When the MCP client connects, it will:

  1. Discover OAuth endpoints via /.well-known/oauth-authorization-server
  2. Redirect you to authorize with Quire
  3. Exchange tokens and establish a session

HTTP Mode Environment Variables

VariableRequiredDefaultDescription
MCP_TRANSPORTYesstdioSet to http to enable HTTP mode
QUIRE_OAUTH_CLIENT_IDYes-Quire OAuth Client ID
QUIRE_OAUTH_CLIENT_SECRETYes-Quire OAuth Client Secret
MCP_SERVER_HOSTNo127.0.0.1Host to bind the HTTP server
MCP_SERVER_PORTNo3001Port for the HTTP server
MCP_ISSUER_URLNohttp://localhost:3001Base URL for OAuth endpoints
QUIRE_OAUTH_REDIRECT_URINohttp://localhost:3001/oauth/callbackQuire OAuth callback URL

Quire App Configuration for HTTP Mode: When using HTTP mode, update your Quire app's redirect URL to: http://localhost:3001/oauth/callback

Manual Token Mode

If you have a pre-obtained access token (e.g., from Postman), you can skip OAuth entirely:

{
  "mcpServers": {
    "quire": {
      "command": "npx",
      "args": ["-y", "quire-mcp"],
      "env": {
        "QUIRE_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}

Note: Manually-obtained tokens will eventually expire and won't auto-refresh without OAuth credentials.

Configuration Reference

All Environment Variables

VariableRequiredDefaultDescription
QUIRE_OAUTH_CLIENT_IDYes*-Quire OAuth Client ID
QUIRE_OAUTH_CLIENT_SECRETYes*-Quire OAuth Client Secret
QUIRE_ACCESS_TOKENNo-Manual token override (skips OAuth flow)
QUIRE_OAUTH_REDIRECT_URINohttp://localhost:3000/callbackOAuth callback URL (stdio mode)
QUIRE_TOKEN_STORE_PATHNoPlatform defaultPath to token cache file
MCP_TRANSPORTNostdioTransport mode: stdio or http
MCP_SERVER_HOSTNo127.0.0.1HTTP server bind address
MCP_SERVER_PORTNo3001HTTP server port
MCP_ISSUER_URLNohttp://localhost:3001OAuth issuer URL (HTTP mode)

*Required unless QUIRE_ACCESS_TOKEN is set.

Features

Tools

The server provides 60+ tools organized by category:

Authentication

ToolDescription
quire.whoamiGet the current authenticated user's profile

Organizations

ToolDescription
quire.listOrganizationsList all accessible organizations
quire.getOrganizationGet organization details by ID or OID
quire.updateOrganizationUpdate organization followers

Projects

ToolDescription
quire.listProjectsList all projects, optionally filtered by organization
quire.getProjectGet project details including task counts
quire.updateProjectUpdate project name, description, icon, and followers
quire.exportProjectExport project tasks in JSON or CSV format

Tasks

ToolDescription
quire.listTasksList tasks in a project (root-level or subtasks)
quire.getTaskGet task details by project+ID or OID
quire.createTaskCreate a new task with optional priority, dates, assignees, tags
quire.updateTaskUpdate task properties
quire.deleteTaskDelete a task and its subtasks
quire.searchTasksSearch tasks in a project by keyword and filters
quire.createTaskAfterCreate a task after a specified task
quire.createTaskBeforeCreate a task before a specified task
quire.searchFolderTasksSearch tasks within a folder
quire.searchOrganizationTasksSearch tasks across an entire organization

Tags

ToolDescription
quire.listTagsList all tags in a project
quire.getTagGet tag details by OID
quire.createTagCreate a new tag with name and color
quire.updateTagUpdate tag name or color
quire.deleteTagDelete a tag

Comments

ToolDescription
quire.listTaskCommentsList all comments on a task
quire.addTaskCommentAdd a comment to a task
quire.updateCommentUpdate comment text
quire.deleteCommentDelete a comment
quire.listChatCommentsList all comments in a chat channel
quire.addChatCommentAdd a comment to a chat channel

Users

ToolDescription
quire.getUserGet user details by ID, OID, or email
quire.listUsersList all accessible users
quire.listProjectMembersList all members of a project

Custom Statuses

ToolDescription
quire.listStatusesList custom statuses in a project
quire.getStatusGet status details by value
quire.createStatusCreate a custom workflow status
quire.updateStatusUpdate status name or color
quire.deleteStatusDelete a custom status

External Teams (Partners)

ToolDescription
quire.getPartnerGet external team details
quire.listPartnersList all external teams in a project

Documents

ToolDescription
quire.createDocumentCreate a document in an organization or project
quire.getDocumentGet document content and metadata
quire.listDocumentsList all documents
quire.updateDocumentUpdate document name or content
quire.deleteDocumentDelete a document

Sublists

ToolDescription
quire.createSublistCreate a sublist
quire.getSublistGet sublist details
quire.listSublistsList all sublists
quire.updateSublistUpdate sublist name or description
quire.deleteSublistDelete a sublist

Chat Channels

ToolDescription
quire.createChatCreate a chat channel
quire.getChatGet chat channel details
quire.listChatsList all chat channels
quire.updateChatUpdate chat name, description, or members
quire.deleteChatDelete a chat channel

Key-Value Storage

ToolDescription
quire.getStorageValueGet a stored value by key
quire.listStorageEntriesList storage entries by prefix
quire.putStorageValueStore a value
quire.deleteStorageValueDelete a stored value

Notifications

ToolDescription
quire.sendNotificationSend notification to users

Attachments

ToolDescription
quire.uploadTaskAttachmentUpload a file attachment to a task
quire.uploadCommentAttachmentUpload a file attachment to a comment

Resources

The server exposes data as MCP resources:

Static Resources

Resource URIDescription
quire://user/meCurrent authenticated user's profile
quire://organizationsList of all accessible organizations
quire://projectsList of all accessible projects

Resource Templates

Resource URIDescription
quire://project/{id}Specific project details and metadata
quire://project/{projectId}/tasksRoot tasks in a project
quire://project/{projectId}/tagsTags defined in a project
quire://project/{projectId}/statusesCustom statuses in a project

Prompts

The server provides guided prompts for common workflows:

PromptDescription
quire.create-project-planGenerate a task plan from a goal description
quire.daily-standupGenerate a daily standup summary
quire.sprint-planningPlan a sprint from the backlog
quire.task-breakdownBreak down a complex task into subtasks
quire.weekly-summaryGenerate a weekly progress report

Development

Setup

# Clone the repo
git clone https://github.com/jacob-hartmann/quire-mcp.git
cd quire-mcp

# Use the Node.js version from .nvmrc
# (macOS/Linux nvm): nvm install && nvm use
# (Windows nvm-windows): nvm install 22 && nvm use 22
nvm install
nvm use

# Install dependencies
pnpm install

# Copy .env.example and configure
cp .env.example .env
# Edit .env with your OAuth credentials

Running Locally

# Development mode (stdio, auto-reload)
pnpm dev

# Development mode (http, auto-reload)
pnpm dev:http

# Production build
pnpm build

# Production run
pnpm start        # stdio mode
pnpm start:http   # http mode

Debugging

You can use the MCP Inspector to debug the server:

# Run from source
pnpm inspect

# Run from built output
pnpm inspect:dist

pnpm inspect loads .env automatically via dotenv (see .env.example).

If you see Ignored build scripts: esbuild..., run pnpm approve-builds and allow esbuild. In CI we install dependencies with lifecycle scripts disabled (pnpm install --ignore-scripts) and then explicitly rebuild only esbuild for the production build job.

Security

See SECURITY.md for security policy and reporting vulnerabilities.

Support

This is a community project provided "as is" with no guaranteed support. See SUPPORT.md for details.

License

MIT © Jacob Hartmann

Server Config

{
  "mcpServers": {
    "quire": {
      "command": "npx",
      "args": [
        "-y",
        "quire-mcp"
      ],
      "env": {
        "QUIRE_OAUTH_CLIENT_ID": "your-client-id",
        "QUIRE_OAUTH_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
WindsurfThe new purpose-built IDE to harness magic
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Serper MCP ServerA Serper MCP Server
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
CursorThe AI Code Editor
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Tavily Mcp
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Amap Maps高德地图官方 MCP Server
ChatWiseThe second fastest AI chatbot™
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Playwright McpPlaywright MCP server
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
DeepChatYour AI Partner on Desktop