Edworking MCP

io.github.Edworking由 GitHub 帳號 Edworking 發布v0.3.0更新於 Nov 5, 2026

Edworking tasks, Docs, workspace search, conversations and files with scoped OAuth access.

已驗證Streamable HTTP可網頁執行效率與工作流知識與記憶溝通與協作

概覽

AI 產生的概覽

Edworking 官方 MCP 伺服器,讓助理透過限定範圍的 OAuth 權限讀取與寫入專案、任務、文件、對話和檔案。

可以做什麼
  • 檢視連線名稱、權限與到期時間
  • 列出專案、狀態和成員,並建立專案
  • 列出、讀取、建立和編輯任務,包含連結 Figma 畫框
  • 尋找並讀取文件,建立、重新命名或編輯其 Markdown 內容
  • 搜尋工作區索引,並依類型取得任務、文件、檔案和訊息結果
  • 列出對話與訊息、傳送訊息、檢視檔案中繼資料並匯入公開 HTTPS 檔案
適用情境
當你希望助理在 Edworking 工作區內工作時適用,例如尋找和更新任務、起草或編輯文件、跨專案搜尋,或讀取與傳送專案訊息。適合已使用 Edworking、想從聊天用戶端或 Figma AI 連接器建立任務和文件的團隊。
執行需求
需要支援 Streamable HTTP 與 OAuth 的遠端端點,不必在本機安裝。需在 Edworking 的「個人資料 → API 權杖」建立專用的限定範圍權杖,並在授權頁面核准用戶端與權限。預設申請唯讀權限;寫入需要對應的 OAuth 範圍與權杖權限。授權會在 30 天內或權杖到期時失效。
安裝前請注意
此伺服器可寫入:建立和編輯任務與文件、建立專案、傳送訊息、上傳檔案,請謹慎授予寫入範圍。切勿把 Edworking 權杖貼進助理對話。既有授權不會自動升級,新範圍需重新授權。寫入需提供 requestId,結果不確定時不會自動重試,應先到 Edworking 確認。撤銷專用權杖會中斷使用它的所有授權。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Edworking MCP,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Edworking%2Fedworking-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "edworking": {
      "type": "http",
      "url": "https://mcp.edworking.com/mcp"
    }
  }
}

README

Edworking MCP

[Edworking MCP on Glama]

The official, open-source Edworking MCP server. Connect your assistant to projects, tasks, Docs, conversations and files your account can access.

Hosted endpoint: https://mcp.edworking.com/mcp

Public identity: Edworking MCP. The Railway infrastructure retains the codename Bellsprout. Use the custom domain above for all new connections. Connections created against the earlier Railway URL must reconnect because their OAuth resource audience has changed.

Release: 0.3.0 adds a Figma plugin transport, design-aware task and Doc creation, and two frame-link tools (24 tools total). Deploy the matching scoped API backend before the MCP server. Docs require new docs:read / docs:write token permissions and OAuth consent. Existing grants are not expanded automatically.

Distribution: npm, the hosted server and Official MCP Registry are at 0.3.0, verified on 4 November 2026. Merging source does not publish a package or update directory metadata. OpenAI is not submitted or published; its authenticated scan discovers all 24 tools, but the metadata upload is blocked by a portal error. See the publication checklist for individual directory statuses.

Connect

Add the endpoint to an MCP client supporting Streamable HTTP and OAuth. Follow the browser authorization window. Create a dedicated scoped token in Edworking → Profile → API tokens, enter it on the Edworking MCP consent page and approve the client and permissions. Never paste a token into an assistant conversation.

Connections request read permissions by default. Writes require the matching OAuth scope and upstream token permission. Reconnect with explicit scopes if your client cannot request additional permissions. Revoke the dedicated token in Edworking to disconnect every grant using it. Grants expire within 30 days or when the Edworking token expires, whichever is sooner. Access tokens last up to ten minutes and refresh tokens rotate.

