Token导航 LogoToken导航TokenDH.com
Productive GET MCP logo
AI代理stdio官方级别未说明来源级核验

Productive GET MCP

MCP Server

一个用于将Productive.io集成到AI工作流中的Model Context Protocol (MCP)服务器,提供项目和任务管理功能。

工具数

33

提示词数

0

GitHub Stars

0

资源数

0
工作流自动化数据访问Python项目管理任务管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

druellan

提供方

druellan

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Productive.io MCP服务器

![License: MIT](https://opensource.org/licenses/MIT) ![](https://badge.mcpx.dev?type=server&features=tools "MCP server with features") ![Productive-GET-MCP MCP server](https://glama.ai/mcp/servers/druellan/Productive-GET-MCP)

用于将Productive.io集成到AI工作流中的模型上下文协议(MCP)服务器。该服务器允许AI助手和工具访问项目、文件夹、工作流状态、时间条目、任务、评论、页面、附件、待办事项和人员。内置于 FastMCP.

此实现针对以读取为中心的操作进行了优化,具有可选的保护写入功能(例如任务创建)和LLM友好的输出选项(JSON和TOON)。它针对效率和简单性进行了优化,只显示必要的信息。要获得更全面的解决方案,请考虑BerwickGeek的实施: BerwickGeek的高效MCP.

特性

阅读工具

  • 列出项目:检索所有包含基本信息的项目
  • 列出文件夹:检索项目中的文件夹
  • 获取文件夹:按ID检索特定文件夹
  • 列出工作流状态:使用可选筛选器检索工作流状态
  • 列出时间条目:使用可选的日期和关系筛选器检索时间条目
  • 列出任务:使用筛选和分页检索任务
  • 获取任务:通过内部ID检索特定任务
  • 获取任务历史记录:检索任务状态更改、分配、里程碑和活动摘要
  • 列出评论:通过筛选检索评论
  • 列表页面:使用筛选检索页面/文档
  • 获取页面:按ID检索特定页面/文档
  • 列出附件:使用筛选检索附件/文件
  • 全部列表:通过筛选检索待办事项清单项
  • 获取Todo:按ID检索特定待办事项
  • 列出人员:使用分页检索人员/团队成员
  • 获取人员:按ID检索特定人员
  • 列出最近的活动:状态更新的活动提要摘要
  • 快速搜索:跨项目、任务、页面和操作进行快速、全面的搜索

写入工具(READ_ONLY=true时被阻止)

  • 创建任务:在项目中创建新任务
  • 更新任务:更新任务字段--标题、描述、受让人、截止日期、状态、板、任务列表
  • 删除任务:按ID永久删除任务(不可逆)
  • 创建评论:为任务或项目创建新注释
  • 更新评论:更新评论正文
  • 删除评论:按ID永久删除评论(不可逆)
  • 创建时间条目:记录在任务或服务上花费的时间
  • 更新时间条目:修改现有时间条目
  • 删除时间条目:删除时间条目(不可逆)
  • 创建页面:在项目中创建新文档/页面
  • 更新页面:编辑页面内容和标题
  • 删除页面:删除页面/文档(不可逆)
  • 创建待办事项:将检查表项目添加到任务中
  • 更新待办事项:修改待办事项和完成状态
  • 删除待办事项:删除todo项目(不可逆)

附加功能

  • LLM优化响应:过滤后的输出消除了噪声,剥离了HTML,并减少了令牌消耗

需求

  • Python 3.10+
  • 生产性API代币
  • FastMCP 3.x

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
pip install -r requirements.txt

uv venv && uv sync

配置

服务器使用环境变量进行配置:

  • PRODUCTIVE_API_KEY:您的高效API令牌(必需)
  • PRODUCTIVE_ORGANIZATION:您的生产组织ID(必填)
  • PRODUCTIVE_BASE_URL:生产API的基本URL(默认值:https://api.productive.io/api/v2)
  • PRODUCTIVE_TIMEOUT:请求超时(秒)(默认值:30)
  • OUTPUT_FORMAT:工具响应的输出格式(toon或json,默认:toon)
  • READ_ONLY:用于写工具的全局写保护切换--create_task、update_task,delete_task和create_comment,update_comment、delete_comment和create_time_entry,delete_time_entrys,create_page,update_page,delete_page,create_todo,update_todo和delete_todo(“true”或“false”,默认值:“true”)

用法

使用 uvx 来自GitHub(推荐给MCP客户端)

    "productive": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/druellan/Productive-Simple-MCP",
        "productive-mcp"
      ],
      "env": {
        "PRODUCTIVE_API_KEY": "",
        "PRODUCTIVE_ORGANIZATION": ""
      }
    }

