Juscribe

io.github.juscribe由 GitHub 账号 juscribe 发布v0.2.9更新于 Oct 29, 2026

Read and work your Juscribe board: tickets, subtasks, blockers, projects and iterations.

已验证STDIO仅桌面效率与工作流

概览

AI 生成的概览

一个本地 MCP 服务器,让助手读取并处理 Juscribe 看板上的工单、子任务、阻塞项、项目和迭代。

可以做什么
读取并处理 Juscribe 看板上的工单,包括子任务和阻塞项。浏览项目和迭代,了解工作的组织方式。清单未列出具体工具,因此这里无法说明确切的可用操作。
适用场景
当团队在 Juscribe 看板上跟踪工作,并希望助手无需切换应用就能查询或处理工单、子任务、阻塞项、项目和迭代时适用。
运行要求
以本地进程通过 stdio 运行,从 npm 包 @juscribe/mcp 安装,需要 Node.js。需要在环境变量 JUSCRIBE_API_TOKEN 中提供代理令牌,该令牌在 Juscribe 的“设置 → 安全 → 代理令牌”中创建。若看板不在默认地址,需将 JUSCRIBE_BASE_URL 设为看板地址。仅支持桌面端。
安装前请注意
服务器需要 Juscribe 代理令牌,通过 JUSCRIBE_API_TOKEN 传入;应将其视为机密,并只授予所需权限。说明中提到助手可以处理看板,因此它可能会修改工单及相关条目,而不只是读取。JUSCRIBE_BASE_URL 只应指向你信任的看板,因为令牌会发送到该地址。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Juscribe,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

工具

35

get_workspace_summary

Workspace summary

Get a condensed overview of the workspace board: panel counts, projects, velocity, users, and ticket summaries for the current and backlog panels unless others are named. Release, milestone and deadline markers are included, and counted. Use this to orient yourself before drilling into specific tickets.

输入参数panelsworkspace_id

list_tickets

List tickets

List tickets in a workspace with optional filters — panel, state, type, project, assignee, label, iteration, what changed since a moment, when they were created, when they are due, or a search — 50 to a page, in board order or by due date. A panel comes with its release, milestone and deadline markers. The reply says when more pages exist, and when markers were left out.

输入参数qpagesortlabelpanelstatefieldsper_pagedue_afterdue_beforeproject_idassignee_id另有 9 个

get_ticket

Get a ticket

Get full details for a single ticket, including comments and attachments.

输入参数ticket_id必填workspace_idcomments_limitinclude_commentsinclude_attachments

create_ticket

Create a ticket

Create a new ticket in the workspace. Returns the created ticket, with notes when it matches another ticket. A new ticket goes to the bottom of the Backlog. When the person asks for the Icebox, it goes to the top of the Icebox. Place one anywhere else only when the person asks. In the description, Open with a sentence or two in plain words saying what happened or what is asked, before any detail. Write #123 only for a ticket number, and p45 for a project.

输入参数paneltitle必填labelspointsdue_dateinsert_atproject_iddescriptionticket_typeassignee_idsworkspace_idstakeholder_id

get_attachment

Read an attachment

Read a file attached to a ticket, from get_ticket's attachments: a photo comes back as an image, a PDF or a text, CSV, Markdown or JSON file as text. A long file is cut at 150,000 characters and says so; an archive or other kind is refused by name, with the ticket's link so the person can open it in the app.

输入参数ticket_id必填workspace_idattachment_id必填

attach_file

Attach a file you wrote

Save something you wrote — a newsletter draft, a volunteer list, meeting notes — onto a ticket as a Markdown (.md), text (.txt) or CSV (.csv) file. Only those kinds: a photo or PDF shown to you in chat cannot be passed on as bytes, and for those the answer is the ticket's link so the person can add the file in the app.

输入参数content必填filename必填ticket_id必填workspace_id

attach_upload

Attach a file the person added

Attach a photo or PDF the person added to this chat onto a ticket. Pass the file itself as file. This works only where the chat app hands the file to the tool, as ChatGPT does; anywhere else, or for another kind of file, the answer is the ticket's link so the person can add it in the app. For something you wrote, use attach_file.

输入参数fileticket_id必填workspace_id

create_tickets

Create several tickets

File a list of tasks in one call, such as the action items from meeting notes. Every item is checked as create_ticket checks one, and one bad item stops the whole batch before anything is written. Items go to the bottom of the Backlog in the order given; an item whose panel is icebox goes to the top of the Icebox, which the person has to ask for. Place one elsewhere afterwards with move_ticket. The reply says what happened to each item.

输入参数tickets必填workspace_id

update_ticket

Update a ticket

Update an existing ticket's fields. Only provided fields are changed. Before changing a description, read the ticket with get_ticket first. Text a person wrote stays word for word, with anything you add below a --- line, and you edit your own earlier additions in place, so they are not stacked as dated updates. To only add below the text, use append_to_description.

输入参数statetitlelabelspointsdue_dateticket_id必填project_iddescriptionticket_typeassignee_idsworkspace_idstakeholder_id

append_to_description

Add to a ticket's description

Add text to the end of a ticket's description, after a blank line. Nothing already there is changed, including an edit someone made a moment ago, and the description is not resent. Use this to add notes, findings or a plan below what a person wrote.

输入参数text必填ticket_id必填workspace_id

transition_ticket

Change a ticket's state

Move a ticket forward one step at a time: unprioritized → prioritized → started → finished → delivered. Give a ticket points with update_ticket before starting it. Finished is the last step you take on your own; deliver only when the person asks. Cancelled is reachable from any open state and needs a resolution. To move a ticket back to the Icebox or the Backlog, tell the person where it is going, then use update_ticket with state. Accepting or rejecting is a person's decision, made in the app, so this tool offers neither.