sh
codex mcp add edworking-mcp --url https://mcp.edworking.com/mcpcodex mcp login edworking-mcp

For ChatGPT testing, use Plugins → Add custom MCP server, select OAuth and enter the endpoint. Availability depends on your plan and workspace policy. A portable OpenAI plugin package is in plugin/. The 0.3.0 package declares six read and five write OAuth scopes, including Docs. The already-submitted OpenAI review package remains a separate 0.1.4 artifact until a new version is submitted. Verify the actual consent screen and get_connection result. On 13 October, the submission portal metadata grant used five read scopes, while a separate ChatGPT demo connection received all nine scopes and successfully created a task and sent a message. Existing read-only grants remain read-only until reauthorized; a token with write permissions does not automatically upgrade an OAuth grant.

Other clients should configure a remote HTTP server named edworking-mcp and use their built-in OAuth flow. Public clients with PKCE, dynamic registration and HTTPS Client ID Metadata Documents are supported. /mcp accepts only Edworking MCP access tokens.

Client setup instructions: Edworking MCP guide. See the competitor review and delivery roadmap for remaining capabilities and launch gates.

After Allow access or Cancel, the browser returns to your assistant automatically. If it remains on Returning to your assistant, use the return button. Each consent request can be used once and expires after ten minutes. If you see invalid_grant or an expired/used request, start a new connection from your assistant instead of reopening the old consent link. Do not refresh or resubmit the approval form.

Tools

ToolScopePurpose
get_connectionAny connectionConnection name, permissions and expiry
list_projects, list_project_statuses, list_project_membersprojects:readProjects, valid statuses and existing assignee IDs
list_tasks, get_tasktasks:readFilter tasks by project, status, assignee, priority, title and due dates; read task content
list_figma_taskstasks:readFind accessible tasks linked to a Figma file or frame
link_figma_frametasks:writeLink a Figma frame to an accessible task
search, fetchPer-source read scopeIndexed tasks, Docs, files and project messages; typed result retrieval
list_docs, get_docdocs:readFind Docs and read their Markdown content
create_doc, update_doc, edit_doc_contentdocs:write; body edits also need docs:readCreate, rename and edit Docs
list_conversationschats:readExisting private conversations
read_messagesmessages:readAccessible conversation messages
list_filesfiles:readFile metadata
create_task, update_task, edit_task_contenttasks:write; body edits also need tasks:readCreate tasks; edit name, status, priority, assignees, dates and description
send_messagemessages:writeSend the user's specified message
create_projectprojects:writeCreate a project
upload_filefiles:writeImport a public HTTPS file

Attaching files to tasks also requires files:write. Lists use cursors and at most 100 items per page; keep ordering and filters unchanged while paging. Search uses the workspace index and returns up to 20 ranked results per permitted source. It rechecks live access, deletion state and message-history limits before exposing snippets. Indexing may lag; unavailable sources are reported, and private chats and projectless items are excluded. Use filtered lists for exhaustive task discovery. File fetches return metadata, not file contents.

Read a task or Doc before editing its body. Content reads are capped at 20,000 characters and expose block handles; targeted edits reuse the collaboration service and version history. Large removals require explicit allowRemoval. A task assignee list replaces the current list: omit it to preserve, or use [] to unassign. Assignees must already belong to the project and workspace. Deletion, invitations, task moves and sharing changes are not exposed.

Writes require a UUID requestId; reuse it with unchanged arguments on retries. Completed results are encrypted and cached for 24 hours. An uncertain result is never repeated automatically: inspect Edworking before deciding what to do. This is not an upstream exactly-once transaction. Deduplication expires after 24 hours.

Development

Use Node 24 LTS (minimum 22.19). No OpenAI API key is needed.

sh
npm cicp .env.example .env# Generate a key and save it as TOKEN_ENCRYPTION_KEY in .env:node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"npm run buildnode --env-file=.env dist/index.js