使用 uvx 从启用了TOON输出的GitHub

    "productive": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/druellan/Productive-Simple-MCP",
        "productive-mcp"
      ],
      "env": {
        "PRODUCTIVE_API_KEY": "",
        "PRODUCTIVE_ORGANIZATION": "",
        "OUTPUT_FORMAT": "toon"
      }
    }

本地开发(直接执行Python)

    "productive": {
      "command": "python",
      "args": [
        "server.py"
      ],
      "env": {
        "PRODUCTIVE_API_KEY": "",
        "PRODUCTIVE_ORGANIZATION": ""
      }
    }

利用紫外线进行地方发展

    "productive": {
      "command": "uv",
      "args": [
        "--directory", "
",
        "run", "server.py"
      ],
      "env": {
        "PRODUCTIVE_API_KEY": "",
        "PRODUCTIVE_ORGANIZATION": ""
      }
    }

可用工具

阅读工具

list_projects

检索所有包含基本信息的项目。

属性:

  • 无参数(返回所有项目)

list_folders

检索特定项目中的文件夹。

Productive的API通过 /folders 终点。

属性:

  • project_id (int,必填):按生产项目ID筛选文件夹
  • status (int,可选):文件夹状态过滤器(1 活跃, 2 存档)。默认为 1
  • limit (int,可选):要返回的最大文件夹数(默认值:50,最大值:200)

get_folder

按ID检索特定文件夹。

Productive的API通过 /folders 终点。

属性:

  • folder_id (int):唯一的Productive文件夹标识符

list_workflow_statuses

使用可选筛选器检索工作流状态。

属性:

  • workflow_id (int,可选):按工作流ID筛选状态
  • category_id (int,可选):按类别筛选(1 未开始, 2 起动, 3 关闭)
  • limit (int,可选):返回的最大状态数(默认值:50,最大值:200)

list_time_entries

使用可选的日期和关系筛选器检索时间条目。

属性:

  • date (str,可选):精确日期过滤器(YYYY-MM-DD)
  • after (str,可选):下限日期过滤器(YYYY-MM-DD)
  • before (str,可选):上限日期过滤器(YYYY-MM-DD)
  • person_id (int,可选):按人员ID筛选
  • project_id (int,可选):按项目ID筛选
  • task_id (int,可选):按任务ID筛选
  • service_id (int,可选):按服务ID筛选
  • page_number (int,可选):分页页码
  • limit (int,可选):返回的最大条目数(默认值:50,最大值:200)

list_people

使用可选分页检索人员/团队成员。

属性:

  • page_number (int,可选):分页页码
  • page_size (int,可选):每页返回的人数(最多200人)

get_person

按ID检索特定人员。

属性:

  • person_id (int):唯一的生产人员标识符

list_tasks

使用可选的筛选和分页检索任务。

属性:

  • project_id (int,可选):按生产项目ID筛选任务
  • user_id (int,可选):按受让人/用户ID筛选任务
  • page_number (int,可选):分页页码
  • page_size (int,可选):分页页面大小(默认值:50)
  • sort (str,可选):排序参数(例如,“last_activity_at”、“-last_activity_at”、“created_at”和“due_date”)
  • extra_filters (dict,可选):额外的高效API过滤器(例如。, {'filter[status][eq]': 1} 对于开放任务, {'filter[status][eq]': 2} 对于已关闭的任务)

get_task

通过内部ID检索特定任务。返回任务详细信息,包括标题、描述、状态、日期、, 时间跟踪指标 (initial_estimate, worked_time, billable_time, remaining_time),待办事项很重要。

属性:

  • task_id (int):唯一的生产任务标识符(内部ID,例如14677418)

get_task_history

检索特定任务的完整历史记录,包括状态更改、分配历史记录、里程碑和活动摘要。

属性:

  • task_id (int):唯一的生产任务标识符(内部ID,例如14677418)
  • hours (int,可选):回顾活动历史的小时数(默认值:720=30天,最大值:8760)

退货:

  • status_history:带有时间戳的状态更改时间线(从/到状态和changed_at)
  • assignment_history:分配更改,显示分配给谁以及何时分配(assigned_to和changed_at)
  • milestones:评论和活动中的关键交付成果和完成标记
  • activity_summary:评论、更改、状态更新、任务和里程碑的计数

例子:

get_task_history(14677921)  # Default 30-day history
get_task_history(14677921, hours=168)  # Last week only
get_task_history(14677921, hours=24)  # Last 24 hours

list_comments

使用可选的过滤和分页功能检索评论。

属性:

  • project_id (int,可选):按生产项目ID过滤评论
  • task_id (int,可选):按生产任务ID筛选评论
  • page_number (int,可选):分页页码
  • page_size (int,可选):分页页面大小
  • extra_filters (dict,可选):额外的高效API过滤器(例如。, {'filter[discussion_id]': '123'})

list_pages

使用可选的过滤和分页功能检索页面/文档。