输入参数forcestate必填commentticket_id必填resolutionworkspace_id

add_comment

Comment on a ticket

Add a comment to a ticket. Supports @mentions. Open with a sentence or two in plain words saying what happened or what is asked, before any detail. Write #123 only for a ticket number, and p45 for a project.

输入参数body必填ticket_id必填workspace_id

update_comment

Edit a comment

Replace the text of a comment on a ticket. Only a comment you wrote can be changed; anyone else's is refused. The comment id is in get_ticket.

输入参数body必填ticket_id必填comment_id必填workspace_id

delete_comment

Delete a comment

Delete a comment from a ticket for good. Only a comment you wrote can be deleted; anyone else's is refused. The comment id is in get_ticket.

输入参数ticket_id必填comment_id必填workspace_id

move_ticket

Move a ticket

Put a ticket directly above (before) or below (after) another ticket in the same panel. This is how the backlog is prioritised. Moving between panels is update_ticket or transition_ticket.

输入参数afterbeforeticket_id必填workspace_id

get_current_iteration

Get the current iteration

The iteration in progress: its number, dates, committed and accepted points, and its tickets, 50 to a page. Use this rather than list_iterations, which returns every iteration the board has had.

输入参数pageworkspace_id

list_subtasks

List a ticket's subtasks

List a ticket's subtasks: its ordered steps, each with at most one owner. The ids here are what the other subtask tools take.

输入参数ticket_id必填workspace_id

add_subtask

Add a subtask

Add a step to the end of a ticket. Place it elsewhere with move_subtask. Steps someone performs are subtasks, one action or command each, not checkboxes in the description.

输入参数title必填ticket_id必填assignee_iddescriptionworkspace_id

update_subtask

Update a subtask

Change a subtask. Set completed to the value you want: true ticks it and false reopens it, and calling either twice changes nothing. Only the fields passed change.

输入参数titlecompletedticket_id必填subtask_id必填assignee_iddescriptionworkspace_id

move_subtask

Move a subtask

Move a subtask to a place in its ticket's list, counting from 1. A place past the end moves it to the bottom.

输入参数place必填ticket_id必填subtask_id必填workspace_id

delete_subtask

Delete a subtask

Take a step off a ticket's checklist for good. To mark one done instead, use update_subtask with completed: true.

输入参数ticket_id必填subtask_id必填workspace_id

list_blockers

List a ticket's blockers

List what blocks a ticket, or with direction "blocks", what it blocks. Resolved blockers are included with resolved_at set. The ids here are what resolve_blocker takes.

输入参数pagedirectionticket_id必填workspace_id

add_blocker

Add a blocker

Record that a ticket waits on another ticket, a project, or an outside event (External). Add one blocker per condition that clears on its own, each with a short title. A blocker with a date says only its date condition, not the other blockers.

输入参数titledue_ondue_kindticket_id必填blocker_iddescriptionblocker_type必填workspace_id

resolve_blocker

Resolve a blocker

Mark a blocker resolved, which unblocks the ticket once none is left. Get its id from list_blockers.

输入参数workspace_iddependency_id必填

list_projects

List projects

List all projects in a workspace with their state and position.

输入参数workspace_id

get_project

Get a project

One project in full: its description, where its plan lives, who asked for it and who owns it, and the counts of its tickets. Its tickets are list_tickets with project_id.

输入参数project_id必填workspace_id

create_project

Create a project

Start a project: a name, and the description where its plan lives. It lands at the end of the list; the person orders projects in the app.

输入参数name必填colordescriptionworkspace_idstakeholder_id

update_project

Update a project

Change a project's name, description, colour or stakeholder. Only the fields passed change. Moving, sealing or deleting a project is done in the app.

输入参数namecolorproject_id必填descriptionworkspace_idstakeholder_id

list_iterations

List iterations

List iterations (sprints) for a workspace, with velocity and point data.

输入参数workspace_id

list_workspaces

List workspaces

List the workspaces this connection can reach, with the ids the other tools take as workspace_id.

无需输入参数。

create_workspace

Create a workspace

Create a workspace, a new board of its own. Use it only when the person asks for a new board. Juscribe allows it when the person this agent acts for is an owner of the organization and its plan has room for another; otherwise it refuses and nothing is made. Answers with the id the other tools take as workspace_id.

输入参数name必填description

list_people

List people

List the people and agents on the board, with the user ids that assignee_ids and stakeholder_id take. Mention someone by @username: names are not unique.

输入参数workspace_id

list_labels

List labels

List the labels on the board, with the ids that label_ids takes.

输入参数workspace_id

create_label

Create a label

Create a label the board does not have yet, such as "fundraising" when tagging asks for one that is missing. Use it only when the person asks: a board's labels are its own vocabulary, and a near-duplicate splits every later filter. A name the board already has, in any case, is refused with the existing label.

输入参数name必填colorworkspace_id

版本历史

10
  1. v0.2.9最新Oct 26, 2026
  2. v0.2.8Oct 21, 2026
  3. v0.2.6Oct 4, 2026
  4. v0.2.5Oct 4, 2026
  5. v0.2.4Oct 3, 2026
  6. v0.2.3Oct 1, 2026
  7. v0.2.2Sep 29, 2026
  8. v0.2.1Sep 29, 2026
  9. v0.2.0Sep 26, 2026
  10. v0.1.0Sep 23, 2026

评分

已满足适用检查项的 65%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。