Run npm run check for type checking, security/integration tests and build. npm run dev starts a watcher when variables are already loaded by your shell.

For local stdio, configure your client to run npx -y @edworking/[email protected] with EDWORKING_API_TOKEN supplied securely in its process environment, or build from source and run node /absolute/path/to/edworking-mcp/dist/stdio.js. The npm package is public. Stdio uses that token directly with Edworking and has in-memory deduplication that resets on restart.

Railway deployment

Use the included Dockerfile, attach a volume at /data, and set:

VariableValue
NODE_ENVproduction
PORT3000
PUBLIC_BASE_URLStable public HTTPS origin, without /mcp
DATABASE_PATH/data/bellsprout.sqlite
TOKEN_ENCRYPTION_KEYRandom 32-byte key encoded as 64 hex characters
EDWORKING_API_URLhttps://gateway.edworking.com/
EDWORKING_APP_URLhttps://app.edworking.com

Keep one replica, sleeping off and deployment overlap zero. /healthz checks the process and /readyz checks SQLite. Preserve the key across deployments. Optional ALLOWED_ORIGINS adds exact browser origins, OPENAI_DOMAIN_CHALLENGE serves the OpenAI verification value, and EDWORKING_CONNECT_URL enables a native Edworking connection page only after that page has shipped.

See operations, security and publication. Contributions follow CONTRIBUTING.md. Licensed under MIT.

Figma plugin and native Edworking consent

Deploy the matching Venusaur and Charizard changes before enabling this integration, and set EDWORKING_CONNECT_URL=https://app.edworking.com/settings/integrations?connection=mcp. Native consent issues a scoped 30-day credential directly to this server using the existing ApiToken model and issuance service, with no new table, column or migration. Users manage it in Profile → API tokens, using the existing revocation and rotation operations and their step-up checks. Rotating the token invalidates the previous connection and requires reconnecting. Manual personal-token creation keeps its existing step-up checks.

The fixed Figma client goes directly to Charizard’s /connect page for sign-in, workspace selection and explicit authorization. Its existing browser/nonce-bound handoff then finishes consent and returns through /connect/result, without another MCP approval screen. General MCP clients retain their consent flow and configured integration destination. Existing connections must reconnect to grant the seven plugin scopes (projects:read, tasks:read/write, docs:read/write, files:read/write); grants are not expanded silently.

The Edworking Figma plugin, maintained in the figma/ package of Charizard, uses /plugin/start, /plugin/poll, /plugin/refresh, /plugin/revoke, and /plugin/tool. This isolated transport permits opaque plugin origins without cookies. It accepts only its fixed OAuth client and a closed subset of the same tools. PKCE binds the browser callback and polling; client credentials never enter a Figma design. General OAuth and MCP origin restrictions are unchanged.

list_figma_tasks queries accessible tasks linked to a file or frame. link_figma_frame attaches the canonical frame URL to a permitted task. The latter can retry an uncertain response because the upstream serializable transaction is idempotent; task creation retains strict uncertain-write protection. Adding the reciprocal Dev Resource is done in Figma with addDevResourceAsync, without Figma REST OAuth.

Plugin-only helpers read account/workspace context, task lists and document folders, append native Figma blocks through the existing collaborative content service, and upload bounded attachment bytes through the existing File storage path. They are excluded from public MCP discovery; its catalog remains 24 tools. /plugin accepts up to 12 MB of JSON for an 8 MiB file; the public MCP request limit remains 256 KB. All calls retain upstream identity, workspace and permission checks. Task creation accepts optional Markdown content, priority, assignees, start date and list; document creation accepts an existing authorized folder. Legacy task description input remains supported but cannot be combined with content.

Creating from a Figma AI connector

The landing page includes a Figma / Figma Make setup guide alongside the other clients. Connect it to https://mcp.edworking.com/mcp after deploying the matching API and MCP changes.

The AI connector and the UI plugin are independent clients of this server. The AI uses the existing create_task and create_doc tools; it does not need the plugin running. Enable writing in the client and authorize the matching Edworking scopes: tasks:write for tasks, docs:write for Docs. Destination discovery uses projects:read. Existing read-only grants are not upgraded automatically.

Both creation tools accept optional figmaDesigns: 1–20 objects with an actual HTTPS Figma design/file url (including node-id) and optional name. Resolve the destination project first. If the client cannot supply the design context, ask the user for its link; the server cannot discover the canvas selection. Make app URLs (/make/...) are not supported design links.

Example arguments for create_task (IDs and URL below are illustrative):

json
{  "requestId": "2670c661-04af-45df-b6e2-fb1b4199b2e4",  "projectId": "project-A",  "name": "Implement the selected design",  "content": "Acceptance criteria supplied by the user.",  "figmaDesigns": [    { "url": "https://www.figma.com/design/Abc123Abc123Abc123Abc123?node-id=1-2", "name": "Checkout" }  ]}

For create_doc, use title instead of name, with an optional existing folderId. With figmaDesigns, use Markdown content, not the legacy task description. The combined body and embeds must fit within 20,000 characters. Close Markdown code fences before adding designs; an unclosed fence is rejected before creation (UNCLOSED_CODE_FENCE) so it cannot swallow the embeds, and an oversized body returns CONTENT_TOO_LONG. File keys must match the existing viewer (22–128 alphanumeric characters). Equivalent design URLs are canonicalized and deduplicated. Both tools append the native [figma: Name](url) content format; the plugin sends its selection as figmaDesigns, so this server is the only place that builds it. Tasks also link the designs in Resources through the existing scoped API. Docs have no attachment/Resource operation. Task fileIds remain real file attachments and require files:write; they are never embedded.

As in any task creation, omitted assignees default to the connected user; [] leaves the task unassigned. Dates, priority, list and assignees are only supplied when requested; the existing API selects the initial project status when none is specified. Explicit task fields and a Doc folder are preserved. Calls without figmaDesigns retain their previous behavior and result shape. Folder/list discovery remains plugin-only; a public MCP client must already have the requested folder/list ID or ask for it.

Figma creation responses add a figma result describing the designs and Resource status. If linking fails after task creation, resources: "pending" returns the created task and pendingResources. Retry the exact original arguments and requestId on the same connection within the original 24-hour window to finish linking. The encrypted checkpoint survives hosted-server restarts using the existing SQLite volume and key. Confirmed links are skipped; an uncertain link may be retried because the existing backend upserts it. An uncertain creation is still never repeated. If access is revoked while linking, the error names the created task and its unlinked designs; after reconnecting, add them with link_figma_frame instead of creating the task again. After expiry, a different connection or a stdio restart, inspect Edworking instead of replaying creation. There is no background retry service.

These calls do not write Dev Resources inside Figma (backlinkCreated: false) or register Docs in the plugin's page-local list (docPageListingUpdated: false). Those actions still require the plugin runtime. Task Resources can be found with the existing list_figma_tasks tool. This MCP-only change adds no tools, OAuth permissions, tables or services; the catalog remains 24 tools and requires the already matching Figma-capable Edworking API. Real Figma connector acceptance testing remains necessary before certifying compatibility.

Deployment order: deploy the matching Venusaur API first, then Charizard, then this MCP server, and finally the plugin when its publication requirements are met. Shared project/task/Doc queries now request additional display fields, and create mutations pass new optional arguments. The older API rejects those GraphQL operations even for existing MCP clients. Roll back this MCP version before rolling back that API. The 22 existing public tool names and required inputs are preserved; the two Figma tools are additive. No database migration or additional MCP service is required. Keep the existing server origin, SQLite volume and encryption key.

Figma Make compatibility is not yet certified; no custom connector has been published.

來源:README.md,提交 85625e3

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

3
  1. v0.3.0最新Nov 5, 2026
  2. v0.2.0Oct 14, 2026
  3. v0.1.4Oct 12, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分