属性:

  • project_id (int,可选):按生产项目ID筛选页面
  • creator_id (int,可选):按创建者ID过滤页面
  • page_number (int,可选):分页页码
  • page_size (int,可选):分页页面大小

get_page

按ID检索特定页面/文档。

属性:

  • page_id (int):唯一的生产页面标识符

list_attachments

使用可选的过滤和分页功能检索附件/文件。

属性:

  • page_number (int,可选):分页页码
  • page_size (int,可选):分页页面大小
  • extra_filters (dict,可选):额外的高效API过滤器

list_recent_activity

获取最近活动和更新的摘要提要。非常适合状态更新。

属性:

  • hours (int,可选):回顾的小时数(默认值:24,一周使用168)
  • user_id (int,可选):按特定用户/个人ID筛选
  • project_id (int,可选):按特定项目ID筛选
  • activity_type (int,可选):按活动类型筛选(1:评论,2:变更集,3:电子邮件)
  • item_type (str,可选):按项目类型筛选(例如,“任务”、“页面”、“交易”、“工作区”)
  • event_type (str,可选):按事件类型筛选(例如,“创建”、“复制”、“更新”、“删除”)
  • task_id (int,可选):按特定任务ID筛选
  • max_results (int,可选):要返回的最大活动数(默认值:100,最大值:200)

list_todos

使用可选的过滤和分页功能检索待办事项清单项。

属性:

  • task_id (int,可选):按生产任务ID筛选待办事项
  • page_number (int,可选):分页页码
  • page_size (int,可选):分页页面大小
  • extra_filters (dict,可选):额外的高效API过滤器

quick_search

跨项目、任务、页面和操作快速搜索。

属性:

  • query (str):搜索查询字符串
  • search_types (list\[str\],可选):要搜索的类型列表(动作、项目、任务、页面)。默认为全部。
  • deep_search (bool,可选):是否执行深度搜索(默认值:True)
  • page (int,可选):分页页码(默认值:1)
  • per_page (int,可选):每页结果(默认值:50)

说明: 提供跨所有生产性内容类型(包括项目、任务、页面和操作)的快速、全面的搜索。它针对快速查找和一般搜索查询进行了优化。

响应格式: 返回针对LLM消费优化的筛选结果,仅包含基本字段:

  • record_id:资源的唯一标识符
  • record_type:资源类型(项目、任务、页面等)
  • title:显示标题(删除搜索突出显示)
  • subtitle:附加上下文或描述
  • icon_url:资源图标/头像的URL(如果可用)
  • status:当前状态(活动、关闭等)
  • project_name:关联项目的名称
  • updated_at:上次更新时间戳
  • webapp_url:直接链接查看Productive web界面中的资源

示例:

quick_search("deployment")  # Search for "deployment" across all content types
quick_search("meeting notes", search_types=["project"])  # Search only in projects
quick_search("this week summary", deep_search=False)  # Quick search without deep scan

get_todo

按ID检索特定待办事项清单项。

属性:

  • todo_id (int):唯一的生产待办事项清单项目标识符

写入工具

create_task

在Productive中创建新任务。

什么时候 READ_ONLY=true,此工具被全局阻止并返回写保护错误。

属性:

  • title (str,必填):任务标题
  • project_id (int,必填):创建任务的生产项目ID
  • description (str,可选):任务描述
  • board_id (int,可选):板ID
  • task_list_id (int,可选):任务列表ID
  • assignee_id (int,可选):受让人/个人ID
  • due_date (str,可选):截止日期(YYYY-MM-DD)
  • status (str,可选): openclosed (默认值: open)

update_task

在Productive中更新现有任务。仅修改提供的字段(部分PATCH)。 必须至少给出一个字段。什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • task_id (int,必填):要更新的生产任务ID
  • title (str,可选):新任务标题
  • description (str,可选):新任务描述
  • assignee_id (int,可选):新的受让人ID。使用0或负数取消分配。
  • due_date (str,可选):新的截止日期(YYYY-MM-DD)
  • status (str,可选):新状态-- openclosed
  • board_id (int,可选):将任务移动到此板
  • task_list_id (int,可选):将任务移动到此任务列表

delete_task

按ID从Productive中永久删除任务。此操作是不可逆的-- 任务和所有相关数据将被删除。什么时候 READ_ONLY=true,这个工具是 全球封锁。

属性:

  • task_id (int,必填):要删除的生产任务ID

create_comment

在Productive中为任务或项目创建新注释。必须附上评论 任务或项目中的至少一个。什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • body (str,必填):评论正文(支持HTML)
  • task_id (int,可选):用于附加注释的生产任务ID
  • project_id (int,可选):用于附加注释的生产项目ID

update_comment

在Productive中更新现有评论。只能修改body属性。 什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • comment_id (int,必填):要更新的生产性评论ID
  • body (str,必填):新的评论正文(支持HTML)

delete_comment

按ID从Productive中永久删除评论。此操作是不可逆的-- 注释将从任务或项目中删除。什么时候 READ_ONLY=true,这个工具 被全球封锁。

属性:

  • comment_id (int,必填):要删除的生产性评论ID

create_time_entry

在Productive中创建新的时间条目以进行时间跟踪。

记录在任务或服务上花费的时间。必须提供task_id或service_id。 什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • date (str,必填):输入时间的日期(YYYY-MM-DD)
  • time (浮点数,必填):花费的时间(以小时为单位)(例如2.5)
  • person_id (int,必填):记录时间的人员ID
  • task_id (int,可选):将时间条目与任务ID相关联
  • service_id (int,可选):将时间条目与关联的服务ID
  • note (str,可选):可选注释或描述

update_time_entry

更新生产中的现有时间条目。仅修改提供的字段(部分PATCH)。 必须至少给出一个字段。什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • time_entry_id (int,必填):要更新的生产时间条目ID
  • date (str,可选):新日期(YYYY-MM-DD)
  • time (浮动,可选):以小时为单位的新时间
  • person_id (int,可选):新人员ID
  • task_id (int,可选):新任务ID
  • service_id (int,可选):新服务ID
  • note (str,可选):新注释

delete_time_entry

按ID从Productive中永久删除时间条目。此操作是不可逆的-- 时间条目将从时间跟踪记录中删除。什么时候 READ_ONLY=true,这个工具 被全球封锁。

属性:

  • time_entry_id (int,必填):要删除的生产时间条目ID

create_page

在生产项目中创建新页面/文档。

页面是可以包含富文本内容并在项目中组织的文档。 什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • title (str,必填):页面标题
  • project_id (int,必填):创建页面的生产项目ID
  • content (str,可选):页面内容(支持HTML)

update_page

在Productive中更新现有页面/文档。仅修改提供的字段(部分PATCH)。 必须至少给出一个字段。什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • page_id (int,必填):要更新的生产页面ID
  • title (str,可选):新页面标题
  • content (str,可选):新页面内容(支持HTML)

delete_page

按ID从Productive中永久删除页面/文档。此操作是不可逆的-- 页面及其所有内容都将被删除。什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • page_id (int,必填):要删除的生产页面ID

create_todo

在Productive中为任务创建一个新的待办事项清单项。

待办事项是任务中的复选框项,用于精细跟踪工作项。 什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • content (str,必填):待办事项内容/描述
  • task_id (int,必填):用于添加待办事项的生产任务ID

update_todo

在Productive中更新现有的待办事项清单项。仅修改提供的字段(部分PATCH)。 必须至少给出一个字段。什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • todo_id (int,必填):要更新的生产待办事项ID
  • content (str,可选):新建待办事项内容
  • completed (bool,可选):将todo标记为已完成(true)或未完成(false)

delete_todo

按ID从Productive中永久删除待办事项清单项。此操作是不可逆的-- todo项将从任务中删除。什么时候 READ_ONLY=true,此工具在全球范围内被阻止。

属性:

  • todo_id (int,必填):要删除的生产待办事项ID

输出格式

所有工具都返回针对LLM处理优化的过滤数据。输出格式可以通过配置 OUTPUT_FORMAT 环境变量:

  • 卡通 (默认):与JSON相比,令牌优化对象表示法可将令牌消耗减少30-60%,是LLM交互的理想选择
  • JSON:标准JSON格式,与现有工具和工作流兼容

所有工具都返回针对LLM处理优化的过滤数据:

LLM优化:

  • 删除不需要的字段(例如。, creation_method_id, email_key, placement 来自任务)
  • 从描述和评论中删除HTML
  • 空/null值已删除
  • 分页链接已删除
  • 列表视图使用轻量级输出(例如。, get_project_tasks 不包括描述和关系)
  • 包括Web应用程序URL:每个资源包括一个 webapp_url 直接链接到Productive web界面的字段

响应结构:

  • data:主要资源数据(数组用于集合,对象用于单个项目)
  • meta:分页和元数据
  • included:相关资源数据(如适用)
  • webapp_url:直接链接查看Productive中的资源(例如。, https://app.productive.io/12345/tasks/67890)

错误处理

服务器提供全面的错误处理:

  • 401未经授权:API令牌无效
  • 404未找到:未找到资源
  • 429价格有限:请求太多
  • 500服务器错误:生产性API问题

所有错误都通过MCP上下文记录,并具有适当的严重级别。

安全

  • API令牌从环境变量加载
  • 未记录敏感数据
  • HTTPS用于所有API请求
  • 错误消息不公开内部详细信息

许可证

MIT许可证。

目录标签

目录标签

工作流自动化数据访问Python项目管理任务管理本地部署AI集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

33

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP