Quire MCP服务器
     ](https://www.npmjs.com/package/quire-mcp) ](https://www.npmjs.com/package/quire-mcp)  ](https://nodejs.org/)
A. 模型上下文协议(MCP) 服务器 一刀 项目管理平台。
该服务器允许AI助手(如Claude)安全地与您的Quire项目、任务和数据进行交互。
快速开始
先决条件
- Node.js v22或更高版本
- Quire帐户
- Quire OAuth应用程序(请参阅 创建Quire OAuth应用程序)
步骤1:创建Quire OAuth应用程序
- 首选 Quire应用程序管理
- 点击 创建新应用
- 集 重定向网址 致:
http://localhost:3000/callback - 选择所需的权限范围
- 复制 开发客户端ID 和 开发客户端密码
步骤2:配置MCP客户端
选择与您的MCP客户端匹配的设置:
克劳德桌面(推荐)
添加到您的 claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %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"
}
}
}
}克劳德代码(CLI)
添加到您的Claude Code MCP设置中(~/.claude/mcp.json 或项目级别):
{
"mcpServers": {
"quire": {
"command": "npx",
"args": ["-y", "quire-mcp"],
"env": {
"QUIRE_OAUTH_CLIENT_ID": "your-client-id",
"QUIRE_OAUTH_CLIENT_SECRET": "your-client-secret"
}
}
}
}光标
在游标设置中,添加MCP服务器:
{
"mcpServers": {
"quire": {
"command": "npx",
"args": ["-y", "quire-mcp"],
"env": {
"QUIRE_OAUTH_CLIENT_ID": "your-client-id",
"QUIRE_OAUTH_CLIENT_SECRET": "your-client-secret"
}
}
}
}步骤3:首次授权
首次使用时,服务器将:
- 将授权URL打印到控制台
- 等待您在浏览器中打开该URL
- 授予访问权限后,Quire重定向到localhost
- 服务器捕获令牌并缓存它们
后续使用将根据需要自动刷新令牌。
运输方式
服务器支持两种传输模式: 标准 (默认)和 超文本传输协议.
STDIO模式(默认)
STDIO模式是最简单的设置。MCP客户端直接生成服务器进程,并通过stdin/stdout上的JSON-RPC进行通信。
它是如何工作的:
- MCP客户端生成
npx quire-mcp有环境变量 - 在第一次工具调用时,如果不存在缓存的令牌,服务器会向stderr打印一个OAuth URL
- 用户在浏览器中打开URL并授权
- Quire重定向到
localhost:3000/callback其中服务器捕获令牌 - 令牌缓存到磁盘以备将来使用
令牌缓存位置:
- 窗户:
%APPDATA%\quire-mcp\tokens.json - macOS:
~/Library/Application Support/quire-mcp/tokens.json - Linux:
~/.config/quire-mcp/tokens.json
HTTP模式
HTTP模式运行具有OAuth 2.0端点的HTTP服务器。需要时使用此功能:
- 长时间运行的服务器进程
- 多个客户端连接到同一服务器
- 部署到远程主机(例如Cloudflare Workers、云VM)
重要提示: 在HTTP模式下,服务器必须正在运行 _之前_ 客户端可以连接。环境变量设置在 服务器进程,不在客户端配置中。
在本地运行HTTP模式
第一步: 启动服务器:
# 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服务器将输出:
[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第二步: 配置您的MCP客户端以连接:
{
"mcpServers": {
"quire": {
"type": "http",
"url": "http://localhost:3001/mcp"
}
}
}注: 不 env HTTP模式的客户端配置中需要一个部分——OAuth凭据在服务器上。
步骤3: 当MCP客户端连接时,它将:
- 通过以下方式发现OAuth端点
/.well-known/oauth-authorization-server - 将您重定向到Quire授权
- 交换令牌并建立会话
HTTP模式环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
MCP_TRANSPORT | 是的 | stdio | 设置为 http 启用HTTP模式 |
QUIRE_OAUTH_CLIENT_ID | 是 | - | 查询OAuth客户端ID |
QUIRE_OAUTH_CLIENT_SECRET | 是 | - | 查询OAuth客户端密码 |
MCP_SERVER_HOST | 没有 | 127.0.0.1 | 主机绑定HTTP服务器 |
MCP_SERVER_PORT | 没有 | 3001 | HTTP服务器的端口 |
MCP_ISSUER_URL | 没有 | http://localhost:3001 | OAuth端点的基本URL |
QUIRE_OAUTH_REDIRECT_URI | 没有 | http://localhost:3001/oauth/callback | 查询OAuth回调URL |
HTTP模式的Quire应用程序配置: 使用HTTP模式时,将Quire应用程序的重定向URL更新为: http://localhost:3001/oauth/callback
手动令牌模式
如果您有预先获得的访问令牌(例如,来自Postman),则可以完全跳过OAuth:
{
"mcpServers": {
"quire": {
"command": "npx",
"args": ["-y", "quire-mcp"],
"env": {
"QUIRE_ACCESS_TOKEN": "your-access-token"
}
}
}
}注: 手动获得的令牌最终将过期,如果没有OAuth凭据,将不会自动刷新。
配置参考
所有环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
QUIRE_OAUTH_CLIENT_ID | 是\* | - | 查询OAuth客户端ID |
QUIRE_OAUTH_CLIENT_SECRET | 是\* | - | 查询OAuth客户端密码 |
QUIRE_ACCESS_TOKEN | 否 | - | 手动令牌覆盖(跳过OAuth流) |
QUIRE_OAUTH_REDIRECT_URI | 没有 | http://localhost:3000/callback | OAuth回调URL(stdio模式) |
QUIRE_TOKEN_STORE_PATH | 否 | 平台默认值 | 令牌缓存文件的路径 |
MCP_TRANSPORT | 没有 | stdio | 运输方式: stdio 或 http |
MCP_SERVER_HOST | 没有 | 127.0.0.1 | HTTP服务器绑定地址 |
MCP_SERVER_PORT | 没有 | 3001 | HTTP服务器端口 |
MCP_ISSUER_URL | 没有 | http://localhost:3001 | OAuth颁发者URL(HTTP模式) |
\*除非满足以下条件,否则必须 QUIRE_ACCESS_TOKEN 已设置。
特性
工具
服务器提供 60+工具 按类别组织:
认证
| 工具 | 说明 |
|---|---|
quire.whoami | 获取当前已验证用户的个人资料 |
组织
| 工具 | 说明 |
|---|---|
quire.listOrganizations | 列出所有可访问的组织 |
quire.getOrganization | 按ID或OID获取组织详细信息 |
quire.updateOrganization | 更新组织关注者 |
项目
| 工具 | 说明 |
|---|---|
quire.listProjects | 列出所有项目,可选择按组织筛选 |
quire.getProject | 获取项目详细信息,包括任务计数 |
quire.updateProject | 更新项目名称、描述、图标和关注者 |
quire.exportProject | 以JSON或CSV格式导出项目任务 |
任务
| 工具 | 说明 |
|---|---|
quire.listTasks | 列出项目中的任务(根级别或子任务) |
quire.getTask | 按项目+ID或OID获取任务详细信息 |
quire.createTask | 创建一个具有可选优先级、日期、受让人、标签的新任务 |
quire.updateTask | 更新任务属性 |
quire.deleteTask | 删除任务及其子任务 |
quire.searchTasks | 按关键字和筛选器搜索项目中的任务 |
quire.createTaskAfter | 在指定任务之后创建任务 |
quire.createTaskBefore | 在指定任务之前创建任务 |
quire.searchFolderTasks | 在文件夹中搜索任务 |
quire.searchOrganizationTasks | 在整个组织内搜索任务 |
标签
| 工具 | 说明 |
|---|---|
quire.listTags | 列出项目中的所有标记 |
quire.getTag | 按OID获取标签详细信息 |
quire.createTag | 创建一个带有名称和颜色的新标签 |
quire.updateTag | 更新标签名称或颜色 |
quire.deleteTag | 删除标签 |
评论
| 工具 | 说明 |
|---|---|
quire.listTaskComments | 列出任务的所有评论 |
quire.addTaskComment | 向任务添加注释 |
quire.updateComment | 更新评论文本 |
quire.deleteComment | 删除评论 |
quire.listChatComments | 列出聊天频道中的所有评论 |
quire.addChatComment | 在聊天频道添加评论 |
用户
| 工具 | 说明 |
|---|---|
quire.getUser | 通过ID、OID或电子邮件获取用户详细信息 |
quire.listUsers | 列出所有可访问的用户 |
quire.listProjectMembers | 列出项目的所有成员 |
自定义状态
| 工具 | 说明 |
|---|---|
quire.listStatuses | 列出项目中的自定义状态 |
quire.getStatus | 按值获取状态详细信息 |
quire.createStatus | 创建自定义工作流状态 |
quire.updateStatus | 更新状态名称或颜色 |
quire.deleteStatus | 删除自定义状态 |
外部团队(合作伙伴)
| 工具 | 说明 |
|---|---|
quire.getPartner | 获取外部团队详细信息 |
quire.listPartners | 列出项目中的所有外部团队 |
文件
| 工具 | 说明 |
|---|---|
quire.createDocument | 在组织或项目中创建文档 |
quire.getDocument | 获取文档内容和元数据 |
quire.listDocuments | 列出所有文件 |
quire.updateDocument | 更新文档名称或内容 |
quire.deleteDocument | 删除文档 |
转租人
| 工具 | 说明 |
|---|---|
quire.createSublist | 创建子列表 |
quire.getSublist | 获取子列表详细信息 |
quire.listSublists | 列出所有子列表 |
quire.updateSublist | 更新子列表名称或描述 |
quire.deleteSublist | 删除子列表 |
聊天频道
| 工具 | 说明 |
|---|---|
quire.createChat | 创建聊天频道 |
quire.getChat | 获取聊天频道详细信息 |
quire.listChats | 列出所有聊天频道 |
quire.updateChat | 更新聊天名称、描述或成员 |
quire.deleteChat | 删除聊天频道 |
键值存储
| 工具 | 说明 |
|---|---|
quire.getStorageValue | 按键获取存储值 |
quire.listStorageEntries | 按前缀列出存储条目 |
quire.putStorageValue | 存储值 |
quire.deleteStorageValue | 删除存储值 |
通知
| 工具 | 说明 |
|---|---|
quire.sendNotification | 向用户发送通知 |
附件
| 工具 | 说明 |
|---|---|
quire.uploadTaskAttachment | 将文件附件上载到任务 |
quire.uploadCommentAttachment | 将文件附件上传到评论中 |
资源
服务器将数据作为MCP资源公开:
静态资源
| 资源URI | 描述 |
|---|---|
quire://user/me | 当前已验证用户的个人资料 |
quire://organizations | 所有可访问的组织列表 |
quire://projects | 所有可访问项目的列表 |
资源模板
| 资源URI | 描述 |
|---|---|
quire://project/{id} | 具体项目细节和元数据 |
quire://project/{projectId}/tasks | 项目中的根任务 |
quire://project/{projectId}/tags | 项目中定义的标签 |
quire://project/{projectId}/statuses | 项目中的自定义状态 |
提示
服务器为常见工作流提供指导性提示:
| 提示 | 描述 |
|---|---|
quire.create-project-plan | 根据目标描述生成任务计划 |
quire.daily-standup | 生成每日站立摘要 |
quire.sprint-planning | 从待办事项列表中计划冲刺 |
quire.task-breakdown | 将复杂任务分解为子任务 |
quire.weekly-summary | 生成每周进度报告 |
发展
设置
# 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本地运行
# 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调试
您可以使用 MCP检查员 要调试服务器,请执行以下操作:
# Run from source
pnpm inspect
# Run from built output
pnpm inspect:distpnpm inspect 负载 .env 自动通过 dotenv (参见 .env.example).
如果你看到 Ignored build scripts: esbuild...,跑 pnpm approve-builds 并允许 esbuild. 在CI中,我们安装依赖项时禁用了生命周期脚本(pnpm install --ignore-scripts)然后明确地仅重建 esbuild 用于生产建设工作。
贡献
欢迎投稿!请参阅 贡献.md 了解如何为这个项目做出贡献的指导方针。
安全
看 安全.md 用于安全策略和报告漏洞。
支持
这是一个“按原样”提供的社区项目 没有保证的支持。参见 支持.md 了解详情。
许可证
麻省理工学院©雅各布·哈特曼
