Skip to content

Feat/published workflows mcp#1632

Open
PetaHarshith wants to merge 4 commits intodifferent-ai:devfrom
PetaHarshith:feat/published-workflows-mcp
Open

Feat/published workflows mcp#1632
PetaHarshith wants to merge 4 commits intodifferent-ai:devfrom
PetaHarshith:feat/published-workflows-mcp

Conversation

@PetaHarshith
Copy link
Copy Markdown

Adds a way to expose an OpenWork skill as an MCP-callable tool.

You can publish a skill from the UI, get a URL, and call it from Claude/Cursor via MCP. Under the hood it creates an OpenCode session and sends a prompt that asks the agent to use that skill.

What changed:

  • server routes for publish / list / revoke
  • MCP endpoint at /published/:token/mcp
  • UI for publish, copy URL, and revoke
  • token is shown once and stored hashed
  • tests for storage + MCP flow

Tested end-to-end against real OpenCode. Curl transcript is in apps/app/pr/published-workflows-mcp.curl.txt.

Didn’t include multi-tool or streaming. Wanted to keep v1 small.

Let me know what you think

Adds a server-side primitive for exposing OpenCode skills as MCP-callable
tools via per-workflow URLs and tokens.

- Storage: PublishedWorkflowsService persists workflows under
  audit-dir/published-workflows.json with SHA256 token hashes.
- Transport: stateless JSON-RPC 2.0 over HTTP at
  POST /published/:token/mcp with initialize, tools/list, tools/call.
- Bridge: synchronous OpenCode invocation via POST /session and
  POST /session/:id/message, surfacing text parts of the assistant
  response to the MCP caller (60s default timeout, configurable via
  OPENWORK_PUBLISHED_WORKFLOW_TIMEOUT_MS).
- Admin routes: GET/POST/DELETE /workspace/:id/published-workflows
  scoped to the host token; create/revoke recorded in the workspace
  audit log as published-workflow.create/.revoke.
- Tests: unit coverage for storage and an in-process e2e harness
  driving the MCP transport against a fake OpenCode at /session and
  /session/:id/message.
- PRD and a real-OpenCode curl transcript are included as evidence
  under apps/app/pr/.

UI is intentionally deferred to a follow-up commit.
Adds the user-facing surface for the published-workflows MCP server primitive
landed in the previous commit.

- openwork-server client: PublishedWorkflow / PublishedWorkflowCreated types,
  list/create/revoke methods on the OpenworkServerClient, and a
  buildPublishedWorkflowMcpUrl helper.
- extensions-store: publishedWorkflows snapshot + status, refresh / publish /
  revoke actions wired through the OpenworkServerClient, exposed on the
  consumer surface together with publishedWorkflowsServerBaseUrl().
- skills-view: per-skill Publish button on each installed skill, a publish
  modal that surfaces the one-shot URL with the secret token, and a new
  Published workflows section that lists active publications with copy-URL
  and revoke actions.
- en.ts: settings.publishedWorkflows.* + common.copy translation keys.
  Other locales fall back to English via the existing fallback chain.

Typecheck: pnpm --filter @openwork/app typecheck (clean).
Adds the 24 settings.publishedWorkflows.* keys (English placeholders) to every non-English locale, matching the convention already used for settings.environment.*. Prevents missing-key warnings until translations land.
Updates the PR description to reflect the rebased 3-commit branch: drops the 'next half' caveat now that the UI is in, lists the three commits in order, and replaces the docker-based how-to-try-it with a curl + pnpm dev path that does not depend on the deprecated dev-up.sh stack. Also fixes two pre-existing MD040 fenced-code-language lint warnings.
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openwork-landing Ready Ready Preview, Comment, Open in v0 May 1, 2026 0:57am

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 1, 2026

@PetaHarshith is attempting to deploy a commit to the Different AI Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

The following comment was made by an LLM, it may be inaccurate:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant